]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
feat(nuxt): add `autoImports` option in module
authorEduardo San Martin Morote <posva13@gmail.com>
Wed, 13 Jul 2022 10:11:22 +0000 (12:11 +0200)
committerEduardo San Martin Morote <posva@users.noreply.github.com>
Wed, 13 Jul 2022 10:32:58 +0000 (12:32 +0200)
packages/nuxt/src/module.ts
packages/nuxt/src/runtime/composables.ts

index b3d5724e316d87e2960a7392b9e710d6f95fad9f..10d297dcbc409e7ad1254dce4104df49880b04fa 100644 (file)
@@ -17,6 +17,22 @@ export interface ModuleOptions {
    * @default `true`
    */
   disableVuex?: boolean
+
+  /**
+   * Array of auto imports to be added to the nuxt.config.js file.
+   *
+   * @example
+   * ```js
+   * autoImports: [
+   *  // automatically import `defineStore`
+   *  'defineStore',
+   *  // automatically import `defineStore` as `definePiniaStore`
+   *  ['defineStore', 'definePiniaStore',
+   * ]
+   * ```
+   *
+   */
+  autoImports?: Array<string | [string, string]>
 }
 
 export default defineNuxtModule<ModuleOptions>({
@@ -30,6 +46,7 @@ export default defineNuxtModule<ModuleOptions>({
   },
   defaults: {
     disableVuex: true,
+    autoImports: [],
   },
   setup(options, nuxt) {
     const resolver = createResolver(import.meta.url)
@@ -56,7 +73,11 @@ export default defineNuxtModule<ModuleOptions>({
     const composables = resolver.resolve('./runtime/composables')
     addAutoImport([
       { from: composables, name: 'usePinia' },
-      { from: composables, name: 'definePiniaStore' },
+      ...options.autoImports.map((imports) =>
+        typeof imports === 'string'
+          ? { from: composables, name: imports }
+          : { from: composables, name: imports[0], as: imports[1] }
+      ),
     ])
   },
 })
index 3ed0315579dcb5028f2a22066abe5e0ac32af8fa..5c9e8f70e70e55fdb8d17333902bf0b96043d59a 100644 (file)
@@ -1,6 +1,4 @@
 import { useNuxtApp } from '#imports'
-import { defineStore } from 'pinia'
+export * from 'pinia'
 
 export const usePinia = () => useNuxtApp().$pinia
-
-export const definePiniaStore = defineStore