@kubb/plugin-react-query 3.0.0-alpha.9 → 3.0.0-beta.2

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.
Files changed (78) hide show
  1. package/README.md +14 -5
  2. package/dist/chunk-37VO6QXJ.cjs +669 -0
  3. package/dist/chunk-37VO6QXJ.cjs.map +1 -0
  4. package/dist/chunk-C2H3KPHM.cjs +658 -0
  5. package/dist/chunk-C2H3KPHM.cjs.map +1 -0
  6. package/dist/chunk-IRW2Y3EC.js +660 -0
  7. package/dist/chunk-IRW2Y3EC.js.map +1 -0
  8. package/dist/chunk-Y3DM2P6L.js +647 -0
  9. package/dist/chunk-Y3DM2P6L.js.map +1 -0
  10. package/dist/components.cjs +39 -12
  11. package/dist/components.cjs.map +1 -1
  12. package/dist/components.d.cts +161 -6
  13. package/dist/components.d.ts +161 -6
  14. package/dist/components.js +2 -12
  15. package/dist/components.js.map +1 -1
  16. package/dist/generators.cjs +25 -0
  17. package/dist/generators.cjs.map +1 -0
  18. package/dist/generators.d.cts +14 -0
  19. package/dist/generators.d.ts +14 -0
  20. package/dist/generators.js +4 -0
  21. package/dist/generators.js.map +1 -0
  22. package/dist/index.cjs +78 -130
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +1 -4
  25. package/dist/index.d.ts +1 -4
  26. package/dist/index.js +61 -120
  27. package/dist/index.js.map +1 -1
  28. package/dist/types-5pnOmDmM.d.cts +231 -0
  29. package/dist/types-5pnOmDmM.d.ts +231 -0
  30. package/package.json +22 -17
  31. package/src/components/InfiniteQuery.tsx +129 -0
  32. package/src/components/InfiniteQueryOptions.tsx +130 -0
  33. package/src/components/Mutation.tsx +137 -321
  34. package/src/components/MutationKey.tsx +48 -0
  35. package/src/components/Query.tsx +91 -594
  36. package/src/components/QueryKey.tsx +51 -182
  37. package/src/components/QueryOptions.tsx +71 -473
  38. package/src/components/SuspenseQuery.tsx +129 -0
  39. package/src/components/index.ts +4 -0
  40. package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +51 -0
  41. package/src/generators/__snapshots__/clientGetImportPath.ts +51 -0
  42. package/src/generators/__snapshots__/clientPostImportPath.ts +44 -0
  43. package/src/generators/__snapshots__/findByTags.ts +51 -0
  44. package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +51 -0
  45. package/src/generators/__snapshots__/findByTagsWithCustomQueryKey.ts +51 -0
  46. package/src/generators/__snapshots__/findByTagsWithZod.ts +51 -0
  47. package/src/generators/__snapshots__/findInfiniteByTags.ts +57 -0
  48. package/src/generators/__snapshots__/findInfiniteByTagsCursor.ts +57 -0
  49. package/src/generators/__snapshots__/getAsMutation.ts +31 -0
  50. package/src/generators/__snapshots__/postAsQuery.ts +50 -0
  51. package/src/generators/__snapshots__/updatePetById.ts +44 -0
  52. package/src/generators/__snapshots__/updatePetByIdPathParamsObject.ts +46 -0
  53. package/src/generators/index.ts +4 -0
  54. package/src/generators/infiniteQueryGenerator.tsx +124 -0
  55. package/src/generators/mutationGenerator.tsx +108 -0
  56. package/src/generators/queryGenerator.tsx +121 -0
  57. package/src/generators/suspenseQueryGenerator.tsx +120 -0
  58. package/src/plugin.ts +60 -76
  59. package/src/types.ts +42 -115
  60. package/dist/chunk-7ZODZVKP.cjs +0 -1470
  61. package/dist/chunk-7ZODZVKP.cjs.map +0 -1
  62. package/dist/chunk-ZYTZV43V.js +0 -1470
  63. package/dist/chunk-ZYTZV43V.js.map +0 -1
  64. package/dist/index-5kpkk-7M.d.cts +0 -545
  65. package/dist/index-5kpkk-7M.d.ts +0 -545
  66. package/src/OperationGenerator.tsx +0 -57
  67. package/src/__snapshots__/mutateAsQuery/updatePetWithForm.ts +0 -69
  68. package/src/__snapshots__/pathParamsTypeInline/getPetById.ts +0 -62
  69. package/src/__snapshots__/pathParamsTypeObject/getPetById.ts +0 -68
  70. package/src/__snapshots__/queryOptions/getPetById.ts +0 -41
  71. package/src/__snapshots__/queryWithoutQueryOptions/getPetById.ts +0 -51
  72. package/src/__snapshots__/variablesTypeMutate/deletePet.ts +0 -24
  73. package/src/components/QueryImports.tsx +0 -167
  74. package/src/components/SchemaType.tsx +0 -59
  75. package/src/components/__snapshots__/gen/showPetById.ts +0 -67
  76. package/src/components/__snapshots__/gen/useCreatePets.ts +0 -46
  77. package/src/components/__snapshots__/gen/useCreatePetsMutate.ts +0 -46
  78. package/src/utils.ts +0 -96
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Mutation.tsx","../src/components/SchemaType.tsx","../src/components/Query.tsx","../src/utils.ts","../src/components/QueryImports.tsx","../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport { SchemaType } from './SchemaType.tsx'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ComponentProps, ComponentType, ReactNode } from 'react'\nimport type { FileMeta, PluginReactQuery } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n mutateParams: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n name: string\n generics?: string\n children?: string\n }\n client: {\n generics: string\n method: HttpMethod\n path: URLPath\n withQueryParams: boolean\n withPathParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n}\n\nfunction Template({ name, params, mutateParams, JSDoc, client, hook, dataReturnType }: TemplateProps): ReactNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n\n const clientOptions = [\n `method: \"${client.method}\"`,\n `url: ${client.path.template}`,\n client.withQueryParams ? 'params' : undefined,\n client.withData && !isFormData ? 'data' : undefined,\n client.withData && isFormData ? 'data: formData' : undefined,\n headers.length ? `headers: { ${headers}, ...clientOptions.headers }` : undefined,\n '...clientOptions',\n ].filter(Boolean)\n\n const resolvedClientOptions = `${transformers.createIndent(4)}${clientOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function export name={name} params={params} JSDoc={JSDoc}>\n {`\n const { mutation: mutationOptions, client: clientOptions = {} } = options ?? {}\n\n return ${hook.name}({\n mutationFn: async(${mutateParams}) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n return ${dataReturnType === 'data' ? 'res.data' : 'res'}\n },\n ...mutationOptions\n })`}\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n mutate,\n },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[\n schemas.request?.name,\n schemas.response.name,\n schemas.pathParams?.name,\n schemas.queryParams?.name,\n schemas.headerParams?.name,\n ...(schemas.errors?.map((error) => error.name) || []),\n ].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n <File.Import\n name={['UseMutationOptions', 'UseMutationResult']}\n path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'}\n isTypeOnly\n />\n <File.Import name={['useMutation']} path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'} />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype MutationProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Mutation({ Template = defaultTemplates.default }: MutationProps): ReactNode {\n // TODO do checks on pathParamsType\n\n const {\n plugin: {\n options: { dataReturnType, mutate },\n },\n } = useApp<PluginReactQuery>()\n\n const operation = useOperation()\n const { getSchemas, getName } = useOperationManager()\n\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const contentType = operation.getContentType()\n\n const params = new FunctionParams()\n const mutateParams = new FunctionParams()\n const factoryName = getName(operation, { type: 'type' })\n\n const requestType =\n mutate && mutate.variablesType === 'mutate'\n ? FunctionParams.toObject([\n ...getASTParams(schemas.pathParams, { typed: true }),\n {\n name: 'params',\n type: `${factoryName}['queryParams']`,\n enabled: !!schemas.queryParams?.name,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factoryName}['headerParams']`,\n enabled: !!schemas.headerParams?.name,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factoryName}['request']`,\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ])?.type\n : schemas.request?.name\n ? `${factoryName}['request']`\n : 'never'\n\n const client = {\n method: operation.method,\n path: new URLPath(operation.path),\n generics: [`${factoryName}[\"data\"]`, `${factoryName}[\"error\"]`, requestType ? `${factoryName}[\"request\"]` : 'void'].join(', '),\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n contentType,\n }\n const hook = {\n name: 'useMutation',\n generics: [`${factoryName}['response']`, `${factoryName}[\"error\"]`, requestType ? `${requestType}` : 'void'].join(', '),\n }\n\n const resultGenerics = [\n `${factoryName}[\"response\"]`,\n `${factoryName}[\"error\"]`,\n mutate && mutate?.variablesType === 'mutate' ? requestType : `${factoryName}[\"request\"]`,\n ]\n\n if (mutate && mutate?.variablesType === 'mutate') {\n params.add([\n {\n name: 'options',\n type: `{\n mutation?: UseMutationOptions<${resultGenerics.join(', ')}>,\n client?: ${factoryName}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n mutateParams.add([\n [\n ...getASTParams(schemas.pathParams, { typed: false }),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ],\n ])\n } else {\n params.add([\n ...getASTParams(schemas.pathParams, { typed: true }),\n {\n name: 'params',\n type: `${factoryName}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factoryName}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'options',\n type: `{\n mutation?: UseMutationOptions<${resultGenerics.join(', ')}>,\n client?: ${factoryName}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n mutateParams.add([\n {\n name: 'data',\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ])\n }\n\n if (!mutate) {\n return null\n }\n\n return (\n <>\n <Template\n name={name}\n JSDoc={{ comments: getComments(operation) }}\n client={client}\n hook={hook}\n params={params.toString()}\n mutateParams={mutateParams.toString()}\n dataReturnType={dataReturnType}\n />\n </>\n )\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nMutation.File = function ({ ...props }: FileProps): ReactNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <SchemaType />\n <Mutation Template={Template} />\n </RootTemplate>\n )\n}\n\nMutation.templates = defaultTemplates\n","import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Type, useApp } from '@kubb/react'\n\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types.ts'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nexport function SchemaType(): ReactNode {\n const {\n plugin: {\n options: { dataReturnType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n const [TData, TError, TRequest, TPathParams, TQueryParams, THeaderParams, TResponse] = [\n schemas.response.name,\n schemas.errors?.map((item) => item.name).join(' | ') || 'never',\n schemas.request?.name || 'never',\n schemas.pathParams?.name || 'never',\n schemas.queryParams?.name || 'never',\n schemas.headerParams?.name || 'never',\n schemas.response.name,\n ]\n const factoryName = getName(operation, { type: 'type' })\n\n const clientType = `${factoryName}Client`\n const isFormData = operation.getContentType() === 'multipart/form-data'\n\n return (\n <>\n <File.Source name={clientType} isTypeOnly>\n <Type name={clientType}>{`typeof client<${TResponse}, ${TError}, ${isFormData ? 'FormData' : TRequest}>`}</Type>\n </File.Source>\n <File.Source name={factoryName} isTypeOnly>\n <Type name={factoryName}>\n {`\n {\n data: ${TData}\n error: ${TError}\n request: ${isFormData ? 'FormData' : TRequest}\n pathParams: ${TPathParams}\n queryParams: ${TQueryParams}\n headerParams: ${THeaderParams}\n response: ${dataReturnType === 'data' ? TData : `Awaited<ReturnType<${clientType}>>`}\n client: {\n parameters: Partial<Parameters<${clientType}>[0]>\n return: Awaited<ReturnType<${clientType}>>\n }\n }\n `}\n </Type>\n </File.Source>\n </>\n )\n}\n","import { PackageManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\n\nimport { getImportNames, reactQueryDepRegex } from '../utils.ts'\nimport { QueryImports } from './QueryImports.tsx'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\nimport { SchemaType } from './SchemaType.tsx'\n\nimport { isRequired } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { QueryOptions as QueryOptionsPluginOptions, Query as QueryPluginOptions } from '../types.ts'\nimport type { FileMeta, Infinite, PluginReactQuery, Suspense } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n name: string\n generics?: string\n queryKey: string\n queryOptions: string\n }\n infinite: Infinite | false\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, hook, infinite }: TemplateProps): ReactNode {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const resolvedReturnType = `${returnType} & { queryKey: TQueryKey }`\n\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={resolvedReturnType} params={params} JSDoc={JSDoc}>\n {`\n const { query: queryOptions, client: clientOptions = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${hook.queryKey}\n\n const query = ${hook.name}({\n ...${hook.queryOptions} as unknown as ${infinite ? 'InfiniteQueryObserverOptions' : 'QueryObserverOptions'},\n queryKey,\n ...queryOptions as unknown as ${infinite ? 'Omit<InfiniteQueryObserverOptions, \"queryKey\">' : 'Omit<QueryObserverOptions, \"queryKey\">'}\n }) as ${resolvedReturnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={resolvedReturnType} params={params} JSDoc={JSDoc}>\n {`\n const { query: queryOptions, client: clientOptions = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${hook.queryKey}\n\n const query = ${hook.name}<${hook.generics}>({\n ...${hook.queryOptions},\n queryKey,\n ...queryOptions\n }) as ${resolvedReturnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n\n `}\n </Function>\n </File.Source>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n queryKey: string\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ context, hook, ...rest }: FrameworkProps): ReactNode {\n const { factory, queryKey } = context\n\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n const operation = useOperation()\n const { getSchemas } = useOperationManager()\n\n const importNames = getImportNames()\n\n const queryOptions = pluginManager.resolveName({\n name: `${factory.name}QueryOptions`,\n pluginKey,\n })\n\n const hookName = rest.infinite ? importNames.queryInfinite.vue.hookName : importNames.query.vue.hookName\n const resultType = rest.infinite ? importNames.queryInfinite.vue.resultType : importNames.query.vue.resultType\n const optionsType = rest.infinite ? importNames.queryInfinite.vue.optionsType : importNames.query.vue.optionsType\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const params = new FunctionParams()\n const queryParams = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n const client = {\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n }\n\n const resultGenerics = ['TData', `${factory.name}['error']`]\n\n // only needed for the options to override the useQuery options/params\n const queryOptionsOverrideGenerics = [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryKey']\n const queryOptionsGenerics = ['TData', 'TQueryData']\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n type: `MaybeRef<${schemas.queryParams?.name}>`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n type: `MaybeRef<${schemas.headerParams?.name}>`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'refData',\n type: `MaybeRef<${schemas.request?.name}>`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `{\n query?: Partial<${optionsType}<${queryOptionsOverrideGenerics.join(', ')}>>,\n client?: ${factory.name}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n queryParams.add([\n ...getASTParams(schemas.pathParams, {\n typed: false,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'clientOptions',\n required: false,\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refData',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n return (\n <Template\n {...rest}\n params={params.toString()}\n returnType={`${resultType}<${resultGenerics.join(', ')}>`}\n hook={{\n ...hook,\n name: hookName,\n queryOptions: isV5\n ? `${queryOptions}(${queryParams.toString()})`\n : `${queryOptions}<${queryOptionsGenerics.join(', ')}>(${queryParams.toString()})`,\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }}\n />\n )\n }\n },\n} as const\n\ntype Props = {\n factory: {\n name: string\n }\n resultType: string\n hookName: string\n optionsType: string\n infinite: Infinite | false\n query: QueryPluginOptions | false\n queryOptions: QueryOptionsPluginOptions | false\n suspense: Suspense | false\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n /**\n * This will make it possible to override the default behaviour.\n */\n QueryKeyTemplate?: React.ComponentType<React.ComponentProps<typeof QueryKey.templates.react>>\n /**\n * This will make it possible to override the default behaviour.\n */\n QueryOptionsTemplate?: React.ComponentType<React.ComponentProps<typeof QueryOptions.templates.react>>\n}\n\nexport function Query({\n factory,\n optionsType,\n hookName,\n resultType,\n Template = defaultTemplates.react,\n QueryKeyTemplate = QueryKey.templates.react,\n QueryOptionsTemplate = QueryOptions.templates.react,\n ...props\n}: Props): ReactNode {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { dataReturnType, pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n\n const operation = useOperation()\n const { getSchemas, getName } = useOperationManager()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const name = getName(operation, { type: 'function' })\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n\n const queryKey = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n pluginKey,\n })\n const queryKeyType = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n type: 'type',\n pluginKey,\n })\n const queryOptions = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryOptions'].filter(Boolean).join(''),\n pluginKey,\n })\n\n const generics = new FunctionParams()\n const params = new FunctionParams()\n const queryParams = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n //TODO operationManager.getCleitn\n const client = {\n method: operation.method,\n path: new URLPath(operation.path),\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n }\n\n generics.add([\n {\n type: 'TData',\n default: props.infinite ? `InfiniteData<${factory.name}[\"response\"]>` : `${factory.name}[\"response\"]`,\n },\n props.suspense ? undefined : { type: 'TQueryData', default: `${factory.name}[\"response\"]` },\n { type: 'TQueryKey extends QueryKey', default: queryKeyType },\n ])\n\n const resultGenerics = ['TData', `${factory.name}['error']`]\n // only needed for the options to override the useQuery options/params\n // suspense is having 4 generics instead of 5, TQueryData is not needed because data will always be defined\n const queryOptionsOverrideGenerics = props.suspense\n ? [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryKey']\n : [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryData', 'TQueryKey']\n\n const queryOptionsGenerics = props.suspense ? ['TData'] : ['TData', 'TQueryData']\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factory.name}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}['request']`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `{\n query?: Partial<${optionsType}<${queryOptionsOverrideGenerics.join(', ')}>>,\n client?: ${factory.name}['client']['parameters']\n}`,\n default: '{}',\n },\n ])\n\n queryParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'clientOptions',\n required: false,\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const hook = {\n name: hookName,\n generics: [isV5 ? 'any' : `${factory.name}['data']`, `${factory.name}['error']`, 'TData', 'any'].join(', '),\n queryOptions: isV5 ? `${queryOptions}(${queryParams.toString()})` : `${queryOptions}<${queryOptionsGenerics.join(', ')}>(${queryParams.toString()})`,\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }\n\n return (\n <>\n <QueryKey\n keysFn={props.query ? props.query.queryKey : (keys: unknown[]) => keys}\n Template={QueryKeyTemplate}\n factory={factory}\n name={queryKey}\n typeName={queryKeyType}\n />\n\n {props.queryOptions && (\n <QueryOptions\n Template={QueryOptionsTemplate}\n factory={factory}\n resultType={optionsType}\n dataReturnType={dataReturnType}\n infinite={props.infinite}\n suspense={props.suspense}\n />\n )}\n\n {props.query && (\n <Template\n name={[name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined].filter(Boolean).join('')}\n generics={generics.toString()}\n JSDoc={{ comments: getComments(operation) }}\n params={params.toString()}\n returnType={`${resultType}<${resultGenerics.join(', ')}>`}\n hook={hook}\n infinite={props.infinite}\n context={{\n factory,\n queryKey,\n }}\n />\n )}\n </>\n )\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: {\n query: typeof defaultTemplates\n queryKey: typeof QueryKey.templates\n queryOptions: typeof QueryOptions.templates\n queryImports: typeof QueryImports.templates\n }\n}\n\nQuery.File = function ({ templates }: FileProps): ReactNode {\n const {\n plugin: {\n options: {\n client: { importPath },\n infinite,\n suspense,\n query,\n queryOptions,\n parser,\n },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas, getFile, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const zodSchemas = getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' })\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const fileZodSchemas = getFile(operation, {\n pluginKey: [pluginZodName],\n })\n\n const factoryName = getName(operation, { type: 'type' })\n\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const Template = templates?.query['react'] || defaultTemplates['react']\n const QueryOptionsTemplate = templates?.queryOptions['react'] || QueryOptions.templates['react']\n const QueryKeyTemplate = templates?.queryKey['react'] || QueryKey.templates['react']\n const Import = templates?.queryImports['react'] || QueryImports.templates['react']\n\n const factory = {\n name: factoryName,\n }\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {parser === 'zod' && <File.Import name={[zodSchemas.response?.name]} root={file.path} path={fileZodSchemas.path} />}\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[\n schemas.request?.name,\n schemas.response.name,\n schemas.pathParams?.name,\n schemas.queryParams?.name,\n schemas.headerParams?.name,\n ...(schemas.errors?.map((error) => error.name) || []),\n ].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={false} isSuspense={false} />\n {!!infinite && (\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={true} isSuspense={false} />\n )}\n {!!suspense && isV5 && (\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={false} isSuspense={true} />\n )}\n <SchemaType />\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={false}\n suspense={false}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.query['react'].hookName}\n resultType={importNames.query['react'].resultType}\n optionsType={importNames.query['react'].optionsType}\n />\n {!!infinite && (\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={infinite}\n suspense={false}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.queryInfinite['react'].hookName}\n resultType={importNames.queryInfinite['react'].resultType}\n optionsType={importNames.queryInfinite['react'].optionsType}\n />\n )}\n {!!suspense && isV5 && (\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={false}\n suspense={suspense}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.querySuspense['react'].hookName}\n resultType={importNames.querySuspense['react'].resultType}\n optionsType={importNames.querySuspense['react'].optionsType}\n />\n )}\n </File>\n )\n}\n\nQuery.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\n\nexport const reactQueryDepRegex = /@tanstack\\/(react|solid|vue|svelte)-query/\n\nexport function getImportNames() {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n\n return {\n mutation: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useMutation',\n optionsType: 'UseMutationOptions',\n resultType: 'UseMutationResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createMutation',\n optionsType: 'CreateMutationOptions',\n resultType: 'CreateMutationResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createMutation',\n optionsType: 'CreateMutationOptions',\n resultType: 'CreateMutationResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useMutation',\n optionsType: isV5 ? 'UseMutationOptions' : 'VueMutationObserverOptions',\n resultType: 'UseMutationReturnType',\n },\n },\n query: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useQuery',\n optionsType: isV5 ? 'QueryObserverOptions' : 'UseBaseQueryOptions',\n resultType: 'UseQueryResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createQuery',\n optionsType: 'CreateBaseQueryOptions',\n resultType: 'CreateQueryResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createQuery',\n optionsType: 'CreateBaseQueryOptions',\n resultType: 'CreateQueryResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useQuery',\n optionsType: isV5 ? 'QueryObserverOptions' : 'VueQueryObserverOptions',\n resultType: isV5 ? 'UseQueryReturnType' : 'UseQueryReturnType',\n },\n },\n queryInfinite: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useInfiniteQuery',\n optionsType: isV5 ? 'InfiniteQueryObserverOptions' : 'UseInfiniteQueryOptions',\n resultType: 'UseInfiniteQueryResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createInfiniteQuery',\n optionsType: 'CreateInfiniteQueryOptions',\n resultType: 'CreateInfiniteQueryResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createInfiniteQuery',\n optionsType: 'CreateInfiniteQueryOptions',\n resultType: 'CreateInfiniteQueryResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useInfiniteQuery',\n optionsType: isV5 ? 'UseInfiniteQueryOptions' : 'VueInfiniteQueryObserverOptions',\n resultType: isV5 ? 'UseInfiniteQueryReturnType' : 'VueInfiniteQueryObserverOptions',\n },\n },\n querySuspense: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useSuspenseQuery',\n optionsType: 'UseSuspenseQueryOptions',\n resultType: 'UseSuspenseQueryResult',\n },\n },\n } as const\n}\n","import { PackageManager } from '@kubb/core'\nimport { File } from '@kubb/react'\n\nimport { getImportNames, reactQueryDepRegex } from '../utils.ts'\n\nimport type { ReactNode } from 'react'\n\ntype TemplateProps = {\n /**\n * Path to @tanstack-query\n */\n path: string\n /**\n * Override the path of 'useQuery'\n * @default 'path'\n */\n hookPath: string | undefined\n optionsType: string\n queryOptions: string | undefined\n resultType: string\n hookName: string\n isInfinite: boolean\n}\n\nfunction Template({ path, hookPath = path, isInfinite, hookName, queryOptions, optionsType, resultType }: TemplateProps): ReactNode {\n return (\n <>\n <File.Import name={[optionsType, resultType]} path={path} isTypeOnly />\n <File.Import name={[hookName]} path={hookPath} />\n\n {queryOptions && <File.Import name={[queryOptions].filter(Boolean)} path={path} />}\n <File.Import name={['QueryKey', 'WithRequired', isInfinite ? 'InfiniteData' : undefined].filter(Boolean)} path={path} isTypeOnly />\n </>\n )\n}\n\ntype FrameworkProps = Partial<TemplateProps> & {\n context: {\n isInfinite: boolean\n isSuspense: boolean\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite, isSuspense } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isSuspense ? importNames.querySuspense.react : isInfinite ? importNames.queryInfinite.react : importNames.query.react)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get solid() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.solid : importNames.query.solid)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get svelte() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.svelte : importNames.query.svelte)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get vue() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n const path = '@tanstack/vue-query'\n\n return (\n <>\n {isV5 && (\n <>\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.vue : importNames.query.vue)}\n queryOptions={isInfinite ? 'infiniteQueryOptions' : 'queryOptions'}\n hookPath={hookPath}\n {...rest}\n />\n <File.Import name={['QueryObserverOptions']} path={path} isTypeOnly />\n </>\n )}\n\n {!isV5 && isInfinite && (\n <>\n <File.Import name={[importNames.queryInfinite.vue.resultType]} path={path} isTypeOnly />\n <File.Import name={[importNames.queryInfinite.vue.optionsType]} path={'@tanstack/vue-query/build/lib/types'} isTypeOnly />\n <File.Import name={[importNames.queryInfinite.vue.hookName]} path={path} />\n </>\n )}\n\n {!isV5 && !isInfinite && (\n <>\n <File.Import name={[importNames.query.vue.resultType]} path={path} isTypeOnly />\n <File.Import name={[importNames.query.vue.optionsType]} path={'@tanstack/vue-query/build/lib/types'} isTypeOnly />\n <File.Import name={[importNames.query.vue.hookName]} path={path} />\n </>\n )}\n <File.Import name={['unref']} path={'vue'} />\n <File.Import name={['MaybeRef']} path={'vue'} isTypeOnly />\n <File.Import name={['QueryKey', 'WithRequired']} path={path} isTypeOnly />\n </>\n )\n }\n },\n} as const\n\ntype Props = {\n hookPath: string | undefined\n isInfinite: boolean\n /**\n * Only for React and v5\n */\n isSuspense: boolean\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n}\n\nexport function QueryImports({ hookPath, isInfinite, isSuspense, Template = defaultTemplates.react }: Props): ReactNode {\n return (\n <Template\n hookPath={hookPath}\n context={{\n isInfinite,\n isSuspense,\n }}\n />\n )\n}\n\nQueryImports.templates = defaultTemplates\n","import { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, Type, useApp } from '@kubb/react'\n\nimport { isRequired } from '@kubb/oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * TypeName of the function in PascalCase\n */\n typeName: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n keys?: string\n}\n\nfunction Template({ name, typeName, params, generics, returnType, JSDoc, keys }: TemplateProps): ReactNode {\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export generics={generics} params={params} returnType={returnType} singleLine JSDoc={JSDoc}>\n {`[${keys}] as const`}\n </Function.Arrow>\n </File.Source>\n\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ context, ...rest }: FrameworkProps): ReactNode {\n const { factory } = context\n\n const {\n plugin: {\n options: { pathParamsType, query },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const path = new URLPath(operation.path)\n const params = new FunctionParams()\n const withQueryParams = !!schemas.queryParams?.name\n const withRequest = !!schemas.request?.name\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n type: `MaybeRef<${item.type}>`,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n type: `MaybeRef<${item.type}>`,\n }),\n })),\n {\n name: 'params',\n type: `MaybeRef<${`${factory.name}[\"queryParams\"]`}>`,\n enabled: withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'request',\n type: `MaybeRef<${`${factory.name}[\"request\"]`}>`,\n enabled: withRequest,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n replacer: (pathParam) => `unref(${pathParam})`,\n }),\n withQueryParams ? '...(params ? [params] : [])' : undefined,\n withRequest ? '...(request ? [request] : [])' : undefined,\n ].filter(Boolean)\n\n return <Template {...rest} params={params.toString()} keys={keys.join(', ')} />\n }\n },\n} as const\n\ntype Props = {\n name: string\n typeName: string\n keysFn: (keys: unknown[]) => unknown[]\n factory: {\n name: string\n }\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n}\n\nexport function QueryKey({ name, typeName, factory, keysFn, Template = defaultTemplates.react }: Props): ReactNode {\n const {\n plugin: {\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const path = new URLPath(operation.path)\n const params = new FunctionParams()\n const withQueryParams = !!schemas.queryParams?.name\n const withRequest = !!schemas.request?.name\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}[\"queryParams\"]`,\n enabled: withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}[\"request\"]`,\n enabled: withRequest,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n withQueryParams ? '...(params ? [params] : [])' : undefined,\n withRequest ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return <Template typeName={typeName} name={name} params={params.toString()} keys={keysFn(keys).join(', ')} context={{ factory }} />\n}\n\nQueryKey.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams } from '@kubb/plugin-oas/utils'\nimport { Function, useApp, File } from '@kubb/react'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { Infinite, PluginReactQuery, Suspense } from '../types.ts'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { reactQueryDepRegex } from '../utils.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n queryKey: string\n children?: string\n }\n client: {\n generics: string\n method: HttpMethod\n path: URLPath\n withQueryParams: boolean\n withPathParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n infinite: Infinite | false\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n parser: string | undefined\n}\n\nfunction Template({ name, params, generics, returnType, JSDoc, hook, client, infinite, dataReturnType, parser }: TemplateProps): ReactNode {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n\n const clientOptions = [\n `method: \"${client.method}\"`,\n `url: ${client.path.template}`,\n client.withQueryParams && !infinite ? 'params' : undefined,\n client.withData && !isFormData ? 'data' : undefined,\n client.withData && isFormData ? 'data: formData' : undefined,\n headers.length ? `headers: { ${headers}, ...options.headers }` : undefined,\n '...options',\n client.withQueryParams && !!infinite\n ? `params: {\n ...params,\n ['${infinite.queryParam}']: pageParam,\n ...(options.params || {}),\n }`\n : undefined,\n ].filter(Boolean)\n\n const queryOptions = [\n isV5 && !!infinite ? `initialPageParam: ${infinite.initialPageParam}` : undefined,\n isV5 && !!infinite && !!infinite.cursorParam ? `getNextPageParam: (lastPage) => lastPage['${infinite.cursorParam}']` : undefined,\n isV5 && !!infinite && !!infinite.cursorParam ? `getPreviousPageParam: (firstPage) => firstPage['${infinite.cursorParam}']` : undefined,\n isV5 && !!infinite && !infinite.cursorParam && dataReturnType === 'full'\n ? 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n : undefined,\n isV5 && !!infinite && !infinite.cursorParam && dataReturnType === 'data'\n ? 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n : undefined,\n isV5 && !!infinite && !infinite.cursorParam\n ? 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n : undefined,\n ].filter(Boolean)\n\n const resolvedClientOptions = `${transformers.createIndent(4)}${clientOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n const resolvedQueryOptions = `${transformers.createIndent(4)}${queryOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n\n let returnRes = parser ? `return ${parser}(res.data)` : 'return res.data'\n\n if (dataReturnType === 'full') {\n returnRes = parser ? `return {...res, data: ${parser}(res.data)}` : 'return res'\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n if (infinite) {\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return infiniteQueryOptions({\n queryKey,\n queryFn: async ({ pageParam }) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n })\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return {\n queryKey,\n queryFn: async ({ pageParam }) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n }\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return queryOptions({\n queryKey,\n queryFn: async () => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n })\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return {\n queryKey,\n queryFn: async () => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n }\n\n `}\n </Function>\n </File.Source>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n queryKey: string\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ client, context, ...rest }: FrameworkProps): ReactNode {\n const { factory, queryKey } = context\n\n const {\n plugin: {\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const params = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n type: `MaybeRef<${item.type}>`,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n type: `MaybeRef<${item.type}>`,\n }),\n })),\n {\n name: 'refParams',\n type: `MaybeRef<${schemas.queryParams?.name}>`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n type: `MaybeRef<${schemas.headerParams?.name}>`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'refData',\n type: `MaybeRef<${schemas.request?.name}>`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `${factory.name}['client']['parameters']`,\n default: '{}',\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refData',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const unrefs = params.items\n .filter((item) => item.enabled)\n .map((item) => {\n return item.name ? `const ${transformers.camelCase(item.name.replace('ref', ''))} = unref(${item.name})` : undefined\n })\n .join('\\n')\n\n const hook = {\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n children: unrefs,\n }\n\n return <Template {...rest} params={params.toString()} hook={hook} client={client} />\n }\n },\n} as const\n\ntype Props = {\n infinite: Infinite | false\n suspense: Suspense | false\n factory: {\n name: string\n }\n resultType: string\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n}\n\nexport function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType, Template = defaultTemplates.react }: Props): ReactNode {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { parser, pathParamsType, queryOptions },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const zodSchemas = getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' })\n\n const queryKey = pluginManager.resolveName({\n name: [factory.name, infinite ? 'Infinite' : undefined, suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n pluginKey,\n })\n const queryOptionsName = pluginManager.resolveName({\n name: [factory.name, infinite ? 'Infinite' : undefined, suspense ? 'Suspense' : undefined, 'QueryOptions'].filter(Boolean).join(''),\n pluginKey,\n })\n\n const generics = new FunctionParams()\n const params = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n\n const clientGenerics = [`${factory.name}['data']`, `${factory.name}['error']`]\n // suspense is having 4 generics instead of 5, TQueryData is not needed because data will always be defined\n const resultGenerics = suspense\n ? [`${factory.name}['response']`, `${factory.name}[\"error\"]`, 'TData']\n : [`${factory.name}['response']`, `${factory.name}[\"error\"]`, 'TData', 'TQueryData']\n\n const client = {\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n generics: clientGenerics.toString(),\n contentType,\n }\n\n generics.add([\n { type: 'TData', default: `${factory.name}[\"response\"]` },\n suspense ? undefined : { type: 'TQueryData', default: `${factory.name}[\"response\"]` },\n ])\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factory.name}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}['request']`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `${factory.name}['client']['parameters']`,\n default: '{}',\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const hook = {\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }\n\n if (!queryOptions) {\n return null\n }\n\n return (\n <Template\n name={queryOptionsName}\n params={params.toString()}\n generics={generics.toString()}\n returnType={`WithRequired<${resultType}<${resultGenerics.join(', ')}>, 'queryKey'>`}\n client={client}\n hook={hook}\n infinite={infinite}\n dataReturnType={dataReturnType}\n parser={parser === 'zod' ? `${zodSchemas.response.name}.parse` : undefined}\n context={{\n factory,\n queryKey,\n }}\n />\n )\n}\n\nQueryOptions.templates = defaultTemplates\n"],"mappings":"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","names":["useOperation","useOperationManager","File","useApp","pluginTsName","Fragment","jsx","jsxs","File","useApp","useOperationManager","useOperation","pluginTsName","Template","RootTemplate","PackageManager","transformers","FunctionParams","URLPath","File","Function","useApp","pluginTsName","pluginZodName","useOperation","useOperationManager","getASTParams","getComments","PackageManager","File","Fragment","jsx","jsxs","Template","File","defaultTemplates","PackageManager","FunctionParams","URLPath","useOperation","useOperationManager","getASTParams","File","Function","Type","useApp","isRequired","pluginTsName","Fragment","jsx","jsxs","Template","defaultTemplates","PackageManager","transformers","FunctionParams","URLPath","useOperation","useOperationManager","getASTParams","Function","useApp","File","isRequired","pluginTsName","jsx","Template","PackageManager","transformers","File","Function","defaultTemplates","useApp","useOperationManager","useOperation","pluginTsName","FunctionParams","getASTParams","isRequired","URLPath","isRequired","Fragment","jsx","jsxs","Template","PackageManager","File","Function","defaultTemplates","useApp","useOperation","useOperationManager","pluginTsName","FunctionParams","getASTParams","transformers","URLPath","getComments","pluginZodName"]}