]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
simplify injections
authorPooya Parsa <pooya@pi0.io>
Fri, 8 Jul 2022 12:07:10 +0000 (14:07 +0200)
committerEduardo San Martin Morote <posva@users.noreply.github.com>
Wed, 13 Jul 2022 10:32:58 +0000 (12:32 +0200)
packages/nuxt/src/runtime/plugin.ts
packages/nuxt/src/runtime/plugin.vue2.ts

index 577dccb6c91df8b6ceddf7bf98815792f87bc8ed..2798afe8f922dc876a1b56ec6c9b87bfd198e766 100644 (file)
@@ -3,25 +3,19 @@ import { defineNuxtPlugin } from '#imports'
 
 export default defineNuxtPlugin((nuxtApp) => {
   const pinia = createPinia()
-
   nuxtApp.vueApp.use(pinia)
-
-  // Make sure to inject pinia after installing the plugin because in Nuxt 3, inject defines a non configurable getter
-  // on app.config.globalProperties
-  // add $pinia to the context
-  nuxtApp.provide('pinia', pinia)
-
   setActivePinia(pinia)
 
-  // Add access to `$nuxt`
-  pinia._p.push(({ store }) => {
-    // Make it non enumerable so it avoids any serialization and devtools
-    Object.defineProperty(store, '$nuxt', { value: nuxtApp })
-  })
-
   if (process.server) {
     nuxtApp.payload.pinia = pinia.state.value
   } else if (nuxtApp.payload && nuxtApp.payload.pinia) {
     pinia.state.value = nuxtApp.payload.pinia
   }
+
+  // Inject $pinia
+  return {
+    provide: {
+      pinia
+    }
+  }
 })
index e8a6c66a49bc87cf9101db7633e6b3e55a17feeb..085ee9c02f789937fc500f09268f0b7ac14f9e14 100644 (file)
@@ -3,31 +3,13 @@ import { createPinia, setActivePinia, PiniaVuePlugin } from 'pinia'
 
 // TODO: workaround that should probably be removed in the future
 const Vue = 'default' in _Vue2 ? (_Vue2 as any).default : _Vue2
-
 Vue.use(PiniaVuePlugin)
 
 export default (context: any, inject: any) => {
   const pinia = createPinia()
-  // simulate new Vue({ pinia })
   context.app.pinia = pinia
-
-  // make sure to inject pinia after installing the plugin because in Nuxt 3, inject defines a non configurable getter
-  // on app.config.globalProperties
-  // add $pinia to the context
-  inject('pinia', pinia)
-
-  // to allow accessing pinia without the $
-  // TODO: remove this in deprecation
-  context.pinia = pinia
   setActivePinia(pinia)
 
-  // add access to `$nuxt`
-  // TODO: adapt to Nuxt 3 with a definePlugin
-  pinia._p.push(({ store }) => {
-    // make it non enumerable so it avoids any serialization and devtools
-    Object.defineProperty(store, '$nuxt', { value: context })
-  })
-
   if (process.server) {
     context.beforeNuxtRender((ctx: any) => {
       ctx.nuxtState.pinia = pinia.state.value
@@ -35,4 +17,7 @@ export default (context: any, inject: any) => {
   } else if (context.nuxtState && context.nuxtState.pinia) {
     pinia.state.value = context.nuxtState.pinia
   }
+
+  // Inject $pinia
+  inject('pinia', pinia)
 }