From 57ad5a17e0d89a6d1fb5aa82bdb162a0cca506dc Mon Sep 17 00:00:00 2001 From: Howard Guo <50100922+toto6038@users.noreply.github.com> Date: Fri, 18 Jul 2025 17:25:21 +0800 Subject: [PATCH 1/2] feat: support boolean for autoImports option and update docs --- README.md | 16 +++++++++++----- src/module.ts | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 8 deletions(-) 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..5f27b7e 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 = importComposables.intersection(new Set(options.autoImports)) + } + addImports([...importComposables.values()].map(name => ( + { name, from: '@tanstack/vue-query' } + ))) if (options.devtools) setupDevToolsUI(nuxt, resolver) From 5589b2ab70ddd7cfc94198622784c6e2421603fe Mon Sep 17 00:00:00 2001 From: Howard Guo <50100922+toto6038@users.noreply.github.com> Date: Fri, 18 Jul 2025 23:22:44 +0800 Subject: [PATCH 2/2] refactor: remove redundant intersection check for autoImports option --- src/module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/module.ts b/src/module.ts index 5f27b7e..a93ca64 100644 --- a/src/module.ts +++ b/src/module.ts @@ -77,7 +77,7 @@ export default defineNuxtModule({ !options.autoImports && importComposables.clear() } else { - importComposables = importComposables.intersection(new Set(options.autoImports)) + importComposables = new Set(options.autoImports) } addImports([...importComposables.values()].map(name => ( { name, from: '@tanstack/vue-query' }