@kubb/plugin-react-query 4.27.4 → 4.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components-BIXznDjl.cjs → components-Bud7cJEj.cjs} +16 -6
- package/dist/components-Bud7cJEj.cjs.map +1 -0
- package/dist/{components-CU3hgoxU.js → components-DcRvg3r2.js} +16 -6
- package/dist/components-DcRvg3r2.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/{generators-DC1P5_Jn.js → generators-D9wuuYX2.js} +2 -2
- package/dist/{generators-DC1P5_Jn.js.map → generators-D9wuuYX2.js.map} +1 -1
- package/dist/{generators-CrRdr0my.cjs → generators-FaoMN0Iz.cjs} +2 -2
- package/dist/{generators-CrRdr0my.cjs.map → generators-FaoMN0Iz.cjs.map} +1 -1
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.cts +1 -0
- package/dist/generators.d.ts +1 -0
- package/dist/generators.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/package.json +7 -7
- package/src/components/InfiniteQueryOptions.tsx +6 -2
- package/src/components/QueryOptions.tsx +3 -1
- package/src/components/SuspenseInfiniteQueryOptions.tsx +6 -2
- package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +3 -1
- package/src/generators/__snapshots__/clientGetImportPath.ts +3 -1
- package/src/generators/__snapshots__/createUsersWithListInputAsQuery.ts +3 -1
- package/src/generators/__snapshots__/findByStatusAllOptional.ts +3 -1
- package/src/generators/__snapshots__/findByStatusAllOptionalInline.ts +3 -1
- package/src/generators/__snapshots__/findByTags.ts +3 -1
- package/src/generators/__snapshots__/findByTagsObject.ts +3 -1
- package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +3 -1
- package/src/generators/__snapshots__/findByTagsTemplateString.ts +3 -1
- package/src/generators/__snapshots__/findByTagsWithCustomOptions.ts +3 -1
- package/src/generators/__snapshots__/findByTagsWithCustomQueryKey.ts +3 -1
- package/src/generators/__snapshots__/findByTagsWithZod.ts +3 -1
- package/src/generators/__snapshots__/findInfiniteByStatusAllOptional.ts +3 -1
- package/src/generators/__snapshots__/findInfiniteByTags.ts +3 -1
- package/src/generators/__snapshots__/findInfiniteByTagsCursor.ts +3 -1
- package/src/generators/__snapshots__/findInfiniteByTagsNextAndPreviousParam.ts +3 -1
- package/src/generators/__snapshots__/findInfiniteByTagsNextParam.ts +3 -1
- package/src/generators/__snapshots__/findInfiniteByTagsWithCustomOptions.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseByStatusAllOptional.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseByTags.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseByTagsWithCustomOptions.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseInfiniteByStatusAllOptional.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseInfiniteByTags.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseInfiniteByTagsCursor.ts +3 -1
- package/src/generators/__snapshots__/findSuspenseInfiniteByTagsWithCustomOptions.ts +3 -1
- package/src/generators/__snapshots__/getPetIdCamelCase.ts +3 -1
- package/src/generators/__snapshots__/postAsQuery.ts +3 -1
- package/src/generators/__snapshots__/requiredOneOfRequestBody.ts +94 -0
- package/src/generators/__snapshots__/requiredOneOfRequestBodyWithClientPlugin.ts +71 -0
- package/dist/components-BIXznDjl.cjs.map +0 -1
- package/dist/components-CU3hgoxU.js.map +0 -1
|
@@ -206,7 +206,9 @@ function QueryOptions({ name, clientName, dataReturnType, typeSchemas, paramsCas
|
|
|
206
206
|
${enabledText}
|
|
207
207
|
queryKey,
|
|
208
208
|
queryFn: async ({ signal }) => {
|
|
209
|
-
config.signal
|
|
209
|
+
if (!config.signal) {
|
|
210
|
+
config.signal = signal
|
|
211
|
+
}
|
|
210
212
|
return ${clientName}(${clientParams.toCall({})})
|
|
211
213
|
},
|
|
212
214
|
})
|
|
@@ -496,7 +498,9 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
|
|
|
496
498
|
${enabledText}
|
|
497
499
|
queryKey,
|
|
498
500
|
queryFn: async ({ signal, pageParam }) => {
|
|
499
|
-
config.signal
|
|
501
|
+
if (!config.signal) {
|
|
502
|
+
config.signal = signal
|
|
503
|
+
}
|
|
500
504
|
${infiniteOverrideParams}
|
|
501
505
|
return ${clientName}(${clientParams.toCall()})
|
|
502
506
|
},
|
|
@@ -519,7 +523,9 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
|
|
|
519
523
|
${enabledText}
|
|
520
524
|
queryKey,
|
|
521
525
|
queryFn: async ({ signal }) => {
|
|
522
|
-
config.signal
|
|
526
|
+
if (!config.signal) {
|
|
527
|
+
config.signal = signal
|
|
528
|
+
}
|
|
523
529
|
return ${clientName}(${clientParams.toCall()})
|
|
524
530
|
},
|
|
525
531
|
${queryOptions.join(",\n")}
|
|
@@ -1183,7 +1189,9 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
|
|
|
1183
1189
|
${enabledText}
|
|
1184
1190
|
queryKey,
|
|
1185
1191
|
queryFn: async ({ signal, pageParam }) => {
|
|
1186
|
-
config.signal
|
|
1192
|
+
if (!config.signal) {
|
|
1193
|
+
config.signal = signal
|
|
1194
|
+
}
|
|
1187
1195
|
${infiniteOverrideParams}
|
|
1188
1196
|
return ${clientName}(${clientParams.toCall()})
|
|
1189
1197
|
},
|
|
@@ -1206,7 +1214,9 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
|
|
|
1206
1214
|
${enabledText}
|
|
1207
1215
|
queryKey,
|
|
1208
1216
|
queryFn: async ({ signal }) => {
|
|
1209
|
-
config.signal
|
|
1217
|
+
if (!config.signal) {
|
|
1218
|
+
config.signal = signal
|
|
1219
|
+
}
|
|
1210
1220
|
return ${clientName}(${clientParams.toCall()})
|
|
1211
1221
|
},
|
|
1212
1222
|
${queryOptions.join(",\n")}
|
|
@@ -1441,4 +1451,4 @@ Object.defineProperty(exports, '__toESM', {
|
|
|
1441
1451
|
return __toESM;
|
|
1442
1452
|
}
|
|
1443
1453
|
});
|
|
1444
|
-
//# sourceMappingURL=components-
|
|
1454
|
+
//# sourceMappingURL=components-Bud7cJEj.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-Bud7cJEj.cjs","names":["getParams","FunctionParams","getTransformer","URLPath","File","Function","Type","getParams","FunctionParams","Client","File","Function","getParams","FunctionParams","File","Function","getParams","FunctionParams","Client","File","Function","getParams","FunctionParams","URLPath","File","Function","Type","getParams","FunctionParams","Client","File","Function","getParams","FunctionParams","File","Function","getParams","FunctionParams","File","Function","getParams","FunctionParams","File","Function","getParams","FunctionParams","Client","File","Function","FunctionParams","File","Function"],"sources":["../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/InfiniteQuery.tsx","../src/components/InfiniteQueryOptions.tsx","../src/components/MutationKey.tsx","../src/components/MutationOptions.tsx","../src/components/Mutation.tsx","../src/components/Query.tsx","../src/components/SuspenseInfiniteQuery.tsx","../src/components/SuspenseInfiniteQueryOptions.tsx","../src/components/SuspenseQuery.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, paramsCasing, typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n default: getDefaultValue(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n default: getDefaultValue(typeSchemas.queryParams?.schema),\n }\n : undefined,\n })\n}\n\nconst getTransformer: Transformer = ({ operation, schemas, casing }) => {\n const path = new URLPath(operation.path, { casing })\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n schemas.queryParams?.name ? '...(params ? [params] : [])' : undefined,\n schemas.request?.name ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return keys\n}\n\nexport function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n const params = getParams({ pathParamsType, typeSchemas, paramsCasing })\n const keys = transformer({\n operation,\n schemas: typeSchemas,\n casing: paramsCasing,\n })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\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\nQueryKey.getParams = getParams\nQueryKey.getTransformer = getTransformer\n","import { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function QueryOptions({\n name,\n clientName,\n dataReturnType,\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n queryKeyName,\n}: Props): FabricReactNode {\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'\n\n const clientParams = Client.getParams({\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n\n // Only add enabled check for required (non-optional) parameters\n // Optional parameters with defaults should not prevent query execution\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => {\n // Only include if the parameter exists and is NOT optional\n // This ensures we only check required parameters\n return item && !item.optional && !item.default ? key : undefined\n })\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return queryOptions<${TData}, ResponseErrorConfig<${TError}>, ${TData}, typeof queryKey>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n if (!config.signal) {\n config.signal = signal\n }\n return ${clientName}(${clientParams.toCall({})})\n },\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nQueryOptions.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n initialPageParam: Infinite['initialPageParam']\n queryParam?: Infinite['queryParam']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n pageParamGeneric: string\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, pageParamGeneric }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function InfiniteQuery({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n initialPageParam,\n queryParam,\n customOptions,\n}: Props): FabricReactNode {\n const responseType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n const returnType = 'UseInfiniteQueryResult<TData, TError> & { queryKey: TQueryKey }'\n const generics = [\n `TQueryFnData = ${responseType}`,\n `TError = ${errorType}`,\n 'TData = InfiniteData<TQueryFnData>',\n `TQueryKey extends QueryKey = ${queryKeyTypeName}`,\n `TPageParam = ${pageParamType}`,\n ]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n pageParamGeneric: 'TPageParam',\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useInfiniteQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nInfiniteQuery.getParams = getParams\n","import { getNestedAccessor } from '@kubb/core/utils'\nimport { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n initialPageParam: Infinite['initialPageParam']\n cursorParam: Infinite['cursorParam']\n nextParam: Infinite['nextParam']\n previousParam: Infinite['previousParam']\n queryParam: Infinite['queryParam']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function InfiniteQueryOptions({\n name,\n clientName,\n initialPageParam,\n cursorParam,\n nextParam,\n previousParam,\n typeSchemas,\n paramsCasing,\n paramsType,\n dataReturnType,\n pathParamsType,\n queryParam,\n queryKeyName,\n}: Props): FabricReactNode {\n const queryFnDataType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = Client.getParams({\n paramsCasing,\n typeSchemas,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n\n // Determine if we should use the new nextParam/previousParam or fall back to legacy cursorParam behavior\n const hasNewParams = nextParam !== undefined || previousParam !== undefined\n\n let getNextPageParamExpr: string | undefined\n let getPreviousPageParamExpr: string | undefined\n\n if (hasNewParams) {\n // Use the new nextParam and previousParam\n if (nextParam) {\n const accessor = getNestedAccessor(nextParam, 'lastPage')\n if (accessor) {\n getNextPageParamExpr = `getNextPageParam: (lastPage) => ${accessor}`\n }\n }\n if (previousParam) {\n const accessor = getNestedAccessor(previousParam, 'firstPage')\n if (accessor) {\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => ${accessor}`\n }\n }\n } else if (cursorParam) {\n // Legacy behavior: use cursorParam for both next and previous\n getNextPageParamExpr = `getNextPageParam: (lastPage) => lastPage['${cursorParam}']`\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => firstPage['${cursorParam}']`\n } else {\n // Fallback behavior: page-based pagination\n if (dataReturnType === 'full') {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n } else {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n }\n getPreviousPageParamExpr = 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n }\n\n const queryOptions = [\n `initialPageParam: ${typeof initialPageParam === 'string' ? JSON.stringify(initialPageParam) : initialPageParam}`,\n getNextPageParamExpr,\n getPreviousPageParamExpr,\n ].filter(Boolean)\n\n const infiniteOverrideParams =\n queryParam && typeSchemas.queryParams?.name\n ? `\n params = {\n ...(params ?? {}),\n ['${queryParam}']: pageParam as unknown as ${typeSchemas.queryParams?.name}['${queryParam}'],\n } as ${typeSchemas.queryParams?.name}`\n : ''\n\n // Only add enabled check for required (non-optional) parameters\n // Optional parameters with defaults should not prevent query execution\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => {\n // Only include if the parameter exists and is NOT optional\n // This ensures we only check required parameters\n return item && !item.optional && !item.default ? key : undefined\n })\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n if (infiniteOverrideParams) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal, pageParam }) => {\n if (!config.signal) {\n config.signal = signal\n }\n ${infiniteOverrideParams}\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\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.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n if (!config.signal) {\n config.signal = signal\n }\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\n')}\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nInfiniteQueryOptions.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({}: GetParamsProps) {\n return FunctionParams.factory({})\n}\n\nconst getTransformer: Transformer = ({ operation, casing }) => {\n const path = new URLPath(operation.path, { casing })\n\n return [`{ url: '${path.toURLPath()}' }`]\n}\n\nexport function MutationKey({ name, typeSchemas, pathParamsType, paramsCasing, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n const params = getParams({ pathParamsType, typeSchemas })\n const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\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\nMutationKey.getParams = getParams\nMutationKey.getTransformer = getTransformer\n","import { isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode, Params } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n mutationKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function MutationOptions({\n name,\n clientName,\n dataReturnType,\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n mutationKeyName,\n}: Props): FabricReactNode {\n const params = getParams({ typeSchemas })\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'\n\n const clientParams = Client.getParams({\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n\n const mutationKeyParams = MutationKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n\n const mutationParams = FunctionParams.factory({\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n\n const dataParams = FunctionParams.factory({\n data: {\n // No use of pathParams because useMutation can only take one argument in object form,\n // see https://tanstack.com/query/latest/docs/framework/react/reference/useMutation#usemutation\n mode: 'object',\n children: Object.entries(mutationParams.params).reduce((acc, [key, value]) => {\n if (value) {\n acc[key] = {\n ...value,\n type: undefined,\n }\n }\n\n return acc\n }, {} as Params),\n },\n })\n\n const TRequest = mutationParams.toConstructor()\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()} generics={['TContext = unknown']}>\n {`\n const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})\n return mutationOptions<${TData}, ResponseErrorConfig<${TError}>, ${TRequest ? `{${TRequest}}` : 'void'}, TContext>({\n mutationKey,\n mutationFn: async(${dataParams.toConstructor()}) => {\n return ${clientName}(${clientParams.toCall()})\n },\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nMutationOptions.getParams = getParams\n","import { isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\nimport { MutationOptions } from './MutationOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n typeName: string\n mutationOptionsName: string\n mutationKeyName: string\n typeSchemas: OperationSchemas\n operation: Operation\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsCasing, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const mutationParams = FunctionParams.factory({\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n const TRequest = mutationParams.toConstructor()\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n\n return FunctionParams.factory({\n options: {\n type: `\n{\n mutation?: UseMutationOptions<${generics}> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Mutation({\n name,\n mutationOptionsName,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n mutationKeyName,\n customOptions,\n}: Props): FabricReactNode {\n const mutationKeyParams = MutationKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n\n const params = getParams({\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const mutationParams = FunctionParams.factory({\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n\n const mutationOptionsParams = MutationOptions.getParams({ typeSchemas })\n\n const TRequest = mutationParams.toConstructor()\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n const returnType = `UseMutationResult<${generics}>`\n\n const mutationOptions = `${mutationOptionsName}(${mutationOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n generics={['TContext']}\n >\n {`\n const { mutation = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...mutationOptions } = mutation;\n const mutationKey = mutationOptions.mutationKey ?? ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n const baseOptions = ${mutationOptions} as UseMutationOptions<${generics}>\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' }) as UseMutationOptions<${generics}>` : ''}\n\n return useMutation<${generics}>({\n ...baseOptions,${customOptions ? '\\n...customOptions,' : ''}\n mutationKey,\n ...mutationOptions,\n }, queryClient) as ${returnType}\n `}\n </Function>\n </File.Source>\n )\n}\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<QueryObserverOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<QueryObserverOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Query({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n customOptions,\n}: Props): FabricReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const returnType = `UseQueryResult<${['TData', TError].join(', ')}> & { queryKey: TQueryKey }`\n const generics = [`TData = ${TData}`, `TQueryData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as QueryObserverOptions, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nQuery.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n initialPageParam: Infinite['initialPageParam']\n queryParam?: Infinite['queryParam']\n}\n\ntype GetParamsProps = {\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n pageParamGeneric: string\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, pageParamGeneric }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function SuspenseInfiniteQuery({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n customOptions,\n initialPageParam,\n queryParam,\n}: Props): FabricReactNode {\n const responseType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n const returnType = 'UseSuspenseInfiniteQueryResult<TData, TError> & { queryKey: TQueryKey }'\n const generics = [\n `TQueryFnData = ${responseType}`,\n `TError = ${errorType}`,\n 'TData = InfiniteData<TQueryFnData>',\n `TQueryKey extends QueryKey = ${queryKeyTypeName}`,\n `TPageParam = ${pageParamType}`,\n ]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n pageParamGeneric: 'TPageParam',\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useSuspenseInfiniteQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nSuspenseInfiniteQuery.getParams = getParams\n","import { getNestedAccessor } from '@kubb/core/utils'\nimport { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n initialPageParam: Infinite['initialPageParam']\n cursorParam: Infinite['cursorParam']\n nextParam: Infinite['nextParam']\n previousParam: Infinite['previousParam']\n queryParam: Infinite['queryParam']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function SuspenseInfiniteQueryOptions({\n name,\n clientName,\n initialPageParam,\n cursorParam,\n nextParam,\n previousParam,\n typeSchemas,\n paramsCasing,\n paramsType,\n dataReturnType,\n pathParamsType,\n queryParam,\n queryKeyName,\n}: Props): FabricReactNode {\n const queryFnDataType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = Client.getParams({\n paramsCasing,\n typeSchemas,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n\n // Determine if we should use the new nextParam/previousParam or fall back to legacy cursorParam behavior\n const hasNewParams = nextParam !== undefined || previousParam !== undefined\n\n let getNextPageParamExpr: string | undefined\n let getPreviousPageParamExpr: string | undefined\n\n if (hasNewParams) {\n // Use the new nextParam and previousParam\n if (nextParam) {\n const accessor = getNestedAccessor(nextParam, 'lastPage')\n if (accessor) {\n getNextPageParamExpr = `getNextPageParam: (lastPage) => ${accessor}`\n }\n }\n if (previousParam) {\n const accessor = getNestedAccessor(previousParam, 'firstPage')\n if (accessor) {\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => ${accessor}`\n }\n }\n } else if (cursorParam) {\n // Legacy behavior: use cursorParam for both next and previous\n getNextPageParamExpr = `getNextPageParam: (lastPage) => lastPage['${cursorParam}']`\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => firstPage['${cursorParam}']`\n } else {\n // Fallback behavior: page-based pagination\n if (dataReturnType === 'full') {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n } else {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n }\n getPreviousPageParamExpr = 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n }\n\n const queryOptions = [\n `initialPageParam: ${typeof initialPageParam === 'string' ? JSON.stringify(initialPageParam) : initialPageParam}`,\n getNextPageParamExpr,\n getPreviousPageParamExpr,\n ].filter(Boolean)\n\n const infiniteOverrideParams =\n queryParam && typeSchemas.queryParams?.name\n ? `\n params = {\n ...(params ?? {}),\n ['${queryParam}']: pageParam as unknown as ${typeSchemas.queryParams?.name}['${queryParam}'],\n } as ${typeSchemas.queryParams?.name}`\n : ''\n\n // Only add enabled check for required (non-optional) parameters\n // Optional parameters with defaults should not prevent query execution\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => {\n // Only include if the parameter exists and is NOT optional\n // This ensures we only check required parameters\n return item && !item.optional && !item.default ? key : undefined\n })\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n if (infiniteOverrideParams) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal, pageParam }) => {\n if (!config.signal) {\n config.signal = signal\n }\n ${infiniteOverrideParams}\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\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.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n if (!config.signal) {\n config.signal = signal\n }\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\n')}\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nSuspenseInfiniteQueryOptions.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<UseSuspenseQueryOptions<${[TData, TError, 'TData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<UseSuspenseQueryOptions<${[TData, TError, 'TData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\n/**\n * Generates a strongly-typed React Query Suspense hook function for an OpenAPI operation.\n *\n * The generated function wraps `useSuspenseQuery`, providing type-safe parameters and return types based on the supplied OpenAPI schemas and configuration.\n *\n * @returns A React component source node containing the generated query function.\n */\nexport function SuspenseQuery({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n customOptions,\n}: Props): FabricReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const returnType = `UseSuspenseQueryResult<${['TData', TError].join(', ')}> & { queryKey: TQueryKey }`\n const generics = [`TData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useSuspenseQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as UseSuspenseQueryOptions, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nSuspenseQuery.getParams = getParams\n"],"mappings":"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"}
|
|
@@ -176,7 +176,9 @@ function QueryOptions({ name, clientName, dataReturnType, typeSchemas, paramsCas
|
|
|
176
176
|
${enabledText}
|
|
177
177
|
queryKey,
|
|
178
178
|
queryFn: async ({ signal }) => {
|
|
179
|
-
config.signal
|
|
179
|
+
if (!config.signal) {
|
|
180
|
+
config.signal = signal
|
|
181
|
+
}
|
|
180
182
|
return ${clientName}(${clientParams.toCall({})})
|
|
181
183
|
},
|
|
182
184
|
})
|
|
@@ -466,7 +468,9 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
|
|
|
466
468
|
${enabledText}
|
|
467
469
|
queryKey,
|
|
468
470
|
queryFn: async ({ signal, pageParam }) => {
|
|
469
|
-
config.signal
|
|
471
|
+
if (!config.signal) {
|
|
472
|
+
config.signal = signal
|
|
473
|
+
}
|
|
470
474
|
${infiniteOverrideParams}
|
|
471
475
|
return ${clientName}(${clientParams.toCall()})
|
|
472
476
|
},
|
|
@@ -489,7 +493,9 @@ function InfiniteQueryOptions({ name, clientName, initialPageParam, cursorParam,
|
|
|
489
493
|
${enabledText}
|
|
490
494
|
queryKey,
|
|
491
495
|
queryFn: async ({ signal }) => {
|
|
492
|
-
config.signal
|
|
496
|
+
if (!config.signal) {
|
|
497
|
+
config.signal = signal
|
|
498
|
+
}
|
|
493
499
|
return ${clientName}(${clientParams.toCall()})
|
|
494
500
|
},
|
|
495
501
|
${queryOptions.join(",\n")}
|
|
@@ -1153,7 +1159,9 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
|
|
|
1153
1159
|
${enabledText}
|
|
1154
1160
|
queryKey,
|
|
1155
1161
|
queryFn: async ({ signal, pageParam }) => {
|
|
1156
|
-
config.signal
|
|
1162
|
+
if (!config.signal) {
|
|
1163
|
+
config.signal = signal
|
|
1164
|
+
}
|
|
1157
1165
|
${infiniteOverrideParams}
|
|
1158
1166
|
return ${clientName}(${clientParams.toCall()})
|
|
1159
1167
|
},
|
|
@@ -1176,7 +1184,9 @@ function SuspenseInfiniteQueryOptions({ name, clientName, initialPageParam, curs
|
|
|
1176
1184
|
${enabledText}
|
|
1177
1185
|
queryKey,
|
|
1178
1186
|
queryFn: async ({ signal }) => {
|
|
1179
|
-
config.signal
|
|
1187
|
+
if (!config.signal) {
|
|
1188
|
+
config.signal = signal
|
|
1189
|
+
}
|
|
1180
1190
|
return ${clientName}(${clientParams.toCall()})
|
|
1181
1191
|
},
|
|
1182
1192
|
${queryOptions.join(",\n")}
|
|
@@ -1334,4 +1344,4 @@ SuspenseQuery.getParams = getParams;
|
|
|
1334
1344
|
|
|
1335
1345
|
//#endregion
|
|
1336
1346
|
export { Mutation as a, InfiniteQueryOptions as c, QueryKey as d, Query as i, InfiniteQuery as l, SuspenseInfiniteQueryOptions as n, MutationOptions as o, SuspenseInfiniteQuery as r, MutationKey as s, SuspenseQuery as t, QueryOptions as u };
|
|
1337
|
-
//# sourceMappingURL=components-
|
|
1347
|
+
//# sourceMappingURL=components-DcRvg3r2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-DcRvg3r2.js","names":["getParams","getTransformer","getParams","getParams","getParams","getParams","getParams","getParams","getParams","getParams","getParams"],"sources":["../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/InfiniteQuery.tsx","../src/components/InfiniteQueryOptions.tsx","../src/components/MutationKey.tsx","../src/components/MutationOptions.tsx","../src/components/Mutation.tsx","../src/components/Query.tsx","../src/components/SuspenseInfiniteQuery.tsx","../src/components/SuspenseInfiniteQueryOptions.tsx","../src/components/SuspenseQuery.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, paramsCasing, typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n default: getDefaultValue(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n default: getDefaultValue(typeSchemas.queryParams?.schema),\n }\n : undefined,\n })\n}\n\nconst getTransformer: Transformer = ({ operation, schemas, casing }) => {\n const path = new URLPath(operation.path, { casing })\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n schemas.queryParams?.name ? '...(params ? [params] : [])' : undefined,\n schemas.request?.name ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return keys\n}\n\nexport function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n const params = getParams({ pathParamsType, typeSchemas, paramsCasing })\n const keys = transformer({\n operation,\n schemas: typeSchemas,\n casing: paramsCasing,\n })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\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\nQueryKey.getParams = getParams\nQueryKey.getTransformer = getTransformer\n","import { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function QueryOptions({\n name,\n clientName,\n dataReturnType,\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n queryKeyName,\n}: Props): FabricReactNode {\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'\n\n const clientParams = Client.getParams({\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n\n // Only add enabled check for required (non-optional) parameters\n // Optional parameters with defaults should not prevent query execution\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => {\n // Only include if the parameter exists and is NOT optional\n // This ensures we only check required parameters\n return item && !item.optional && !item.default ? key : undefined\n })\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return queryOptions<${TData}, ResponseErrorConfig<${TError}>, ${TData}, typeof queryKey>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n if (!config.signal) {\n config.signal = signal\n }\n return ${clientName}(${clientParams.toCall({})})\n },\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nQueryOptions.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n initialPageParam: Infinite['initialPageParam']\n queryParam?: Infinite['queryParam']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n pageParamGeneric: string\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, pageParamGeneric }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function InfiniteQuery({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n initialPageParam,\n queryParam,\n customOptions,\n}: Props): FabricReactNode {\n const responseType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n const returnType = 'UseInfiniteQueryResult<TData, TError> & { queryKey: TQueryKey }'\n const generics = [\n `TQueryFnData = ${responseType}`,\n `TError = ${errorType}`,\n 'TData = InfiniteData<TQueryFnData>',\n `TQueryKey extends QueryKey = ${queryKeyTypeName}`,\n `TPageParam = ${pageParamType}`,\n ]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n pageParamGeneric: 'TPageParam',\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useInfiniteQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nInfiniteQuery.getParams = getParams\n","import { getNestedAccessor } from '@kubb/core/utils'\nimport { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n initialPageParam: Infinite['initialPageParam']\n cursorParam: Infinite['cursorParam']\n nextParam: Infinite['nextParam']\n previousParam: Infinite['previousParam']\n queryParam: Infinite['queryParam']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function InfiniteQueryOptions({\n name,\n clientName,\n initialPageParam,\n cursorParam,\n nextParam,\n previousParam,\n typeSchemas,\n paramsCasing,\n paramsType,\n dataReturnType,\n pathParamsType,\n queryParam,\n queryKeyName,\n}: Props): FabricReactNode {\n const queryFnDataType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = Client.getParams({\n paramsCasing,\n typeSchemas,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n\n // Determine if we should use the new nextParam/previousParam or fall back to legacy cursorParam behavior\n const hasNewParams = nextParam !== undefined || previousParam !== undefined\n\n let getNextPageParamExpr: string | undefined\n let getPreviousPageParamExpr: string | undefined\n\n if (hasNewParams) {\n // Use the new nextParam and previousParam\n if (nextParam) {\n const accessor = getNestedAccessor(nextParam, 'lastPage')\n if (accessor) {\n getNextPageParamExpr = `getNextPageParam: (lastPage) => ${accessor}`\n }\n }\n if (previousParam) {\n const accessor = getNestedAccessor(previousParam, 'firstPage')\n if (accessor) {\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => ${accessor}`\n }\n }\n } else if (cursorParam) {\n // Legacy behavior: use cursorParam for both next and previous\n getNextPageParamExpr = `getNextPageParam: (lastPage) => lastPage['${cursorParam}']`\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => firstPage['${cursorParam}']`\n } else {\n // Fallback behavior: page-based pagination\n if (dataReturnType === 'full') {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n } else {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n }\n getPreviousPageParamExpr = 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n }\n\n const queryOptions = [\n `initialPageParam: ${typeof initialPageParam === 'string' ? JSON.stringify(initialPageParam) : initialPageParam}`,\n getNextPageParamExpr,\n getPreviousPageParamExpr,\n ].filter(Boolean)\n\n const infiniteOverrideParams =\n queryParam && typeSchemas.queryParams?.name\n ? `\n params = {\n ...(params ?? {}),\n ['${queryParam}']: pageParam as unknown as ${typeSchemas.queryParams?.name}['${queryParam}'],\n } as ${typeSchemas.queryParams?.name}`\n : ''\n\n // Only add enabled check for required (non-optional) parameters\n // Optional parameters with defaults should not prevent query execution\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => {\n // Only include if the parameter exists and is NOT optional\n // This ensures we only check required parameters\n return item && !item.optional && !item.default ? key : undefined\n })\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n if (infiniteOverrideParams) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal, pageParam }) => {\n if (!config.signal) {\n config.signal = signal\n }\n ${infiniteOverrideParams}\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\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.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n if (!config.signal) {\n config.signal = signal\n }\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\n')}\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nInfiniteQueryOptions.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({}: GetParamsProps) {\n return FunctionParams.factory({})\n}\n\nconst getTransformer: Transformer = ({ operation, casing }) => {\n const path = new URLPath(operation.path, { casing })\n\n return [`{ url: '${path.toURLPath()}' }`]\n}\n\nexport function MutationKey({ name, typeSchemas, pathParamsType, paramsCasing, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n const params = getParams({ pathParamsType, typeSchemas })\n const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\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\nMutationKey.getParams = getParams\nMutationKey.getTransformer = getTransformer\n","import { isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode, Params } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n mutationKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function MutationOptions({\n name,\n clientName,\n dataReturnType,\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n mutationKeyName,\n}: Props): FabricReactNode {\n const params = getParams({ typeSchemas })\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'\n\n const clientParams = Client.getParams({\n typeSchemas,\n paramsCasing,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n\n const mutationKeyParams = MutationKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n\n const mutationParams = FunctionParams.factory({\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n\n const dataParams = FunctionParams.factory({\n data: {\n // No use of pathParams because useMutation can only take one argument in object form,\n // see https://tanstack.com/query/latest/docs/framework/react/reference/useMutation#usemutation\n mode: 'object',\n children: Object.entries(mutationParams.params).reduce((acc, [key, value]) => {\n if (value) {\n acc[key] = {\n ...value,\n type: undefined,\n }\n }\n\n return acc\n }, {} as Params),\n },\n })\n\n const TRequest = mutationParams.toConstructor()\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()} generics={['TContext = unknown']}>\n {`\n const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})\n return mutationOptions<${TData}, ResponseErrorConfig<${TError}>, ${TRequest ? `{${TRequest}}` : 'void'}, TContext>({\n mutationKey,\n mutationFn: async(${dataParams.toConstructor()}) => {\n return ${clientName}(${clientParams.toCall()})\n },\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nMutationOptions.getParams = getParams\n","import { isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\nimport { MutationOptions } from './MutationOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n typeName: string\n mutationOptionsName: string\n mutationKeyName: string\n typeSchemas: OperationSchemas\n operation: Operation\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsCasing, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const mutationParams = FunctionParams.factory({\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n const TRequest = mutationParams.toConstructor()\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n\n return FunctionParams.factory({\n options: {\n type: `\n{\n mutation?: UseMutationOptions<${generics}> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Mutation({\n name,\n mutationOptionsName,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n mutationKeyName,\n customOptions,\n}: Props): FabricReactNode {\n const mutationKeyParams = MutationKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n\n const params = getParams({\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const mutationParams = FunctionParams.factory({\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n\n const mutationOptionsParams = MutationOptions.getParams({ typeSchemas })\n\n const TRequest = mutationParams.toConstructor()\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n const returnType = `UseMutationResult<${generics}>`\n\n const mutationOptions = `${mutationOptionsName}(${mutationOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n generics={['TContext']}\n >\n {`\n const { mutation = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...mutationOptions } = mutation;\n const mutationKey = mutationOptions.mutationKey ?? ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n const baseOptions = ${mutationOptions} as UseMutationOptions<${generics}>\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' }) as UseMutationOptions<${generics}>` : ''}\n\n return useMutation<${generics}>({\n ...baseOptions,${customOptions ? '\\n...customOptions,' : ''}\n mutationKey,\n ...mutationOptions,\n }, queryClient) as ${returnType}\n `}\n </Function>\n </File.Source>\n )\n}\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<QueryObserverOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<QueryObserverOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Query({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n customOptions,\n}: Props): FabricReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const returnType = `UseQueryResult<${['TData', TError].join(', ')}> & { queryKey: TQueryKey }`\n const generics = [`TData = ${TData}`, `TQueryData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as QueryObserverOptions, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nQuery.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n initialPageParam: Infinite['initialPageParam']\n queryParam?: Infinite['queryParam']\n}\n\ntype GetParamsProps = {\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n pageParamGeneric: string\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, pageParamGeneric }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, ${pageParamGeneric}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function SuspenseInfiniteQuery({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n customOptions,\n initialPageParam,\n queryParam,\n}: Props): FabricReactNode {\n const responseType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n const returnType = 'UseSuspenseInfiniteQueryResult<TData, TError> & { queryKey: TQueryKey }'\n const generics = [\n `TQueryFnData = ${responseType}`,\n `TError = ${errorType}`,\n 'TData = InfiniteData<TQueryFnData>',\n `TQueryKey extends QueryKey = ${queryKeyTypeName}`,\n `TPageParam = ${pageParamType}`,\n ]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n pageParamGeneric: 'TPageParam',\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useSuspenseInfiniteQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as UseSuspenseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nSuspenseInfiniteQuery.getParams = getParams\n","import { getNestedAccessor } from '@kubb/core/utils'\nimport { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { Infinite, PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n initialPageParam: Infinite['initialPageParam']\n cursorParam: Infinite['cursorParam']\n nextParam: Infinite['nextParam']\n previousParam: Infinite['previousParam']\n queryParam: Infinite['queryParam']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n },\n })\n}\n\nexport function SuspenseInfiniteQueryOptions({\n name,\n clientName,\n initialPageParam,\n cursorParam,\n nextParam,\n previousParam,\n typeSchemas,\n paramsCasing,\n paramsType,\n dataReturnType,\n pathParamsType,\n queryParam,\n queryKeyName,\n}: Props): FabricReactNode {\n const queryFnDataType = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const errorType = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const isInitialPageParamDefined = initialPageParam !== undefined && initialPageParam !== null\n const fallbackPageParamType =\n typeof initialPageParam === 'number'\n ? 'number'\n : typeof initialPageParam === 'string'\n ? initialPageParam.includes(' as ')\n ? (() => {\n const parts = initialPageParam.split(' as ')\n return parts[parts.length - 1] ?? 'unknown'\n })()\n : 'string'\n : typeof initialPageParam === 'boolean'\n ? 'boolean'\n : 'unknown'\n const queryParamType = queryParam && typeSchemas.queryParams?.name ? `${typeSchemas.queryParams?.name}['${queryParam}']` : undefined\n const pageParamType = queryParamType ? (isInitialPageParamDefined ? `NonNullable<${queryParamType}>` : queryParamType) : fallbackPageParamType\n\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = Client.getParams({\n paramsCasing,\n typeSchemas,\n paramsType,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n\n // Determine if we should use the new nextParam/previousParam or fall back to legacy cursorParam behavior\n const hasNewParams = nextParam !== undefined || previousParam !== undefined\n\n let getNextPageParamExpr: string | undefined\n let getPreviousPageParamExpr: string | undefined\n\n if (hasNewParams) {\n // Use the new nextParam and previousParam\n if (nextParam) {\n const accessor = getNestedAccessor(nextParam, 'lastPage')\n if (accessor) {\n getNextPageParamExpr = `getNextPageParam: (lastPage) => ${accessor}`\n }\n }\n if (previousParam) {\n const accessor = getNestedAccessor(previousParam, 'firstPage')\n if (accessor) {\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => ${accessor}`\n }\n }\n } else if (cursorParam) {\n // Legacy behavior: use cursorParam for both next and previous\n getNextPageParamExpr = `getNextPageParam: (lastPage) => lastPage['${cursorParam}']`\n getPreviousPageParamExpr = `getPreviousPageParam: (firstPage) => firstPage['${cursorParam}']`\n } else {\n // Fallback behavior: page-based pagination\n if (dataReturnType === 'full') {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n } else {\n getNextPageParamExpr =\n 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n }\n getPreviousPageParamExpr = 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n }\n\n const queryOptions = [\n `initialPageParam: ${typeof initialPageParam === 'string' ? JSON.stringify(initialPageParam) : initialPageParam}`,\n getNextPageParamExpr,\n getPreviousPageParamExpr,\n ].filter(Boolean)\n\n const infiniteOverrideParams =\n queryParam && typeSchemas.queryParams?.name\n ? `\n params = {\n ...(params ?? {}),\n ['${queryParam}']: pageParam as unknown as ${typeSchemas.queryParams?.name}['${queryParam}'],\n } as ${typeSchemas.queryParams?.name}`\n : ''\n\n // Only add enabled check for required (non-optional) parameters\n // Optional parameters with defaults should not prevent query execution\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => {\n // Only include if the parameter exists and is NOT optional\n // This ensures we only check required parameters\n return item && !item.optional && !item.default ? key : undefined\n })\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n if (infiniteOverrideParams) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal, pageParam }) => {\n if (!config.signal) {\n config.signal = signal\n }\n ${infiniteOverrideParams}\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\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.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return infiniteQueryOptions<${queryFnDataType}, ${errorType}, InfiniteData<${queryFnDataType}>, typeof queryKey, ${pageParamType}>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n if (!config.signal) {\n config.signal = signal\n }\n return ${clientName}(${clientParams.toCall()})\n },\n ${queryOptions.join(',\\n')}\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nSuspenseInfiniteQueryOptions.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginReactQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n customOptions: PluginReactQuery['resolvedOptions']['customOptions']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginReactQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginReactQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginReactQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginReactQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n options: {\n type: `\n{\n query?: Partial<UseSuspenseQueryOptions<${[TData, TError, 'TData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<UseSuspenseQueryOptions<${[TData, TError, 'TData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\n/**\n * Generates a strongly-typed React Query Suspense hook function for an OpenAPI operation.\n *\n * The generated function wraps `useSuspenseQuery`, providing type-safe parameters and return types based on the supplied OpenAPI schemas and configuration.\n *\n * @returns A React component source node containing the generated query function.\n */\nexport function SuspenseQuery({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n customOptions,\n}: Props): FabricReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const returnType = `UseSuspenseQueryResult<${['TData', TError].join(', ')}> & { queryKey: TQueryKey }`\n const generics = [`TData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n typeSchemas,\n paramsCasing,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n typeSchemas,\n })\n const params = getParams({\n paramsCasing,\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: queryConfig = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...queryOptions } = queryConfig\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n ${customOptions ? `const customOptions = ${customOptions.name}({ hookName: '${name}', operationId: '${operation.getOperationId()}' })` : ''}\n\n const query = useSuspenseQuery({\n ...${queryOptions},${customOptions ? '\\n...customOptions,' : ''}\n queryKey,\n ...queryOptions\n } as unknown as UseSuspenseQueryOptions, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nSuspenseQuery.getParams = getParams\n"],"mappings":"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"}
|
package/dist/components.cjs
CHANGED