diff --git a/README.md b/README.md index bad28d5..2ab856f 100644 --- a/README.md +++ b/README.md @@ -41,16 +41,22 @@ To configure Nuxt Query, update your `nuxt.config.ts` specifying the options you export default defineNuxtConfig({ modules: ['@peterbud/nuxt-query'], nuxtQuery: { - // Specify which Vue Query composable(s) to auto-import + /** + * Specify which Vue Query composable(s) to auto-import + * Default to `false`, set to `true` to auto-import all Vue Query composables + */ autoImports: ['useQuery', 'useMutation'], // Enable / disable Nuxt DevTools integration (default: true). devtools: true, - // These are the same options as the QueryClient - // from @tanstack/vue-query, will be passed - // to the QueryClient constructor - // More details: https://tanstack.com/query/v5/docs/reference/QueryClient + /** + * These are the same options as the QueryClient + * from @tanstack/vue-query, which will be passed + * to the QueryClient constructor + * More details: https://tanstack.com/query/v5/docs/reference/QueryClient + */ + queryClientOptions: { defaultOptions: { queries: { diff --git a/src/module.ts b/src/module.ts index 210522f..a93ca64 100644 --- a/src/module.ts +++ b/src/module.ts @@ -17,7 +17,7 @@ const _composables = [ type VueQueryComposables = typeof _composables[number] export interface ModuleOptions { - autoImports: VueQueryComposables[] | false + autoImports: VueQueryComposables[] | boolean devtools: boolean queryClientOptions: QueryClientConfig | undefined } @@ -71,8 +71,17 @@ export default defineNuxtModule({ addPlugin(resolver.resolve('./runtime/plugin')) // Auto imports tanstack composables - if (options.autoImports && options.autoImports.length > 0) - addImports(options.autoImports.map(name => ({ name, from: '@tanstack/vue-query' }))) + let importComposables = new Set(_composables) + if (typeof options.autoImports === 'boolean') { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + !options.autoImports && importComposables.clear() + } + else { + importComposables = new Set(options.autoImports) + } + addImports([...importComposables.values()].map(name => ( + { name, from: '@tanstack/vue-query' } + ))) if (options.devtools) setupDevToolsUI(nuxt, resolver)