From: Eduardo San Martin Morote Date: Thu, 19 Aug 2021 10:39:12 +0000 (+0200) Subject: feat(nuxt): nuxt plugin working with Vue 2 X-Git-Tag: @pinia/nuxt@0.0.1~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2b3aa5f4c1d83bd1955727656c8403b4e02f4b16;p=thirdparty%2Fvuejs%2Fpinia.git feat(nuxt): nuxt plugin working with Vue 2 --- diff --git a/packages/nuxt/src/index.ts b/packages/nuxt/src/index.ts index 63ec1722..79e3dd7e 100644 --- a/packages/nuxt/src/index.ts +++ b/packages/nuxt/src/index.ts @@ -19,7 +19,6 @@ const module = defineNuxtModule({ defaults: { disableVuex: true, }, - hooks: {}, setup(options, nuxt) { // Disable default Vuex store (options.features only exists in Nuxt v2.10+) if (nuxt.options.features && options.disableVuex) { @@ -47,8 +46,11 @@ export default module declare module '@nuxt/types' { export interface Context { - // TODO: test out if correct - // pinia: Pinia + /** + * Pinia instance attached to the app. + */ + pinia: Pinia + /** * Pinia instance attached to the app. */ diff --git a/packages/nuxt/templates/plugin.js b/packages/nuxt/templates/plugin.js index ac9e0b7c..5d3e51b2 100644 --- a/packages/nuxt/templates/plugin.js +++ b/packages/nuxt/templates/plugin.js @@ -3,7 +3,7 @@ import { isVue2, Vue2 } from 'vue-demi' import { createPinia, setActivePinia, PiniaPlugin } from 'pinia' if (isVue2) { - Vue2(PiniaPlugin) + Vue2.use(PiniaPlugin) } /** @@ -13,13 +13,15 @@ const PiniaNuxtPlugin = (context, inject) => { const pinia = createPinia() // add $pinia to the context inject('pinia', pinia) - // TO // to allow accessing pinia without the $ - // context.pinia = pinia + context.pinia = pinia if (isVue2) { // simulate new Vue({ pinia }) context.app.pinia = pinia + } else { + // TODO: does this work? + context.app.use(pinia) } setActivePinia(pinia)