/* * Copyright (c) 2022. * Author Peter Placzek (tada5hi) * For the full copyright and license information, * view the LICENSE file that was distributed with this source code. */ import {Context} from "@nuxt/types"; import {Inject} from "@nuxt/types/app"; import BaseStorage from "~/modules/storage"; import AuthStorage from "~/modules/auth/storage"; import AppStorage from "~/modules/app/storage"; declare module 'vue/types/vue' { // this.$myInjectedFunction inside Vue components interface Vue { $warehouse: BaseStorage, $authWarehouse: BaseStorage } } declare module '@nuxt/types' { // nuxtContext.app.$myInjectedFunction inside asyncData, fetch, plugins, middleware, nuxtServerInit interface NuxtAppOptions { $warehouse: BaseStorage, $authWarehouse: BaseStorage } // nuxtContext.$myInjectedFunction interface Context { $warehouse: BaseStorage, $authWarehouse: BaseStorage } } declare module 'vuex/types/index' { // this.$myInjectedFunction inside Vuex stores interface Store { $warehouse: BaseStorage, $authWarehouse: BaseStorage } } export default (ctx : Context, inject : Inject) => { const appWarehouse = new AppStorage(ctx); inject('warehouse', appWarehouse); //-------------------------------------------------------------------- const authWarehouse = new AuthStorage(ctx); inject('authWarehouse', authWarehouse); };