import { Plugin } from "@nuxt/types"; import { Auth as NuxtAuth } from "@nuxtjs/auth-next"; import { Framework } from "vuetify"; import { UserOut } from "~/lib/api/types/user"; import { icons } from "~/lib/icons"; import { Icon } from "~/lib/icons/icon-type"; interface Globals { icons: Icon; } declare module "vue/types/vue" { interface Vue { $globals: Globals; } } declare module "@nuxt/types" { // @ts-ignore https://github.com/nuxt-community/auth-module/issues/1097#issuecomment-840249428 interface Auth extends NuxtAuth { user: UserOut | null; } interface Context { $globals: Globals; $vuetify: Framework; $auth: Auth; } } const globalsPlugin: Plugin = (_, inject) => { inject("globals", { icons, }); }; export default globalsPlugin;