@kubb/plugin-react-query 3.0.0-alpha.11 → 3.0.0-alpha.12
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/{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
|
@@ -4,8 +4,8 @@ var transformers2 = require('@kubb/core/transformers');
|
|
|
4
4
|
var utils = require('@kubb/core/utils');
|
|
5
5
|
var hooks = require('@kubb/plugin-oas/hooks');
|
|
6
6
|
var utils$1 = require('@kubb/plugin-oas/utils');
|
|
7
|
-
var react = require('@kubb/react');
|
|
8
7
|
var pluginTs = require('@kubb/plugin-ts');
|
|
8
|
+
var react = require('@kubb/react');
|
|
9
9
|
var jsxRuntime = require('@kubb/react/jsx-runtime');
|
|
10
10
|
var oas = require('@kubb/oas');
|
|
11
11
|
var core = require('@kubb/core');
|
|
@@ -22,8 +22,10 @@ function SchemaType() {
|
|
|
22
22
|
options: { dataReturnType }
|
|
23
23
|
}
|
|
24
24
|
} = react.useApp();
|
|
25
|
-
const { getSchemas, getName } = hooks.useOperationManager();
|
|
25
|
+
const { getSchemas, getName, getFile } = hooks.useOperationManager();
|
|
26
26
|
const operation = hooks.useOperation();
|
|
27
|
+
const file = getFile(operation);
|
|
28
|
+
const fileType = getFile(operation, { pluginKey: [pluginTs.pluginTsName] });
|
|
27
29
|
const schemas = getSchemas(operation, { pluginKey: [pluginTs.pluginTsName], type: "type" });
|
|
28
30
|
const [TData, TError, TRequest, TPathParams, TQueryParams, THeaderParams, TResponse] = [
|
|
29
31
|
schemas.response.name,
|
|
@@ -38,6 +40,22 @@ function SchemaType() {
|
|
|
38
40
|
const clientType = `${factoryName}Client`;
|
|
39
41
|
const isFormData = operation.getContentType() === "multipart/form-data";
|
|
40
42
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44
|
+
react.File.Import,
|
|
45
|
+
{
|
|
46
|
+
name: [
|
|
47
|
+
schemas.request?.name,
|
|
48
|
+
schemas.response.name,
|
|
49
|
+
schemas.pathParams?.name,
|
|
50
|
+
schemas.queryParams?.name,
|
|
51
|
+
schemas.headerParams?.name,
|
|
52
|
+
...schemas.errors?.map((error) => error.name) || []
|
|
53
|
+
].filter(Boolean),
|
|
54
|
+
root: file.path,
|
|
55
|
+
path: fileType.path,
|
|
56
|
+
isTypeOnly: true
|
|
57
|
+
}
|
|
58
|
+
),
|
|
41
59
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name: clientType, isTypeOnly: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Type, { name: clientType, children: `typeof client<${TResponse}, ${TError}, ${isFormData ? "FormData" : TRequest}>` }) }),
|
|
42
60
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name: factoryName, isTypeOnly: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Type, { name: factoryName, children: `
|
|
43
61
|
{
|
|
@@ -109,34 +127,15 @@ function RootTemplate({ children }) {
|
|
|
109
127
|
}
|
|
110
128
|
}
|
|
111
129
|
} = react.useApp();
|
|
112
|
-
const {
|
|
130
|
+
const { getFile } = hooks.useOperationManager();
|
|
113
131
|
const operation = hooks.useOperation();
|
|
114
|
-
const schemas = getSchemas(operation, { pluginKey: [pluginTs.pluginTsName], type: "type" });
|
|
115
132
|
const file = getFile(operation);
|
|
116
|
-
const fileType = getFile(operation, { pluginKey: [pluginTs.pluginTsName] });
|
|
117
133
|
return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
118
134
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: importPath }),
|
|
119
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["ResponseConfig"], path: importPath, isTypeOnly: true }),
|
|
120
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
-
react.File.Import,
|
|
122
|
-
{
|
|
123
|
-
name: [
|
|
124
|
-
schemas.request?.name,
|
|
125
|
-
schemas.response.name,
|
|
126
|
-
schemas.pathParams?.name,
|
|
127
|
-
schemas.queryParams?.name,
|
|
128
|
-
schemas.headerParams?.name,
|
|
129
|
-
...schemas.errors?.map((error) => error.name) || []
|
|
130
|
-
].filter(Boolean),
|
|
131
|
-
root: file.path,
|
|
132
|
-
path: fileType.path,
|
|
133
|
-
isTypeOnly: true
|
|
134
|
-
}
|
|
135
|
-
),
|
|
136
135
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
137
136
|
react.File.Import,
|
|
138
137
|
{
|
|
139
|
-
name: ["UseMutationOptions"
|
|
138
|
+
name: ["UseMutationOptions"],
|
|
140
139
|
path: typeof mutate !== "boolean" && mutate.importPath ? mutate.importPath : "@tanstack/react-query",
|
|
141
140
|
isTypeOnly: true
|
|
142
141
|
}
|
|
@@ -386,7 +385,7 @@ function Template2({ path, hookPath = path, isInfinite, hookName, queryOptions,
|
|
|
386
385
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [optionsType, resultType], path, isTypeOnly: true }),
|
|
387
386
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [hookName], path: hookPath }),
|
|
388
387
|
queryOptions && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [queryOptions].filter(Boolean), path }),
|
|
389
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey",
|
|
388
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey", isInfinite ? "InfiniteData" : void 0].filter(Boolean), path, isTypeOnly: true })
|
|
390
389
|
] });
|
|
391
390
|
}
|
|
392
391
|
var defaultTemplates2 = {
|
|
@@ -473,7 +472,7 @@ var defaultTemplates2 = {
|
|
|
473
472
|
] }),
|
|
474
473
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["unref"], path: "vue" }),
|
|
475
474
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["MaybeRef"], path: "vue", isTypeOnly: true }),
|
|
476
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey"
|
|
475
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["QueryKey"], path, isTypeOnly: true })
|
|
477
476
|
] });
|
|
478
477
|
};
|
|
479
478
|
}
|
|
@@ -609,7 +608,7 @@ function QueryKey({ name, typeName, factory, keysFn, Template: Template6 = defau
|
|
|
609
608
|
return /* @__PURE__ */ jsxRuntime.jsx(Template6, { typeName, name, params: params.toString(), keys: keysFn(keys).join(", "), context: { factory } });
|
|
610
609
|
}
|
|
611
610
|
QueryKey.templates = defaultTemplates3;
|
|
612
|
-
function Template4({ name, params,
|
|
611
|
+
function Template4({ name, params, JSDoc, hook, client, infinite, dataReturnType, parser }) {
|
|
613
612
|
const isV5 = new core.PackageManager().isValidSync(reactQueryDepRegex, ">=5");
|
|
614
613
|
const isFormData = client.contentType === "multipart/form-data";
|
|
615
614
|
const headers = [
|
|
@@ -678,7 +677,7 @@ ${transformers2__default.default.createIndent(4)}`)}`;
|
|
|
678
677
|
|
|
679
678
|
` }) });
|
|
680
679
|
}
|
|
681
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { name, export: true,
|
|
680
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { name, export: true, params, JSDoc, children: `
|
|
682
681
|
const queryKey = ${hook.queryKey}
|
|
683
682
|
|
|
684
683
|
return {
|
|
@@ -717,7 +716,7 @@ ${transformers2__default.default.createIndent(4)}`)}`;
|
|
|
717
716
|
|
|
718
717
|
` }) });
|
|
719
718
|
}
|
|
720
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { name, export: true,
|
|
719
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { name, export: true, params, JSDoc, children: `
|
|
721
720
|
const queryKey = ${hook.queryKey}
|
|
722
721
|
|
|
723
722
|
return {
|
|
@@ -868,7 +867,7 @@ function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType,
|
|
|
868
867
|
const params = new utils.FunctionParams();
|
|
869
868
|
const queryKeyParams = new utils.FunctionParams();
|
|
870
869
|
const clientGenerics = [`${factory.name}['data']`, `${factory.name}['error']`];
|
|
871
|
-
|
|
870
|
+
suspense ? [`${factory.name}['response']`, `${factory.name}["error"]`, "TData"] : [`${factory.name}['response']`, `${factory.name}["error"]`, "TData", "TQueryData"];
|
|
872
871
|
const client = {
|
|
873
872
|
withQueryParams: !!schemas.queryParams?.name,
|
|
874
873
|
withData: !!schemas.request?.name,
|
|
@@ -933,8 +932,6 @@ function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType,
|
|
|
933
932
|
{
|
|
934
933
|
name: queryOptionsName,
|
|
935
934
|
params: params.toString(),
|
|
936
|
-
generics: generics.toString(),
|
|
937
|
-
returnType: `WithRequired<${resultType}<${resultGenerics.join(", ")}>, 'queryKey'>`,
|
|
938
935
|
client,
|
|
939
936
|
hook,
|
|
940
937
|
infinite,
|
|
@@ -1345,7 +1342,6 @@ Query.File = function({ templates }) {
|
|
|
1345
1342
|
return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
1346
1343
|
parser === "zod" && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [zodSchemas.response?.name], root: file.path, path: fileZodSchemas.path }),
|
|
1347
1344
|
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: "client", path: importPath }),
|
|
1348
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["ResponseConfig"], path: importPath, isTypeOnly: true }),
|
|
1349
1345
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1350
1346
|
react.File.Import,
|
|
1351
1347
|
{
|
|
@@ -1423,5 +1419,5 @@ exports.Query = Query;
|
|
|
1423
1419
|
exports.QueryImports = QueryImports;
|
|
1424
1420
|
exports.QueryKey = QueryKey;
|
|
1425
1421
|
exports.QueryOptions = QueryOptions;
|
|
1426
|
-
//# sourceMappingURL=chunk-
|
|
1427
|
-
//# sourceMappingURL=chunk-
|
|
1422
|
+
//# sourceMappingURL=chunk-AGLJPONA.cjs.map
|
|
1423
|
+
//# sourceMappingURL=chunk-AGLJPONA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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-AGLJPONA.cjs","sourcesContent":["import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Type, useApp } from '@kubb/react'\n\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types.ts'\n\nexport function SchemaType(): ReactNode {\n const {\n plugin: {\n options: { dataReturnType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas, getName, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\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.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.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 { pluginTsName } from '@kubb/plugin-ts'\nimport { File, Function, useApp } from '@kubb/react'\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 { getFile } = useOperationManager()\n const operation = useOperation()\n const file = getFile(operation)\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n\n <File.Import\n name={['UseMutationOptions']}\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', 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']} 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 { pluginZodName } from '@kubb/plugin-zod'\nimport { File, Function, useApp } from '@kubb/react'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport type { ReactNode } from 'react'\nimport type { Infinite, PluginReactQuery, Suspense } from '../types.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 * 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, 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 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 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 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 { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, Function, useApp } from '@kubb/react'\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\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"]}
|
|
@@ -2,8 +2,8 @@ import transformers2 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 { useApp, File, Type, Function } from '@kubb/react';
|
|
6
5
|
import { pluginTsName } from '@kubb/plugin-ts';
|
|
6
|
+
import { useApp, File, Type, Function } from '@kubb/react';
|
|
7
7
|
import { jsx, Fragment, jsxs } from '@kubb/react/jsx-runtime';
|
|
8
8
|
import { isRequired } from '@kubb/oas';
|
|
9
9
|
import { PackageManager } from '@kubb/core';
|
|
@@ -16,8 +16,10 @@ function SchemaType() {
|
|
|
16
16
|
options: { dataReturnType }
|
|
17
17
|
}
|
|
18
18
|
} = useApp();
|
|
19
|
-
const { getSchemas, getName } = useOperationManager();
|
|
19
|
+
const { getSchemas, getName, getFile } = useOperationManager();
|
|
20
20
|
const operation = useOperation();
|
|
21
|
+
const file = getFile(operation);
|
|
22
|
+
const fileType = getFile(operation, { pluginKey: [pluginTsName] });
|
|
21
23
|
const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: "type" });
|
|
22
24
|
const [TData, TError, TRequest, TPathParams, TQueryParams, THeaderParams, TResponse] = [
|
|
23
25
|
schemas.response.name,
|
|
@@ -32,6 +34,22 @@ function SchemaType() {
|
|
|
32
34
|
const clientType = `${factoryName}Client`;
|
|
33
35
|
const isFormData = operation.getContentType() === "multipart/form-data";
|
|
34
36
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37
|
+
/* @__PURE__ */ jsx(
|
|
38
|
+
File.Import,
|
|
39
|
+
{
|
|
40
|
+
name: [
|
|
41
|
+
schemas.request?.name,
|
|
42
|
+
schemas.response.name,
|
|
43
|
+
schemas.pathParams?.name,
|
|
44
|
+
schemas.queryParams?.name,
|
|
45
|
+
schemas.headerParams?.name,
|
|
46
|
+
...schemas.errors?.map((error) => error.name) || []
|
|
47
|
+
].filter(Boolean),
|
|
48
|
+
root: file.path,
|
|
49
|
+
path: fileType.path,
|
|
50
|
+
isTypeOnly: true
|
|
51
|
+
}
|
|
52
|
+
),
|
|
35
53
|
/* @__PURE__ */ jsx(File.Source, { name: clientType, isTypeOnly: true, children: /* @__PURE__ */ jsx(Type, { name: clientType, children: `typeof client<${TResponse}, ${TError}, ${isFormData ? "FormData" : TRequest}>` }) }),
|
|
36
54
|
/* @__PURE__ */ jsx(File.Source, { name: factoryName, isTypeOnly: true, children: /* @__PURE__ */ jsx(Type, { name: factoryName, children: `
|
|
37
55
|
{
|
|
@@ -103,34 +121,15 @@ function RootTemplate({ children }) {
|
|
|
103
121
|
}
|
|
104
122
|
}
|
|
105
123
|
} = useApp();
|
|
106
|
-
const {
|
|
124
|
+
const { getFile } = useOperationManager();
|
|
107
125
|
const operation = useOperation();
|
|
108
|
-
const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: "type" });
|
|
109
126
|
const file = getFile(operation);
|
|
110
|
-
const fileType = getFile(operation, { pluginKey: [pluginTsName] });
|
|
111
127
|
return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
112
128
|
/* @__PURE__ */ jsx(File.Import, { name: "client", path: importPath }),
|
|
113
|
-
/* @__PURE__ */ jsx(File.Import, { name: ["ResponseConfig"], path: importPath, isTypeOnly: true }),
|
|
114
|
-
/* @__PURE__ */ jsx(
|
|
115
|
-
File.Import,
|
|
116
|
-
{
|
|
117
|
-
name: [
|
|
118
|
-
schemas.request?.name,
|
|
119
|
-
schemas.response.name,
|
|
120
|
-
schemas.pathParams?.name,
|
|
121
|
-
schemas.queryParams?.name,
|
|
122
|
-
schemas.headerParams?.name,
|
|
123
|
-
...schemas.errors?.map((error) => error.name) || []
|
|
124
|
-
].filter(Boolean),
|
|
125
|
-
root: file.path,
|
|
126
|
-
path: fileType.path,
|
|
127
|
-
isTypeOnly: true
|
|
128
|
-
}
|
|
129
|
-
),
|
|
130
129
|
/* @__PURE__ */ jsx(
|
|
131
130
|
File.Import,
|
|
132
131
|
{
|
|
133
|
-
name: ["UseMutationOptions"
|
|
132
|
+
name: ["UseMutationOptions"],
|
|
134
133
|
path: typeof mutate !== "boolean" && mutate.importPath ? mutate.importPath : "@tanstack/react-query",
|
|
135
134
|
isTypeOnly: true
|
|
136
135
|
}
|
|
@@ -380,7 +379,7 @@ function Template2({ path, hookPath = path, isInfinite, hookName, queryOptions,
|
|
|
380
379
|
/* @__PURE__ */ jsx(File.Import, { name: [optionsType, resultType], path, isTypeOnly: true }),
|
|
381
380
|
/* @__PURE__ */ jsx(File.Import, { name: [hookName], path: hookPath }),
|
|
382
381
|
queryOptions && /* @__PURE__ */ jsx(File.Import, { name: [queryOptions].filter(Boolean), path }),
|
|
383
|
-
/* @__PURE__ */ jsx(File.Import, { name: ["QueryKey",
|
|
382
|
+
/* @__PURE__ */ jsx(File.Import, { name: ["QueryKey", isInfinite ? "InfiniteData" : void 0].filter(Boolean), path, isTypeOnly: true })
|
|
384
383
|
] });
|
|
385
384
|
}
|
|
386
385
|
var defaultTemplates2 = {
|
|
@@ -467,7 +466,7 @@ var defaultTemplates2 = {
|
|
|
467
466
|
] }),
|
|
468
467
|
/* @__PURE__ */ jsx(File.Import, { name: ["unref"], path: "vue" }),
|
|
469
468
|
/* @__PURE__ */ jsx(File.Import, { name: ["MaybeRef"], path: "vue", isTypeOnly: true }),
|
|
470
|
-
/* @__PURE__ */ jsx(File.Import, { name: ["QueryKey"
|
|
469
|
+
/* @__PURE__ */ jsx(File.Import, { name: ["QueryKey"], path, isTypeOnly: true })
|
|
471
470
|
] });
|
|
472
471
|
};
|
|
473
472
|
}
|
|
@@ -603,7 +602,7 @@ function QueryKey({ name, typeName, factory, keysFn, Template: Template6 = defau
|
|
|
603
602
|
return /* @__PURE__ */ jsx(Template6, { typeName, name, params: params.toString(), keys: keysFn(keys).join(", "), context: { factory } });
|
|
604
603
|
}
|
|
605
604
|
QueryKey.templates = defaultTemplates3;
|
|
606
|
-
function Template4({ name, params,
|
|
605
|
+
function Template4({ name, params, JSDoc, hook, client, infinite, dataReturnType, parser }) {
|
|
607
606
|
const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, ">=5");
|
|
608
607
|
const isFormData = client.contentType === "multipart/form-data";
|
|
609
608
|
const headers = [
|
|
@@ -672,7 +671,7 @@ ${transformers2.createIndent(4)}`)}`;
|
|
|
672
671
|
|
|
673
672
|
` }) });
|
|
674
673
|
}
|
|
675
|
-
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function, { name, export: true,
|
|
674
|
+
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function, { name, export: true, params, JSDoc, children: `
|
|
676
675
|
const queryKey = ${hook.queryKey}
|
|
677
676
|
|
|
678
677
|
return {
|
|
@@ -711,7 +710,7 @@ ${transformers2.createIndent(4)}`)}`;
|
|
|
711
710
|
|
|
712
711
|
` }) });
|
|
713
712
|
}
|
|
714
|
-
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function, { name, export: true,
|
|
713
|
+
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Function, { name, export: true, params, JSDoc, children: `
|
|
715
714
|
const queryKey = ${hook.queryKey}
|
|
716
715
|
|
|
717
716
|
return {
|
|
@@ -862,7 +861,7 @@ function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType,
|
|
|
862
861
|
const params = new FunctionParams();
|
|
863
862
|
const queryKeyParams = new FunctionParams();
|
|
864
863
|
const clientGenerics = [`${factory.name}['data']`, `${factory.name}['error']`];
|
|
865
|
-
|
|
864
|
+
suspense ? [`${factory.name}['response']`, `${factory.name}["error"]`, "TData"] : [`${factory.name}['response']`, `${factory.name}["error"]`, "TData", "TQueryData"];
|
|
866
865
|
const client = {
|
|
867
866
|
withQueryParams: !!schemas.queryParams?.name,
|
|
868
867
|
withData: !!schemas.request?.name,
|
|
@@ -927,8 +926,6 @@ function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType,
|
|
|
927
926
|
{
|
|
928
927
|
name: queryOptionsName,
|
|
929
928
|
params: params.toString(),
|
|
930
|
-
generics: generics.toString(),
|
|
931
|
-
returnType: `WithRequired<${resultType}<${resultGenerics.join(", ")}>, 'queryKey'>`,
|
|
932
929
|
client,
|
|
933
930
|
hook,
|
|
934
931
|
infinite,
|
|
@@ -1339,7 +1336,6 @@ Query.File = function({ templates }) {
|
|
|
1339
1336
|
return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
1340
1337
|
parser === "zod" && /* @__PURE__ */ jsx(File.Import, { name: [zodSchemas.response?.name], root: file.path, path: fileZodSchemas.path }),
|
|
1341
1338
|
/* @__PURE__ */ jsx(File.Import, { name: "client", path: importPath }),
|
|
1342
|
-
/* @__PURE__ */ jsx(File.Import, { name: ["ResponseConfig"], path: importPath, isTypeOnly: true }),
|
|
1343
1339
|
/* @__PURE__ */ jsx(
|
|
1344
1340
|
File.Import,
|
|
1345
1341
|
{
|
|
@@ -1413,5 +1409,5 @@ Query.File = function({ templates }) {
|
|
|
1413
1409
|
Query.templates = defaultTemplates5;
|
|
1414
1410
|
|
|
1415
1411
|
export { Mutation, Query, QueryImports, QueryKey, QueryOptions };
|
|
1416
|
-
//# sourceMappingURL=chunk-
|
|
1417
|
-
//# sourceMappingURL=chunk-
|
|
1412
|
+
//# sourceMappingURL=chunk-I7X4HNDR.js.map
|
|
1413
|
+
//# sourceMappingURL=chunk-I7X4HNDR.js.map
|