@kubb/plugin-react-query 3.0.0-alpha.11 → 3.0.0-alpha.13
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/README.md +13 -0
- package/dist/{chunk-7ZODZVKP.cjs → chunk-AGLJPONA.cjs} +30 -34
- package/dist/chunk-AGLJPONA.cjs.map +1 -0
- package/dist/{chunk-ZYTZV43V.js → chunk-I7X4HNDR.js} +30 -34
- package/dist/chunk-I7X4HNDR.js.map +1 -0
- package/dist/components.cjs +5 -5
- package/dist/components.d.cts +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/{index-5kpkk-7M.d.cts → index-BzoLlZve.d.cts} +0 -8
- package/dist/{index-5kpkk-7M.d.ts → index-BzoLlZve.d.ts} +0 -8
- package/dist/index.cjs +13 -13
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +14 -14
- package/src/__snapshots__/mutateAsQuery/updatePetWithForm.ts +3 -3
- package/src/__snapshots__/pathParamsTypeInline/getPetById.ts +2 -2
- package/src/__snapshots__/pathParamsTypeObject/getPetById.ts +3 -3
- package/src/__snapshots__/queryOptions/getPetById.ts +3 -3
- package/src/components/Mutation.tsx +4 -20
- package/src/components/Query.tsx +3 -4
- package/src/components/QueryImports.tsx +2 -2
- package/src/components/QueryOptions.tsx +5 -15
- package/src/components/SchemaType.tsx +17 -2
- package/src/components/__snapshots__/gen/showPetById.ts +1 -1
- package/dist/chunk-7ZODZVKP.cjs.map +0 -1
- package/dist/chunk-ZYTZV43V.js.map +0 -1
|
@@ -2,8 +2,8 @@ import transformers from '@kubb/core/transformers'
|
|
|
2
2
|
import { FunctionParams, URLPath } from '@kubb/core/utils'
|
|
3
3
|
import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
4
4
|
import { getASTParams, getComments } from '@kubb/plugin-oas/utils'
|
|
5
|
-
import { File, Function, useApp } from '@kubb/react'
|
|
6
5
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
6
|
+
import { File, Function, useApp } from '@kubb/react'
|
|
7
7
|
|
|
8
8
|
import { SchemaType } from './SchemaType.tsx'
|
|
9
9
|
|
|
@@ -118,32 +118,16 @@ function RootTemplate({ children }: RootTemplateProps) {
|
|
|
118
118
|
},
|
|
119
119
|
} = useApp<PluginReactQuery>()
|
|
120
120
|
|
|
121
|
-
const {
|
|
121
|
+
const { getFile } = useOperationManager()
|
|
122
122
|
const operation = useOperation()
|
|
123
|
-
|
|
124
|
-
const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })
|
|
125
123
|
const file = getFile(operation)
|
|
126
|
-
const fileType = getFile(operation, { pluginKey: [pluginTsName] })
|
|
127
124
|
|
|
128
125
|
return (
|
|
129
126
|
<File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>
|
|
130
127
|
<File.Import name={'client'} path={importPath} />
|
|
131
|
-
|
|
132
|
-
<File.Import
|
|
133
|
-
name={[
|
|
134
|
-
schemas.request?.name,
|
|
135
|
-
schemas.response.name,
|
|
136
|
-
schemas.pathParams?.name,
|
|
137
|
-
schemas.queryParams?.name,
|
|
138
|
-
schemas.headerParams?.name,
|
|
139
|
-
...(schemas.errors?.map((error) => error.name) || []),
|
|
140
|
-
].filter(Boolean)}
|
|
141
|
-
root={file.path}
|
|
142
|
-
path={fileType.path}
|
|
143
|
-
isTypeOnly
|
|
144
|
-
/>
|
|
128
|
+
|
|
145
129
|
<File.Import
|
|
146
|
-
name={['UseMutationOptions'
|
|
130
|
+
name={['UseMutationOptions']}
|
|
147
131
|
path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'}
|
|
148
132
|
isTypeOnly
|
|
149
133
|
/>
|
package/src/components/Query.tsx
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { PackageManager } from '@kubb/core'
|
|
2
2
|
import transformers from '@kubb/core/transformers'
|
|
3
3
|
import { FunctionParams, URLPath } from '@kubb/core/utils'
|
|
4
|
-
import { File, Function, useApp } from '@kubb/react'
|
|
5
|
-
import { pluginTsName } from '@kubb/plugin-ts'
|
|
6
|
-
import { pluginZodName } from '@kubb/plugin-zod'
|
|
7
4
|
import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
8
5
|
import { getASTParams, getComments } from '@kubb/plugin-oas/utils'
|
|
6
|
+
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
|
+
import { pluginZodName } from '@kubb/plugin-zod'
|
|
8
|
+
import { File, Function, useApp } from '@kubb/react'
|
|
9
9
|
|
|
10
10
|
import { getImportNames, reactQueryDepRegex } from '../utils.ts'
|
|
11
11
|
import { QueryImports } from './QueryImports.tsx'
|
|
@@ -550,7 +550,6 @@ Query.File = function ({ templates }: FileProps): ReactNode {
|
|
|
550
550
|
<File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>
|
|
551
551
|
{parser === 'zod' && <File.Import name={[zodSchemas.response?.name]} root={file.path} path={fileZodSchemas.path} />}
|
|
552
552
|
<File.Import name={'client'} path={importPath} />
|
|
553
|
-
<File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />
|
|
554
553
|
<File.Import
|
|
555
554
|
name={[
|
|
556
555
|
schemas.request?.name,
|
|
@@ -29,7 +29,7 @@ function Template({ path, hookPath = path, isInfinite, hookName, queryOptions, o
|
|
|
29
29
|
<File.Import name={[hookName]} path={hookPath} />
|
|
30
30
|
|
|
31
31
|
{queryOptions && <File.Import name={[queryOptions].filter(Boolean)} path={path} />}
|
|
32
|
-
<File.Import name={['QueryKey',
|
|
32
|
+
<File.Import name={['QueryKey', isInfinite ? 'InfiniteData' : undefined].filter(Boolean)} path={path} isTypeOnly />
|
|
33
33
|
</>
|
|
34
34
|
)
|
|
35
35
|
}
|
|
@@ -132,7 +132,7 @@ const defaultTemplates = {
|
|
|
132
132
|
)}
|
|
133
133
|
<File.Import name={['unref']} path={'vue'} />
|
|
134
134
|
<File.Import name={['MaybeRef']} path={'vue'} isTypeOnly />
|
|
135
|
-
<File.Import name={['QueryKey'
|
|
135
|
+
<File.Import name={['QueryKey']} path={path} isTypeOnly />
|
|
136
136
|
</>
|
|
137
137
|
)
|
|
138
138
|
}
|
|
@@ -3,14 +3,14 @@ import transformers from '@kubb/core/transformers'
|
|
|
3
3
|
import { FunctionParams, URLPath } from '@kubb/core/utils'
|
|
4
4
|
import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
5
5
|
import { getASTParams } from '@kubb/plugin-oas/utils'
|
|
6
|
-
import { Function, useApp, File } from '@kubb/react'
|
|
7
6
|
import { pluginZodName } from '@kubb/plugin-zod'
|
|
7
|
+
import { File, Function, useApp } from '@kubb/react'
|
|
8
8
|
|
|
9
9
|
import { isRequired } from '@kubb/oas'
|
|
10
10
|
import type { HttpMethod } from '@kubb/oas'
|
|
11
|
+
import { pluginTsName } from '@kubb/plugin-ts'
|
|
11
12
|
import type { ReactNode } from 'react'
|
|
12
13
|
import type { Infinite, PluginReactQuery, Suspense } from '../types.ts'
|
|
13
|
-
import { pluginTsName } from '@kubb/plugin-ts'
|
|
14
14
|
import { reactQueryDepRegex } from '../utils.ts'
|
|
15
15
|
|
|
16
16
|
type TemplateProps = {
|
|
@@ -22,14 +22,6 @@ type TemplateProps = {
|
|
|
22
22
|
* Parameters/options/props that need to be used
|
|
23
23
|
*/
|
|
24
24
|
params: string
|
|
25
|
-
/**
|
|
26
|
-
* Generics that needs to be added for TypeScript
|
|
27
|
-
*/
|
|
28
|
-
generics?: string
|
|
29
|
-
/**
|
|
30
|
-
* ReturnType(see async for adding Promise type)
|
|
31
|
-
*/
|
|
32
|
-
returnType?: string
|
|
33
25
|
/**
|
|
34
26
|
* Options for JSdocs
|
|
35
27
|
*/
|
|
@@ -55,7 +47,7 @@ type TemplateProps = {
|
|
|
55
47
|
parser: string | undefined
|
|
56
48
|
}
|
|
57
49
|
|
|
58
|
-
function Template({ name, params,
|
|
50
|
+
function Template({ name, params, JSDoc, hook, client, infinite, dataReturnType, parser }: TemplateProps): ReactNode {
|
|
59
51
|
const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')
|
|
60
52
|
const isFormData = client.contentType === 'multipart/form-data'
|
|
61
53
|
const headers = [
|
|
@@ -150,7 +142,7 @@ function Template({ name, params, generics, returnType, JSDoc, hook, client, inf
|
|
|
150
142
|
|
|
151
143
|
return (
|
|
152
144
|
<File.Source name={name} isExportable isIndexable>
|
|
153
|
-
<Function name={name} export
|
|
145
|
+
<Function name={name} export params={params} JSDoc={JSDoc}>
|
|
154
146
|
{`
|
|
155
147
|
const queryKey = ${hook.queryKey}
|
|
156
148
|
|
|
@@ -203,7 +195,7 @@ function Template({ name, params, generics, returnType, JSDoc, hook, client, inf
|
|
|
203
195
|
|
|
204
196
|
return (
|
|
205
197
|
<File.Source name={name} isExportable isIndexable>
|
|
206
|
-
<Function name={name} export
|
|
198
|
+
<Function name={name} export params={params} JSDoc={JSDoc}>
|
|
207
199
|
{`
|
|
208
200
|
const queryKey = ${hook.queryKey}
|
|
209
201
|
|
|
@@ -477,8 +469,6 @@ export function QueryOptions({ factory, infinite, suspense, resultType, dataRetu
|
|
|
477
469
|
<Template
|
|
478
470
|
name={queryOptionsName}
|
|
479
471
|
params={params.toString()}
|
|
480
|
-
generics={generics.toString()}
|
|
481
|
-
returnType={`WithRequired<${resultType}<${resultGenerics.join(', ')}>, 'queryKey'>`}
|
|
482
472
|
client={client}
|
|
483
473
|
hook={hook}
|
|
484
474
|
infinite={infinite}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
2
2
|
import { File, Type, useApp } from '@kubb/react'
|
|
3
3
|
|
|
4
|
+
import { pluginTsName } from '@kubb/plugin-ts'
|
|
4
5
|
import type { ReactNode } from 'react'
|
|
5
6
|
import type { PluginReactQuery } from '../types.ts'
|
|
6
|
-
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
7
|
|
|
8
8
|
export function SchemaType(): ReactNode {
|
|
9
9
|
const {
|
|
@@ -11,9 +11,11 @@ export function SchemaType(): ReactNode {
|
|
|
11
11
|
options: { dataReturnType },
|
|
12
12
|
},
|
|
13
13
|
} = useApp<PluginReactQuery>()
|
|
14
|
-
const { getSchemas, getName } = useOperationManager()
|
|
14
|
+
const { getSchemas, getName, getFile } = useOperationManager()
|
|
15
15
|
const operation = useOperation()
|
|
16
16
|
|
|
17
|
+
const file = getFile(operation)
|
|
18
|
+
const fileType = getFile(operation, { pluginKey: [pluginTsName] })
|
|
17
19
|
const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })
|
|
18
20
|
|
|
19
21
|
const [TData, TError, TRequest, TPathParams, TQueryParams, THeaderParams, TResponse] = [
|
|
@@ -32,6 +34,19 @@ export function SchemaType(): ReactNode {
|
|
|
32
34
|
|
|
33
35
|
return (
|
|
34
36
|
<>
|
|
37
|
+
<File.Import
|
|
38
|
+
name={[
|
|
39
|
+
schemas.request?.name,
|
|
40
|
+
schemas.response.name,
|
|
41
|
+
schemas.pathParams?.name,
|
|
42
|
+
schemas.queryParams?.name,
|
|
43
|
+
schemas.headerParams?.name,
|
|
44
|
+
...(schemas.errors?.map((error) => error.name) || []),
|
|
45
|
+
].filter(Boolean)}
|
|
46
|
+
root={file.path}
|
|
47
|
+
path={fileType.path}
|
|
48
|
+
isTypeOnly
|
|
49
|
+
/>
|
|
35
50
|
<File.Source name={clientType} isTypeOnly>
|
|
36
51
|
<Type name={clientType}>{`typeof client<${TResponse}, ${TError}, ${isFormData ? 'FormData' : TRequest}>`}</Type>
|
|
37
52
|
</File.Source>
|
|
@@ -19,7 +19,7 @@ export const GetPetsUuidQueryKey = () => [{ url: '/pets/:uuid', params: {uuid:
|
|
|
19
19
|
|
|
20
20
|
export type GetPetsUuidQueryKey = ReturnType<typeof GetPetsUuidQueryKey>
|
|
21
21
|
|
|
22
|
-
export function GetPetsUuidQueryOptions
|
|
22
|
+
export function GetPetsUuidQueryOptions(options: GetPetsUuid['client']['parameters'] = {}) {
|
|
23
23
|
|
|
24
24
|
const queryKey = GetPetsUuidQueryKey()
|
|
25
25
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/SchemaType.tsx","../src/components/Mutation.tsx","../src/utils.ts","../src/components/QueryImports.tsx","../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"names":["useApp","useOperationManager","useOperation","pluginTsName","jsxs","Fragment","jsx","File","Type","transformers","Function","Template","FunctionParams","getASTParams","isRequired","URLPath","getComments","RootTemplate","PackageManager","defaultTemplates","pluginZodName"],"mappings":"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","file":"chunk-7ZODZVKP.cjs","sourcesContent":["import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Type, useApp } from '@kubb/react'\n\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types.ts'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nexport function SchemaType(): ReactNode {\n const {\n plugin: {\n options: { dataReturnType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n const [TData, TError, TRequest, TPathParams, TQueryParams, THeaderParams, TResponse] = [\n schemas.response.name,\n schemas.errors?.map((item) => item.name).join(' | ') || 'never',\n schemas.request?.name || 'never',\n schemas.pathParams?.name || 'never',\n schemas.queryParams?.name || 'never',\n schemas.headerParams?.name || 'never',\n schemas.response.name,\n ]\n const factoryName = getName(operation, { type: 'type' })\n\n const clientType = `${factoryName}Client`\n const isFormData = operation.getContentType() === 'multipart/form-data'\n\n return (\n <>\n <File.Source name={clientType} isTypeOnly>\n <Type name={clientType}>{`typeof client<${TResponse}, ${TError}, ${isFormData ? 'FormData' : TRequest}>`}</Type>\n </File.Source>\n <File.Source name={factoryName} isTypeOnly>\n <Type name={factoryName}>\n {`\n {\n data: ${TData}\n error: ${TError}\n request: ${isFormData ? 'FormData' : TRequest}\n pathParams: ${TPathParams}\n queryParams: ${TQueryParams}\n headerParams: ${THeaderParams}\n response: ${dataReturnType === 'data' ? TData : `Awaited<ReturnType<${clientType}>>`}\n client: {\n parameters: Partial<Parameters<${clientType}>[0]>\n return: Awaited<ReturnType<${clientType}>>\n }\n }\n `}\n </Type>\n </File.Source>\n </>\n )\n}\n","import transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport { SchemaType } from './SchemaType.tsx'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ComponentProps, ComponentType, ReactNode } from 'react'\nimport type { FileMeta, PluginReactQuery } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n mutateParams: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n name: string\n generics?: string\n children?: string\n }\n client: {\n generics: string\n method: HttpMethod\n path: URLPath\n withQueryParams: boolean\n withPathParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n}\n\nfunction Template({ name, params, mutateParams, JSDoc, client, hook, dataReturnType }: TemplateProps): ReactNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n\n const clientOptions = [\n `method: \"${client.method}\"`,\n `url: ${client.path.template}`,\n client.withQueryParams ? 'params' : undefined,\n client.withData && !isFormData ? 'data' : undefined,\n client.withData && isFormData ? 'data: formData' : undefined,\n headers.length ? `headers: { ${headers}, ...clientOptions.headers }` : undefined,\n '...clientOptions',\n ].filter(Boolean)\n\n const resolvedClientOptions = `${transformers.createIndent(4)}${clientOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function export name={name} params={params} JSDoc={JSDoc}>\n {`\n const { mutation: mutationOptions, client: clientOptions = {} } = options ?? {}\n\n return ${hook.name}({\n mutationFn: async(${mutateParams}) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n return ${dataReturnType === 'data' ? 'res.data' : 'res'}\n },\n ...mutationOptions\n })`}\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n mutate,\n },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[\n schemas.request?.name,\n schemas.response.name,\n schemas.pathParams?.name,\n schemas.queryParams?.name,\n schemas.headerParams?.name,\n ...(schemas.errors?.map((error) => error.name) || []),\n ].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n <File.Import\n name={['UseMutationOptions', 'UseMutationResult']}\n path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'}\n isTypeOnly\n />\n <File.Import name={['useMutation']} path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'} />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype MutationProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Mutation({ Template = defaultTemplates.default }: MutationProps): ReactNode {\n // TODO do checks on pathParamsType\n\n const {\n plugin: {\n options: { dataReturnType, mutate },\n },\n } = useApp<PluginReactQuery>()\n\n const operation = useOperation()\n const { getSchemas, getName } = useOperationManager()\n\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const contentType = operation.getContentType()\n\n const params = new FunctionParams()\n const mutateParams = new FunctionParams()\n const factoryName = getName(operation, { type: 'type' })\n\n const requestType =\n mutate && mutate.variablesType === 'mutate'\n ? FunctionParams.toObject([\n ...getASTParams(schemas.pathParams, { typed: true }),\n {\n name: 'params',\n type: `${factoryName}['queryParams']`,\n enabled: !!schemas.queryParams?.name,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factoryName}['headerParams']`,\n enabled: !!schemas.headerParams?.name,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factoryName}['request']`,\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ])?.type\n : schemas.request?.name\n ? `${factoryName}['request']`\n : 'never'\n\n const client = {\n method: operation.method,\n path: new URLPath(operation.path),\n generics: [`${factoryName}[\"data\"]`, `${factoryName}[\"error\"]`, requestType ? `${factoryName}[\"request\"]` : 'void'].join(', '),\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n contentType,\n }\n const hook = {\n name: 'useMutation',\n generics: [`${factoryName}['response']`, `${factoryName}[\"error\"]`, requestType ? `${requestType}` : 'void'].join(', '),\n }\n\n const resultGenerics = [\n `${factoryName}[\"response\"]`,\n `${factoryName}[\"error\"]`,\n mutate && mutate?.variablesType === 'mutate' ? requestType : `${factoryName}[\"request\"]`,\n ]\n\n if (mutate && mutate?.variablesType === 'mutate') {\n params.add([\n {\n name: 'options',\n type: `{\n mutation?: UseMutationOptions<${resultGenerics.join(', ')}>,\n client?: ${factoryName}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n mutateParams.add([\n [\n ...getASTParams(schemas.pathParams, { typed: false }),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ],\n ])\n } else {\n params.add([\n ...getASTParams(schemas.pathParams, { typed: true }),\n {\n name: 'params',\n type: `${factoryName}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factoryName}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'options',\n type: `{\n mutation?: UseMutationOptions<${resultGenerics.join(', ')}>,\n client?: ${factoryName}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n mutateParams.add([\n {\n name: 'data',\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ])\n }\n\n if (!mutate) {\n return null\n }\n\n return (\n <>\n <Template\n name={name}\n JSDoc={{ comments: getComments(operation) }}\n client={client}\n hook={hook}\n params={params.toString()}\n mutateParams={mutateParams.toString()}\n dataReturnType={dataReturnType}\n />\n </>\n )\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nMutation.File = function ({ ...props }: FileProps): ReactNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <SchemaType />\n <Mutation Template={Template} />\n </RootTemplate>\n )\n}\n\nMutation.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\n\nexport const reactQueryDepRegex = /@tanstack\\/(react|solid|vue|svelte)-query/\n\nexport function getImportNames() {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n\n return {\n mutation: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useMutation',\n optionsType: 'UseMutationOptions',\n resultType: 'UseMutationResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createMutation',\n optionsType: 'CreateMutationOptions',\n resultType: 'CreateMutationResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createMutation',\n optionsType: 'CreateMutationOptions',\n resultType: 'CreateMutationResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useMutation',\n optionsType: isV5 ? 'UseMutationOptions' : 'VueMutationObserverOptions',\n resultType: 'UseMutationReturnType',\n },\n },\n query: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useQuery',\n optionsType: isV5 ? 'QueryObserverOptions' : 'UseBaseQueryOptions',\n resultType: 'UseQueryResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createQuery',\n optionsType: 'CreateBaseQueryOptions',\n resultType: 'CreateQueryResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createQuery',\n optionsType: 'CreateBaseQueryOptions',\n resultType: 'CreateQueryResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useQuery',\n optionsType: isV5 ? 'QueryObserverOptions' : 'VueQueryObserverOptions',\n resultType: isV5 ? 'UseQueryReturnType' : 'UseQueryReturnType',\n },\n },\n queryInfinite: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useInfiniteQuery',\n optionsType: isV5 ? 'InfiniteQueryObserverOptions' : 'UseInfiniteQueryOptions',\n resultType: 'UseInfiniteQueryResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createInfiniteQuery',\n optionsType: 'CreateInfiniteQueryOptions',\n resultType: 'CreateInfiniteQueryResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createInfiniteQuery',\n optionsType: 'CreateInfiniteQueryOptions',\n resultType: 'CreateInfiniteQueryResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useInfiniteQuery',\n optionsType: isV5 ? 'UseInfiniteQueryOptions' : 'VueInfiniteQueryObserverOptions',\n resultType: isV5 ? 'UseInfiniteQueryReturnType' : 'VueInfiniteQueryObserverOptions',\n },\n },\n querySuspense: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useSuspenseQuery',\n optionsType: 'UseSuspenseQueryOptions',\n resultType: 'UseSuspenseQueryResult',\n },\n },\n } as const\n}\n","import { PackageManager } from '@kubb/core'\nimport { File } from '@kubb/react'\n\nimport { getImportNames, reactQueryDepRegex } from '../utils.ts'\n\nimport type { ReactNode } from 'react'\n\ntype TemplateProps = {\n /**\n * Path to @tanstack-query\n */\n path: string\n /**\n * Override the path of 'useQuery'\n * @default 'path'\n */\n hookPath: string | undefined\n optionsType: string\n queryOptions: string | undefined\n resultType: string\n hookName: string\n isInfinite: boolean\n}\n\nfunction Template({ path, hookPath = path, isInfinite, hookName, queryOptions, optionsType, resultType }: TemplateProps): ReactNode {\n return (\n <>\n <File.Import name={[optionsType, resultType]} path={path} isTypeOnly />\n <File.Import name={[hookName]} path={hookPath} />\n\n {queryOptions && <File.Import name={[queryOptions].filter(Boolean)} path={path} />}\n <File.Import name={['QueryKey', 'WithRequired', isInfinite ? 'InfiniteData' : undefined].filter(Boolean)} path={path} isTypeOnly />\n </>\n )\n}\n\ntype FrameworkProps = Partial<TemplateProps> & {\n context: {\n isInfinite: boolean\n isSuspense: boolean\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite, isSuspense } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isSuspense ? importNames.querySuspense.react : isInfinite ? importNames.queryInfinite.react : importNames.query.react)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get solid() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.solid : importNames.query.solid)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get svelte() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.svelte : importNames.query.svelte)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get vue() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n const path = '@tanstack/vue-query'\n\n return (\n <>\n {isV5 && (\n <>\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.vue : importNames.query.vue)}\n queryOptions={isInfinite ? 'infiniteQueryOptions' : 'queryOptions'}\n hookPath={hookPath}\n {...rest}\n />\n <File.Import name={['QueryObserverOptions']} path={path} isTypeOnly />\n </>\n )}\n\n {!isV5 && isInfinite && (\n <>\n <File.Import name={[importNames.queryInfinite.vue.resultType]} path={path} isTypeOnly />\n <File.Import name={[importNames.queryInfinite.vue.optionsType]} path={'@tanstack/vue-query/build/lib/types'} isTypeOnly />\n <File.Import name={[importNames.queryInfinite.vue.hookName]} path={path} />\n </>\n )}\n\n {!isV5 && !isInfinite && (\n <>\n <File.Import name={[importNames.query.vue.resultType]} path={path} isTypeOnly />\n <File.Import name={[importNames.query.vue.optionsType]} path={'@tanstack/vue-query/build/lib/types'} isTypeOnly />\n <File.Import name={[importNames.query.vue.hookName]} path={path} />\n </>\n )}\n <File.Import name={['unref']} path={'vue'} />\n <File.Import name={['MaybeRef']} path={'vue'} isTypeOnly />\n <File.Import name={['QueryKey', 'WithRequired']} path={path} isTypeOnly />\n </>\n )\n }\n },\n} as const\n\ntype Props = {\n hookPath: string | undefined\n isInfinite: boolean\n /**\n * Only for React and v5\n */\n isSuspense: boolean\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n}\n\nexport function QueryImports({ hookPath, isInfinite, isSuspense, Template = defaultTemplates.react }: Props): ReactNode {\n return (\n <Template\n hookPath={hookPath}\n context={{\n isInfinite,\n isSuspense,\n }}\n />\n )\n}\n\nQueryImports.templates = defaultTemplates\n","import { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, Type, useApp } from '@kubb/react'\n\nimport { isRequired } from '@kubb/oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * TypeName of the function in PascalCase\n */\n typeName: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n keys?: string\n}\n\nfunction Template({ name, typeName, params, generics, returnType, JSDoc, keys }: TemplateProps): ReactNode {\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export generics={generics} params={params} returnType={returnType} singleLine JSDoc={JSDoc}>\n {`[${keys}] as const`}\n </Function.Arrow>\n </File.Source>\n\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ context, ...rest }: FrameworkProps): ReactNode {\n const { factory } = context\n\n const {\n plugin: {\n options: { pathParamsType, query },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const path = new URLPath(operation.path)\n const params = new FunctionParams()\n const withQueryParams = !!schemas.queryParams?.name\n const withRequest = !!schemas.request?.name\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n type: `MaybeRef<${item.type}>`,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n type: `MaybeRef<${item.type}>`,\n }),\n })),\n {\n name: 'params',\n type: `MaybeRef<${`${factory.name}[\"queryParams\"]`}>`,\n enabled: withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'request',\n type: `MaybeRef<${`${factory.name}[\"request\"]`}>`,\n enabled: withRequest,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n replacer: (pathParam) => `unref(${pathParam})`,\n }),\n withQueryParams ? '...(params ? [params] : [])' : undefined,\n withRequest ? '...(request ? [request] : [])' : undefined,\n ].filter(Boolean)\n\n return <Template {...rest} params={params.toString()} keys={keys.join(', ')} />\n }\n },\n} as const\n\ntype Props = {\n name: string\n typeName: string\n keysFn: (keys: unknown[]) => unknown[]\n factory: {\n name: string\n }\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n}\n\nexport function QueryKey({ name, typeName, factory, keysFn, Template = defaultTemplates.react }: Props): ReactNode {\n const {\n plugin: {\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const path = new URLPath(operation.path)\n const params = new FunctionParams()\n const withQueryParams = !!schemas.queryParams?.name\n const withRequest = !!schemas.request?.name\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}[\"queryParams\"]`,\n enabled: withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}[\"request\"]`,\n enabled: withRequest,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n withQueryParams ? '...(params ? [params] : [])' : undefined,\n withRequest ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return <Template typeName={typeName} name={name} params={params.toString()} keys={keysFn(keys).join(', ')} context={{ factory }} />\n}\n\nQueryKey.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams } from '@kubb/plugin-oas/utils'\nimport { Function, useApp, File } from '@kubb/react'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { Infinite, PluginReactQuery, Suspense } from '../types.ts'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { reactQueryDepRegex } from '../utils.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n queryKey: string\n children?: string\n }\n client: {\n generics: string\n method: HttpMethod\n path: URLPath\n withQueryParams: boolean\n withPathParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n infinite: Infinite | false\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n parser: string | undefined\n}\n\nfunction Template({ name, params, generics, returnType, JSDoc, hook, client, infinite, dataReturnType, parser }: TemplateProps): ReactNode {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n\n const clientOptions = [\n `method: \"${client.method}\"`,\n `url: ${client.path.template}`,\n client.withQueryParams && !infinite ? 'params' : undefined,\n client.withData && !isFormData ? 'data' : undefined,\n client.withData && isFormData ? 'data: formData' : undefined,\n headers.length ? `headers: { ${headers}, ...options.headers }` : undefined,\n '...options',\n client.withQueryParams && !!infinite\n ? `params: {\n ...params,\n ['${infinite.queryParam}']: pageParam,\n ...(options.params || {}),\n }`\n : undefined,\n ].filter(Boolean)\n\n const queryOptions = [\n isV5 && !!infinite ? `initialPageParam: ${infinite.initialPageParam}` : undefined,\n isV5 && !!infinite && !!infinite.cursorParam ? `getNextPageParam: (lastPage) => lastPage['${infinite.cursorParam}']` : undefined,\n isV5 && !!infinite && !!infinite.cursorParam ? `getPreviousPageParam: (firstPage) => firstPage['${infinite.cursorParam}']` : undefined,\n isV5 && !!infinite && !infinite.cursorParam && dataReturnType === 'full'\n ? 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n : undefined,\n isV5 && !!infinite && !infinite.cursorParam && dataReturnType === 'data'\n ? 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n : undefined,\n isV5 && !!infinite && !infinite.cursorParam\n ? 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n : undefined,\n ].filter(Boolean)\n\n const resolvedClientOptions = `${transformers.createIndent(4)}${clientOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n const resolvedQueryOptions = `${transformers.createIndent(4)}${queryOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n\n let returnRes = parser ? `return ${parser}(res.data)` : 'return res.data'\n\n if (dataReturnType === 'full') {\n returnRes = parser ? `return {...res, data: ${parser}(res.data)}` : 'return res'\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n if (infinite) {\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return infiniteQueryOptions({\n queryKey,\n queryFn: async ({ pageParam }) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n })\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return {\n queryKey,\n queryFn: async ({ pageParam }) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n }\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return queryOptions({\n queryKey,\n queryFn: async () => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n })\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return {\n queryKey,\n queryFn: async () => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n }\n\n `}\n </Function>\n </File.Source>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n queryKey: string\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ client, context, ...rest }: FrameworkProps): ReactNode {\n const { factory, queryKey } = context\n\n const {\n plugin: {\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const params = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n type: `MaybeRef<${item.type}>`,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n type: `MaybeRef<${item.type}>`,\n }),\n })),\n {\n name: 'refParams',\n type: `MaybeRef<${schemas.queryParams?.name}>`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n type: `MaybeRef<${schemas.headerParams?.name}>`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'refData',\n type: `MaybeRef<${schemas.request?.name}>`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `${factory.name}['client']['parameters']`,\n default: '{}',\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refData',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const unrefs = params.items\n .filter((item) => item.enabled)\n .map((item) => {\n return item.name ? `const ${transformers.camelCase(item.name.replace('ref', ''))} = unref(${item.name})` : undefined\n })\n .join('\\n')\n\n const hook = {\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n children: unrefs,\n }\n\n return <Template {...rest} params={params.toString()} hook={hook} client={client} />\n }\n },\n} as const\n\ntype Props = {\n infinite: Infinite | false\n suspense: Suspense | false\n factory: {\n name: string\n }\n resultType: string\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n}\n\nexport function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType, Template = defaultTemplates.react }: Props): ReactNode {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { parser, pathParamsType, queryOptions },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const zodSchemas = getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' })\n\n const queryKey = pluginManager.resolveName({\n name: [factory.name, infinite ? 'Infinite' : undefined, suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n pluginKey,\n })\n const queryOptionsName = pluginManager.resolveName({\n name: [factory.name, infinite ? 'Infinite' : undefined, suspense ? 'Suspense' : undefined, 'QueryOptions'].filter(Boolean).join(''),\n pluginKey,\n })\n\n const generics = new FunctionParams()\n const params = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n\n const clientGenerics = [`${factory.name}['data']`, `${factory.name}['error']`]\n // suspense is having 4 generics instead of 5, TQueryData is not needed because data will always be defined\n const resultGenerics = suspense\n ? [`${factory.name}['response']`, `${factory.name}[\"error\"]`, 'TData']\n : [`${factory.name}['response']`, `${factory.name}[\"error\"]`, 'TData', 'TQueryData']\n\n const client = {\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n generics: clientGenerics.toString(),\n contentType,\n }\n\n generics.add([\n { type: 'TData', default: `${factory.name}[\"response\"]` },\n suspense ? undefined : { type: 'TQueryData', default: `${factory.name}[\"response\"]` },\n ])\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factory.name}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}['request']`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `${factory.name}['client']['parameters']`,\n default: '{}',\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const hook = {\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }\n\n if (!queryOptions) {\n return null\n }\n\n return (\n <Template\n name={queryOptionsName}\n params={params.toString()}\n generics={generics.toString()}\n returnType={`WithRequired<${resultType}<${resultGenerics.join(', ')}>, 'queryKey'>`}\n client={client}\n hook={hook}\n infinite={infinite}\n dataReturnType={dataReturnType}\n parser={parser === 'zod' ? `${zodSchemas.response.name}.parse` : undefined}\n context={{\n factory,\n queryKey,\n }}\n />\n )\n}\n\nQueryOptions.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\n\nimport { getImportNames, reactQueryDepRegex } from '../utils.ts'\nimport { QueryImports } from './QueryImports.tsx'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\nimport { SchemaType } from './SchemaType.tsx'\n\nimport { isRequired } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { QueryOptions as QueryOptionsPluginOptions, Query as QueryPluginOptions } from '../types.ts'\nimport type { FileMeta, Infinite, PluginReactQuery, Suspense } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n name: string\n generics?: string\n queryKey: string\n queryOptions: string\n }\n infinite: Infinite | false\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, hook, infinite }: TemplateProps): ReactNode {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const resolvedReturnType = `${returnType} & { queryKey: TQueryKey }`\n\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={resolvedReturnType} params={params} JSDoc={JSDoc}>\n {`\n const { query: queryOptions, client: clientOptions = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${hook.queryKey}\n\n const query = ${hook.name}({\n ...${hook.queryOptions} as unknown as ${infinite ? 'InfiniteQueryObserverOptions' : 'QueryObserverOptions'},\n queryKey,\n ...queryOptions as unknown as ${infinite ? 'Omit<InfiniteQueryObserverOptions, \"queryKey\">' : 'Omit<QueryObserverOptions, \"queryKey\">'}\n }) as ${resolvedReturnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={resolvedReturnType} params={params} JSDoc={JSDoc}>\n {`\n const { query: queryOptions, client: clientOptions = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${hook.queryKey}\n\n const query = ${hook.name}<${hook.generics}>({\n ...${hook.queryOptions},\n queryKey,\n ...queryOptions\n }) as ${resolvedReturnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n\n `}\n </Function>\n </File.Source>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n queryKey: string\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ context, hook, ...rest }: FrameworkProps): ReactNode {\n const { factory, queryKey } = context\n\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n const operation = useOperation()\n const { getSchemas } = useOperationManager()\n\n const importNames = getImportNames()\n\n const queryOptions = pluginManager.resolveName({\n name: `${factory.name}QueryOptions`,\n pluginKey,\n })\n\n const hookName = rest.infinite ? importNames.queryInfinite.vue.hookName : importNames.query.vue.hookName\n const resultType = rest.infinite ? importNames.queryInfinite.vue.resultType : importNames.query.vue.resultType\n const optionsType = rest.infinite ? importNames.queryInfinite.vue.optionsType : importNames.query.vue.optionsType\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const params = new FunctionParams()\n const queryParams = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n const client = {\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n }\n\n const resultGenerics = ['TData', `${factory.name}['error']`]\n\n // only needed for the options to override the useQuery options/params\n const queryOptionsOverrideGenerics = [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryKey']\n const queryOptionsGenerics = ['TData', 'TQueryData']\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n type: `MaybeRef<${schemas.queryParams?.name}>`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n type: `MaybeRef<${schemas.headerParams?.name}>`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'refData',\n type: `MaybeRef<${schemas.request?.name}>`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `{\n query?: Partial<${optionsType}<${queryOptionsOverrideGenerics.join(', ')}>>,\n client?: ${factory.name}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n queryParams.add([\n ...getASTParams(schemas.pathParams, {\n typed: false,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'clientOptions',\n required: false,\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refData',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n return (\n <Template\n {...rest}\n params={params.toString()}\n returnType={`${resultType}<${resultGenerics.join(', ')}>`}\n hook={{\n ...hook,\n name: hookName,\n queryOptions: isV5\n ? `${queryOptions}(${queryParams.toString()})`\n : `${queryOptions}<${queryOptionsGenerics.join(', ')}>(${queryParams.toString()})`,\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }}\n />\n )\n }\n },\n} as const\n\ntype Props = {\n factory: {\n name: string\n }\n resultType: string\n hookName: string\n optionsType: string\n infinite: Infinite | false\n query: QueryPluginOptions | false\n queryOptions: QueryOptionsPluginOptions | false\n suspense: Suspense | false\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n /**\n * This will make it possible to override the default behaviour.\n */\n QueryKeyTemplate?: React.ComponentType<React.ComponentProps<typeof QueryKey.templates.react>>\n /**\n * This will make it possible to override the default behaviour.\n */\n QueryOptionsTemplate?: React.ComponentType<React.ComponentProps<typeof QueryOptions.templates.react>>\n}\n\nexport function Query({\n factory,\n optionsType,\n hookName,\n resultType,\n Template = defaultTemplates.react,\n QueryKeyTemplate = QueryKey.templates.react,\n QueryOptionsTemplate = QueryOptions.templates.react,\n ...props\n}: Props): ReactNode {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { dataReturnType, pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n\n const operation = useOperation()\n const { getSchemas, getName } = useOperationManager()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const name = getName(operation, { type: 'function' })\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n\n const queryKey = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n pluginKey,\n })\n const queryKeyType = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n type: 'type',\n pluginKey,\n })\n const queryOptions = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryOptions'].filter(Boolean).join(''),\n pluginKey,\n })\n\n const generics = new FunctionParams()\n const params = new FunctionParams()\n const queryParams = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n //TODO operationManager.getCleitn\n const client = {\n method: operation.method,\n path: new URLPath(operation.path),\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n }\n\n generics.add([\n {\n type: 'TData',\n default: props.infinite ? `InfiniteData<${factory.name}[\"response\"]>` : `${factory.name}[\"response\"]`,\n },\n props.suspense ? undefined : { type: 'TQueryData', default: `${factory.name}[\"response\"]` },\n { type: 'TQueryKey extends QueryKey', default: queryKeyType },\n ])\n\n const resultGenerics = ['TData', `${factory.name}['error']`]\n // only needed for the options to override the useQuery options/params\n // suspense is having 4 generics instead of 5, TQueryData is not needed because data will always be defined\n const queryOptionsOverrideGenerics = props.suspense\n ? [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryKey']\n : [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryData', 'TQueryKey']\n\n const queryOptionsGenerics = props.suspense ? ['TData'] : ['TData', 'TQueryData']\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factory.name}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}['request']`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `{\n query?: Partial<${optionsType}<${queryOptionsOverrideGenerics.join(', ')}>>,\n client?: ${factory.name}['client']['parameters']\n}`,\n default: '{}',\n },\n ])\n\n queryParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'clientOptions',\n required: false,\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const hook = {\n name: hookName,\n generics: [isV5 ? 'any' : `${factory.name}['data']`, `${factory.name}['error']`, 'TData', 'any'].join(', '),\n queryOptions: isV5 ? `${queryOptions}(${queryParams.toString()})` : `${queryOptions}<${queryOptionsGenerics.join(', ')}>(${queryParams.toString()})`,\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }\n\n return (\n <>\n <QueryKey\n keysFn={props.query ? props.query.queryKey : (keys: unknown[]) => keys}\n Template={QueryKeyTemplate}\n factory={factory}\n name={queryKey}\n typeName={queryKeyType}\n />\n\n {props.queryOptions && (\n <QueryOptions\n Template={QueryOptionsTemplate}\n factory={factory}\n resultType={optionsType}\n dataReturnType={dataReturnType}\n infinite={props.infinite}\n suspense={props.suspense}\n />\n )}\n\n {props.query && (\n <Template\n name={[name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined].filter(Boolean).join('')}\n generics={generics.toString()}\n JSDoc={{ comments: getComments(operation) }}\n params={params.toString()}\n returnType={`${resultType}<${resultGenerics.join(', ')}>`}\n hook={hook}\n infinite={props.infinite}\n context={{\n factory,\n queryKey,\n }}\n />\n )}\n </>\n )\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: {\n query: typeof defaultTemplates\n queryKey: typeof QueryKey.templates\n queryOptions: typeof QueryOptions.templates\n queryImports: typeof QueryImports.templates\n }\n}\n\nQuery.File = function ({ templates }: FileProps): ReactNode {\n const {\n plugin: {\n options: {\n client: { importPath },\n infinite,\n suspense,\n query,\n queryOptions,\n parser,\n },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas, getFile, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const zodSchemas = getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' })\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const fileZodSchemas = getFile(operation, {\n pluginKey: [pluginZodName],\n })\n\n const factoryName = getName(operation, { type: 'type' })\n\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const Template = templates?.query['react'] || defaultTemplates['react']\n const QueryOptionsTemplate = templates?.queryOptions['react'] || QueryOptions.templates['react']\n const QueryKeyTemplate = templates?.queryKey['react'] || QueryKey.templates['react']\n const Import = templates?.queryImports['react'] || QueryImports.templates['react']\n\n const factory = {\n name: factoryName,\n }\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {parser === 'zod' && <File.Import name={[zodSchemas.response?.name]} root={file.path} path={fileZodSchemas.path} />}\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[\n schemas.request?.name,\n schemas.response.name,\n schemas.pathParams?.name,\n schemas.queryParams?.name,\n schemas.headerParams?.name,\n ...(schemas.errors?.map((error) => error.name) || []),\n ].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={false} isSuspense={false} />\n {!!infinite && (\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={true} isSuspense={false} />\n )}\n {!!suspense && isV5 && (\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={false} isSuspense={true} />\n )}\n <SchemaType />\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={false}\n suspense={false}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.query['react'].hookName}\n resultType={importNames.query['react'].resultType}\n optionsType={importNames.query['react'].optionsType}\n />\n {!!infinite && (\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={infinite}\n suspense={false}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.queryInfinite['react'].hookName}\n resultType={importNames.queryInfinite['react'].resultType}\n optionsType={importNames.queryInfinite['react'].optionsType}\n />\n )}\n {!!suspense && isV5 && (\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={false}\n suspense={suspense}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.querySuspense['react'].hookName}\n resultType={importNames.querySuspense['react'].resultType}\n optionsType={importNames.querySuspense['react'].optionsType}\n />\n )}\n </File>\n )\n}\n\nQuery.templates = defaultTemplates\n"]}
|