@kubb/plugin-react-query 5.0.0-beta.42 → 5.0.0-beta.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components-IArDg-DO.js → components-DL0Cai7l.js} +211 -255
- package/dist/components-DL0Cai7l.js.map +1 -0
- package/dist/{components-DQAYLQW0.cjs → components-yMQOuFmI.cjs} +215 -259
- package/dist/components-yMQOuFmI.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/{generators-B86BJkmW.js → generators-BG-Vcvfg.js} +151 -231
- package/dist/generators-BG-Vcvfg.js.map +1 -0
- package/dist/{generators-BqGaMUH6.cjs → generators-zGKP8yII.cjs} +149 -229
- package/dist/generators-zGKP8yII.cjs.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.ts +1 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +35 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +36 -13
- package/dist/index.js.map +1 -1
- package/dist/{types-Dh4HNR9K.d.ts → types-X7D0NSvJ.d.ts} +11 -15
- package/package.json +10 -17
- package/src/components/InfiniteQuery.tsx +4 -5
- package/src/components/InfiniteQueryOptions.tsx +24 -27
- package/src/components/Mutation.tsx +5 -6
- package/src/components/MutationOptions.tsx +2 -2
- package/src/components/Query.tsx +5 -6
- package/src/components/QueryOptions.tsx +6 -25
- package/src/components/SuspenseInfiniteQuery.tsx +4 -5
- package/src/components/SuspenseInfiniteQueryOptions.tsx +24 -25
- package/src/components/SuspenseQuery.tsx +5 -6
- package/src/generators/customHookOptionsFileGenerator.tsx +2 -2
- package/src/generators/hookOptionsGenerator.tsx +2 -2
- package/src/generators/infiniteQueryGenerator.tsx +5 -9
- package/src/generators/mutationGenerator.tsx +8 -9
- package/src/generators/queryGenerator.tsx +5 -9
- package/src/generators/suspenseInfiniteQueryGenerator.tsx +5 -9
- package/src/generators/suspenseQueryGenerator.tsx +5 -9
- package/src/plugin.ts +4 -4
- package/src/resolvers/resolverReactQuery.ts +2 -2
- package/src/types.ts +9 -13
- package/src/utils.ts +1 -0
- package/dist/components-DQAYLQW0.cjs.map +0 -1
- package/dist/components-IArDg-DO.js.map +0 -1
- package/dist/generators-B86BJkmW.js.map +0 -1
- package/dist/generators-BqGaMUH6.cjs.map +0 -1
- package/extension.yaml +0 -1484
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators-BG-Vcvfg.js","names":[],"sources":["../src/generators/customHookOptionsFileGenerator.tsx","../src/generators/hookOptionsGenerator.tsx","../src/generators/infiniteQueryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx","../src/generators/suspenseInfiniteQueryGenerator.tsx","../src/generators/suspenseQueryGenerator.tsx"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { defineGenerator } from '@kubb/core'\nimport { File, Function, jsxRenderer } from '@kubb/renderer-jsx'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Scaffolds the user-editable `useCustomHookOptions` file when\n * `pluginReactQuery({ customOptions: { ... } })` is configured. The file is\n * only created when it does not already exist, so user edits persist across\n * regeneration.\n */\nexport const customHookOptionsFileGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query-custom-hook-options-file',\n renderer: jsxRenderer,\n operations(nodes, ctx) {\n const { resolver, config, root } = ctx\n const { output, customOptions, query, group } = ctx.options\n\n if (!customOptions) return null\n\n const override = output.override ?? config.output.override ?? false\n const { importPath, name } = customOptions\n const hookOptionsName = resolver.resolveHookOptionsName()\n const customHookOptionsName = resolver.resolveCustomHookOptionsName()\n\n const reactQueryImportPath = query ? query.importPath : '@tanstack/react-query'\n\n let hookFilePath: string\n const firstNode = nodes[0]\n if (firstNode) {\n const hookName = resolver.resolveQueryName(firstNode)\n const hookFile = resolver.resolveFile(\n { name: hookName, extname: '.ts', tag: firstNode.tags[0] ?? 'default', path: firstNode.path },\n { root, output, group: group ?? undefined },\n )\n hookFilePath = hookFile.path\n } else {\n hookFilePath = path.resolve(root, 'index.ts')\n }\n\n const ensureExtension = (filePath: string, extname: string) => {\n if (path.extname(filePath) === '') return filePath + extname\n return filePath\n }\n\n const basePath = path.dirname(hookFilePath)\n const actualFilePath = ensureExtension(importPath, '.ts')\n const file = {\n baseName: path.basename(actualFilePath) as `${string}.${string}`,\n name: path.basename(actualFilePath, path.extname(actualFilePath)),\n path: path.resolve(basePath, actualFilePath),\n }\n\n if (fs.existsSync(file.path) && !override) return null\n\n return (\n <File baseName={file.baseName} path={file.path}>\n <File.Import name={['QueryClient']} path={reactQueryImportPath} isTypeOnly />\n <File.Import name={['useQueryClient']} path={reactQueryImportPath} />\n <File.Import name={[hookOptionsName]} root={file.path} path={path.resolve(root, './index.ts')} />\n <File.Source name={file.name} isExportable isIndexable>\n <Function name={customHookOptionsName} params=\"{ queryClient }: { queryClient: QueryClient }\" returnType={`Partial<${hookOptionsName}>`}>\n {`return {\n // TODO: Define custom hook options here\n // Example:\n // useUpdatePetHook: {\n // onSuccess: () => {\n // void queryClient.invalidateQueries({ queryKey: ['pet'] })\n // }\n // }\n }`}\n </Function>\n <Function\n name={name}\n generics={`T extends keyof ${hookOptionsName}`}\n params=\"{ hookName, operationId }: { hookName: T, operationId: string }\"\n returnType={`${hookOptionsName}[T]`}\n export\n >\n {`const queryClient = useQueryClient()\n const customOptions = ${customHookOptionsName}({ queryClient })\n return customOptions[hookName] ?? {}`}\n </Function>\n </File.Source>\n </File>\n )\n },\n})\n","import { getOperationParameters, operationFileEntry } from '@internals/shared'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { File, jsxRenderer, Type } from '@kubb/renderer-jsx'\nimport type { KubbReactNode } from '@kubb/renderer-jsx/types'\nimport type { PluginReactQuery } from '../types'\nimport { resolveOperationOverrides } from '../utils.ts'\n\ntype QueryOption = PluginReactQuery['resolvedOptions']['query']\ntype MutationOption = PluginReactQuery['resolvedOptions']['mutation']\n\n/**\n * Emits the `HookOptions` type used by `customOptions`. Enabled when\n * `pluginReactQuery({ customOptions: { ... } })`. The generated type lists\n * every hook keyed by name so user-supplied options stay in sync with the\n * generated hooks at compile time.\n */\nexport const hookOptionsGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query-hook-options',\n renderer: jsxRenderer,\n operations(nodes, ctx) {\n const { resolver, config, root } = ctx\n const { output, customOptions, query, mutation, suspense, infinite, group, override } = ctx.options\n\n if (!customOptions) return null\n\n const name = resolver.resolveHookOptionsName()\n const resolvedFile = resolver.resolveFile({ name, extname: '.ts' }, { root, output, group: group ?? undefined })\n const hookOptionsFile = {\n ...resolvedFile,\n baseName: `${name}.ts` as const,\n path: resolvedFile.path.replace(/[^/\\\\]+\\.ts$/, `${name}.ts`),\n }\n\n const imports: Array<KubbReactNode> = []\n const hookOptions: Record<string, string> = {}\n\n for (const node of nodes) {\n if (!ast.isHttpOperationNode(node)) continue\n const opOverrides = resolveOperationOverrides(node, override)\n const nodeQuery: QueryOption = 'query' in opOverrides ? (opOverrides.query as QueryOption) : query\n const nodeMutation: MutationOption = 'mutation' in opOverrides ? (opOverrides.mutation as MutationOption) : mutation\n const nodeInfinite = 'infinite' in opOverrides ? opOverrides.infinite : infinite\n const nodeInfiniteOptions = nodeInfinite && typeof nodeInfinite === 'object' ? nodeInfinite : null\n\n // query: false means \"still a query but skip the useQuery hook\"\n const isQueryOp =\n nodeQuery === false\n ? !!query && query.methods.some((m) => node.method.toLowerCase() === m.toLowerCase())\n : !!nodeQuery && nodeQuery.methods.some((m) => node.method.toLowerCase() === m.toLowerCase())\n const nodeQueryMethods = new Set(nodeQuery ? nodeQuery.methods : [])\n const isMutationOp =\n nodeMutation !== false &&\n !isQueryOp &&\n (nodeMutation ? nodeMutation.methods : []).some((m) => !nodeQueryMethods.has(m) && node.method.toLowerCase() === m.toLowerCase())\n const isSuspenseOp = !!suspense\n const isInfiniteOp = !!nodeInfiniteOptions\n\n if (isQueryOp) {\n const queryOptionsName = resolver.resolveQueryOptionsName(node)\n const queryHookName = resolver.resolveQueryName(node)\n const queryHookFile = resolver.resolveFile(operationFileEntry(node, queryHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[queryOptionsName]} root={hookOptionsFile.path} path={queryHookFile.path} />)\n hookOptions[queryHookName] = `Partial<ReturnType<typeof ${queryOptionsName}>>`\n\n if (isSuspenseOp) {\n const suspenseOptionsName = resolver.resolveSuspenseQueryOptionsName(node)\n const suspenseHookName = resolver.resolveSuspenseQueryName(node)\n const suspenseHookFile = resolver.resolveFile(operationFileEntry(node, suspenseHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[suspenseOptionsName]} root={hookOptionsFile.path} path={suspenseHookFile.path} />)\n hookOptions[suspenseHookName] = `Partial<ReturnType<typeof ${suspenseOptionsName}>>`\n }\n\n if (isInfiniteOp) {\n // Validate queryParam\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = nodeInfiniteOptions!.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === nodeInfiniteOptions!.queryParam) : false\n\n if (hasQueryParam) {\n const infiniteOptionsName = resolver.resolveInfiniteQueryOptionsName(node)\n const infiniteHookName = resolver.resolveInfiniteQueryName(node)\n const infiniteHookFile = resolver.resolveFile(operationFileEntry(node, infiniteHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[infiniteOptionsName]} root={hookOptionsFile.path} path={infiniteHookFile.path} />)\n hookOptions[infiniteHookName] = `Partial<ReturnType<typeof ${infiniteOptionsName}>>`\n\n if (isSuspenseOp) {\n const suspenseInfiniteOptionsName = resolver.resolveSuspenseInfiniteQueryOptionsName(node)\n const suspenseInfiniteHookName = resolver.resolveSuspenseInfiniteQueryName(node)\n const suspenseInfiniteHookFile = resolver.resolveFile(operationFileEntry(node, suspenseInfiniteHookName), {\n root,\n output,\n group: group ?? undefined,\n })\n imports.push(<File.Import name={[suspenseInfiniteOptionsName]} root={hookOptionsFile.path} path={suspenseInfiniteHookFile.path} />)\n hookOptions[suspenseInfiniteHookName] = `Partial<ReturnType<typeof ${suspenseInfiniteOptionsName}>>`\n }\n }\n }\n }\n\n if (isMutationOp) {\n const mutationOptionsName = resolver.resolveMutationOptionsName(node)\n const mutationHookName = resolver.resolveMutationName(node)\n const mutationHookFile = resolver.resolveFile(operationFileEntry(node, mutationHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[mutationOptionsName]} root={hookOptionsFile.path} path={mutationHookFile.path} />)\n hookOptions[mutationHookName] = `Partial<ReturnType<typeof ${mutationOptionsName}>>`\n }\n }\n\n return (\n <File\n baseName={hookOptionsFile.baseName}\n path={hookOptionsFile.path}\n meta={hookOptionsFile.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: hookOptionsFile.path, baseName: hookOptionsFile.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: hookOptionsFile.path, baseName: hookOptionsFile.baseName } })}\n >\n {imports}\n <File.Source name={name} isExportable isIndexable isTypeOnly>\n <Type export name={name}>\n {`{ ${Object.keys(hookOptions)\n .map((key) => `${JSON.stringify(key)}: ${hookOptions[key]}`)\n .join(', ')} }`}\n </Type>\n </File.Source>\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { getOperationParameters, operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, isParserEnabled, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRenderer } from '@kubb/renderer-jsx'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useInfiniteQuery` hooks. Enabled when\n * `pluginReactQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`\n * hook per query operation, wiring the configured `nextParam` /\n * `previousParam` paths into TanStack Query's cursor-based pagination.\n */\nexport const infiniteQueryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-infinite-query',\n renderer: jsxRenderer,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const queryMethods = new Set(query ? query.methods : [])\n const isMutation =\n mutation !== false &&\n !isQuery &&\n (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase())\n const infiniteOptions = infinite && typeof infinite === 'object' ? infinite : null\n\n if (!isQuery || isMutation || !infiniteOptions) return null\n\n // Validate queryParam exists in operation's query parameters\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false\n // cursorParam validation against response schema keys is skipped in v5 (complex schema inspection)\n const hasCursorParam = !infiniteOptions.cursorParam || true\n\n if (!hasQueryParam || !hasCursorParam) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveInfiniteQueryName(node)\n const queryOptionsName = resolver.resolveInfiniteQueryOptionsName(node)\n const queryKeyName = resolver.resolveInfiniteQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveInfiniteQueryKeyTypeName(node)\n const clientBaseName = resolver.resolveInfiniteClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = isParserEnabled(parser) ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, parser)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n\n <InfiniteQueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'InfiniteQueryObserverOptions', 'UseInfiniteQueryResult']} path={importPath} isTypeOnly />\n\n <InfiniteQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n customOptions={customOptions}\n />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, isParserEnabled, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRenderer } from '@kubb/renderer-jsx'\nimport { Mutation, MutationKey, MutationOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useMutation` hooks. Emits one `useFooMutation` hook\n * per POST/PUT/DELETE operation (configurable via `mutation.methods`) plus\n * the matching `fooMutationKey` / `fooMutationOptions` helpers.\n */\nexport const mutationGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query-mutation',\n renderer: jsxRenderer,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const queryMethods = new Set(query ? query.methods : [])\n const isMutation =\n mutation !== false &&\n !isQuery &&\n (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase())\n\n if (!isMutation) return null\n\n const importPath = mutation ? mutation.importPath : '@tanstack/react-query'\n\n const mutationHookName = resolver.resolveMutationName(node)\n const mutationTypeName = resolver.resolveMutationTypeName(node)\n const mutationOptionsName = resolver.resolveMutationOptionsName(node)\n const mutationKeyName = resolver.resolveMutationKeyName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, mutationHookName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })\n\n const pluginZod = isParserEnabled(parser) ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, parser)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && node.requestBody?.content?.some((e) => e.contentType === 'multipart/form-data') && (\n <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />\n )}\n {!shouldUseClientPlugin && parser === 'zod' && zodResolver && node.requestBody?.content?.[0]?.schema && (\n <File.Import name={['z']} path=\"zod\" isTypeOnly />\n )}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <MutationKey name={mutationKeyName} node={node} pathParamsType={pathParamsType} paramsCasing={paramsCasing} transformer={ctx.options.mutationKey} />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['mutationOptions']} path={importPath} />\n\n <MutationOptions\n name={mutationOptionsName}\n clientName={resolvedClientName}\n mutationKeyName={mutationKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n\n {mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['UseMutationOptions', 'UseMutationResult', 'QueryClient']} path={importPath} isTypeOnly />\n <Mutation\n name={mutationHookName}\n typeName={mutationTypeName}\n mutationOptionsName={mutationOptionsName}\n mutationKeyName={mutationKeyName}\n node={node}\n tsResolver={tsResolver}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={paramsCasing}\n pathParamsType={pathParamsType}\n customOptions={customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, isParserEnabled, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRenderer } from '@kubb/renderer-jsx'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useQuery` hooks. Emits one `useFooQuery` hook per\n * GET operation (configurable via `query.methods`) plus the matching\n * `fooQueryKey` / `fooQueryOptions` helpers.\n */\nexport const queryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query',\n renderer: jsxRenderer,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n // query: false means \"this IS a query op, but skip the useQuery hook\"\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const queryMethods = new Set(query ? query.methods : [])\n const isMutation =\n mutation !== false &&\n !isQuery &&\n (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase())\n\n if (!isQuery || isMutation) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveQueryName(node)\n const queryOptionsName = resolver.resolveQueryOptionsName(node)\n const queryKeyName = resolver.resolveQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = isParserEnabled(parser) ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, parser)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['queryOptions']} path={importPath} />\n\n <QueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n\n {query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'QueryObserverOptions', 'UseQueryResult']} path={importPath} isTypeOnly />\n <Query\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n customOptions={customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { getOperationParameters, operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, isParserEnabled, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRenderer } from '@kubb/renderer-jsx'\nimport { QueryKey, SuspenseInfiniteQuery, SuspenseInfiniteQueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useSuspenseInfiniteQuery` hooks. Enabled when both\n * `suspense` and `infinite` are configured. Combines suspense semantics with\n * cursor-based pagination — handlers throw promises while loading and pull\n * additional pages on demand.\n */\nexport const suspenseInfiniteQueryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-suspense-infinite-query',\n renderer: jsxRenderer,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const {\n output,\n query,\n mutation,\n infinite,\n suspense,\n paramsCasing,\n paramsType,\n pathParamsType,\n parser,\n client: clientOptions,\n group,\n customOptions,\n } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const queryMethods = new Set(query ? query.methods : [])\n const isMutation =\n mutation !== false &&\n !isQuery &&\n (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase())\n const isSuspense = !!suspense\n const infiniteOptions = infinite && typeof infinite === 'object' ? infinite : null\n\n if (!isQuery || isMutation || !isSuspense || !infiniteOptions) return null\n\n // Validate queryParam exists in operation's query parameters\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false\n const hasCursorParam = !infiniteOptions.cursorParam || true\n\n if (!hasQueryParam || !hasCursorParam) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveSuspenseInfiniteQueryName(node)\n const queryOptionsName = resolver.resolveSuspenseInfiniteQueryOptionsName(node)\n const queryKeyName = resolver.resolveSuspenseInfiniteQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveSuspenseInfiniteQueryKeyTypeName(node)\n const clientBaseName = resolver.resolveSuspenseInfiniteClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })\n\n const pluginZod = isParserEnabled(parser) ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, parser)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n\n <SuspenseInfiniteQueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n\n <File.Import name={['useSuspenseInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseInfiniteQueryOptions', 'UseSuspenseInfiniteQueryResult']} path={importPath} isTypeOnly />\n\n <SuspenseInfiniteQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n customOptions={customOptions}\n />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, isParserEnabled, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRenderer } from '@kubb/renderer-jsx'\nimport { QueryKey, QueryOptions, SuspenseQuery } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useSuspenseQuery` hooks. Enabled when\n * `pluginReactQuery({ suspense: {} })`. Emits one `useFooSuspenseQuery` hook\n * per query operation. Suspense queries throw promises while loading and\n * require a `<Suspense>` boundary in the React tree. TanStack Query v5+ only.\n */\nexport const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-suspense-query',\n renderer: jsxRenderer,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n // query: false means \"this IS a query op\" (suspense hooks still generate)\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const queryMethods = new Set(query ? query.methods : [])\n const isMutation =\n mutation !== false &&\n !isQuery &&\n (mutation ? mutation.methods : []).some((method) => !queryMethods.has(method) && node.method.toLowerCase() === method.toLowerCase())\n const isSuspense = !!suspense\n\n if (!isQuery || isMutation || !isSuspense) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveSuspenseQueryName(node)\n const queryOptionsName = resolver.resolveSuspenseQueryOptionsName(node)\n const queryKeyName = resolver.resolveSuspenseQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveSuspenseQueryKeyTypeName(node)\n const clientName = resolver.resolveSuspenseClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = isParserEnabled(parser) ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver, parser)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['queryOptions']} path={importPath} />\n\n <QueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n suspense\n />\n\n {suspense && (\n <>\n <File.Import name={['useSuspenseQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseQueryOptions', 'UseSuspenseQueryResult']} path={importPath} isTypeOnly />\n <SuspenseQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n customOptions={customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n"],"mappings":"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"}
|