@kubb/plugin-react-query 3.0.0-alpha.10 → 3.0.0-alpha.11

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.
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["../src/components/SchemaType.tsx","../src/components/Mutation.tsx","../src/utils.ts","../src/components/QueryImports.tsx","../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"names":["transformers","jsx","File","useApp","useOperationManager","useOperation","pluginTsName","jsxs","Template","Fragment","RootTemplate","defaultTemplates","PackageManager","Function","Type","URLPath","FunctionParams","getASTParams","isRequired","getComments","pluginZodName"],"mappings":"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","file":"chunk-ZYTZV43V.js","sourcesContent":["import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Type, useApp } from '@kubb/react'\n\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types.ts'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nexport function SchemaType(): ReactNode {\n const {\n plugin: {\n options: { dataReturnType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n const [TData, TError, TRequest, TPathParams, TQueryParams, THeaderParams, TResponse] = [\n schemas.response.name,\n schemas.errors?.map((item) => item.name).join(' | ') || 'never',\n schemas.request?.name || 'never',\n schemas.pathParams?.name || 'never',\n schemas.queryParams?.name || 'never',\n schemas.headerParams?.name || 'never',\n schemas.response.name,\n ]\n const factoryName = getName(operation, { type: 'type' })\n\n const clientType = `${factoryName}Client`\n const isFormData = operation.getContentType() === 'multipart/form-data'\n\n return (\n <>\n <File.Source name={clientType} isTypeOnly>\n <Type name={clientType}>{`typeof client<${TResponse}, ${TError}, ${isFormData ? 'FormData' : TRequest}>`}</Type>\n </File.Source>\n <File.Source name={factoryName} isTypeOnly>\n <Type name={factoryName}>\n {`\n {\n data: ${TData}\n error: ${TError}\n request: ${isFormData ? 'FormData' : TRequest}\n pathParams: ${TPathParams}\n queryParams: ${TQueryParams}\n headerParams: ${THeaderParams}\n response: ${dataReturnType === 'data' ? TData : `Awaited<ReturnType<${clientType}>>`}\n client: {\n parameters: Partial<Parameters<${clientType}>[0]>\n return: Awaited<ReturnType<${clientType}>>\n }\n }\n `}\n </Type>\n </File.Source>\n </>\n )\n}\n","import transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport { SchemaType } from './SchemaType.tsx'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ComponentProps, ComponentType, ReactNode } from 'react'\nimport type { FileMeta, PluginReactQuery } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n mutateParams: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n name: string\n generics?: string\n children?: string\n }\n client: {\n generics: string\n method: HttpMethod\n path: URLPath\n withQueryParams: boolean\n withPathParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n}\n\nfunction Template({ name, params, mutateParams, JSDoc, client, hook, dataReturnType }: TemplateProps): ReactNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n\n const clientOptions = [\n `method: \"${client.method}\"`,\n `url: ${client.path.template}`,\n client.withQueryParams ? 'params' : undefined,\n client.withData && !isFormData ? 'data' : undefined,\n client.withData && isFormData ? 'data: formData' : undefined,\n headers.length ? `headers: { ${headers}, ...clientOptions.headers }` : undefined,\n '...clientOptions',\n ].filter(Boolean)\n\n const resolvedClientOptions = `${transformers.createIndent(4)}${clientOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function export name={name} params={params} JSDoc={JSDoc}>\n {`\n const { mutation: mutationOptions, client: clientOptions = {} } = options ?? {}\n\n return ${hook.name}({\n mutationFn: async(${mutateParams}) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n return ${dataReturnType === 'data' ? 'res.data' : 'res'}\n },\n ...mutationOptions\n })`}\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n mutate,\n },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[\n schemas.request?.name,\n schemas.response.name,\n schemas.pathParams?.name,\n schemas.queryParams?.name,\n schemas.headerParams?.name,\n ...(schemas.errors?.map((error) => error.name) || []),\n ].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n <File.Import\n name={['UseMutationOptions', 'UseMutationResult']}\n path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'}\n isTypeOnly\n />\n <File.Import name={['useMutation']} path={typeof mutate !== 'boolean' && mutate.importPath ? mutate.importPath : '@tanstack/react-query'} />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype MutationProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Mutation({ Template = defaultTemplates.default }: MutationProps): ReactNode {\n // TODO do checks on pathParamsType\n\n const {\n plugin: {\n options: { dataReturnType, mutate },\n },\n } = useApp<PluginReactQuery>()\n\n const operation = useOperation()\n const { getSchemas, getName } = useOperationManager()\n\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const contentType = operation.getContentType()\n\n const params = new FunctionParams()\n const mutateParams = new FunctionParams()\n const factoryName = getName(operation, { type: 'type' })\n\n const requestType =\n mutate && mutate.variablesType === 'mutate'\n ? FunctionParams.toObject([\n ...getASTParams(schemas.pathParams, { typed: true }),\n {\n name: 'params',\n type: `${factoryName}['queryParams']`,\n enabled: !!schemas.queryParams?.name,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factoryName}['headerParams']`,\n enabled: !!schemas.headerParams?.name,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factoryName}['request']`,\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ])?.type\n : schemas.request?.name\n ? `${factoryName}['request']`\n : 'never'\n\n const client = {\n method: operation.method,\n path: new URLPath(operation.path),\n generics: [`${factoryName}[\"data\"]`, `${factoryName}[\"error\"]`, requestType ? `${factoryName}[\"request\"]` : 'void'].join(', '),\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n contentType,\n }\n const hook = {\n name: 'useMutation',\n generics: [`${factoryName}['response']`, `${factoryName}[\"error\"]`, requestType ? `${requestType}` : 'void'].join(', '),\n }\n\n const resultGenerics = [\n `${factoryName}[\"response\"]`,\n `${factoryName}[\"error\"]`,\n mutate && mutate?.variablesType === 'mutate' ? requestType : `${factoryName}[\"request\"]`,\n ]\n\n if (mutate && mutate?.variablesType === 'mutate') {\n params.add([\n {\n name: 'options',\n type: `{\n mutation?: UseMutationOptions<${resultGenerics.join(', ')}>,\n client?: ${factoryName}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n mutateParams.add([\n [\n ...getASTParams(schemas.pathParams, { typed: false }),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ],\n ])\n } else {\n params.add([\n ...getASTParams(schemas.pathParams, { typed: true }),\n {\n name: 'params',\n type: `${factoryName}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factoryName}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'options',\n type: `{\n mutation?: UseMutationOptions<${resultGenerics.join(', ')}>,\n client?: ${factoryName}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n mutateParams.add([\n {\n name: 'data',\n enabled: !!schemas.request?.name,\n required: isRequired(schemas.request?.schema),\n },\n ])\n }\n\n if (!mutate) {\n return null\n }\n\n return (\n <>\n <Template\n name={name}\n JSDoc={{ comments: getComments(operation) }}\n client={client}\n hook={hook}\n params={params.toString()}\n mutateParams={mutateParams.toString()}\n dataReturnType={dataReturnType}\n />\n </>\n )\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nMutation.File = function ({ ...props }: FileProps): ReactNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <SchemaType />\n <Mutation Template={Template} />\n </RootTemplate>\n )\n}\n\nMutation.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\n\nexport const reactQueryDepRegex = /@tanstack\\/(react|solid|vue|svelte)-query/\n\nexport function getImportNames() {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n\n return {\n mutation: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useMutation',\n optionsType: 'UseMutationOptions',\n resultType: 'UseMutationResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createMutation',\n optionsType: 'CreateMutationOptions',\n resultType: 'CreateMutationResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createMutation',\n optionsType: 'CreateMutationOptions',\n resultType: 'CreateMutationResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useMutation',\n optionsType: isV5 ? 'UseMutationOptions' : 'VueMutationObserverOptions',\n resultType: 'UseMutationReturnType',\n },\n },\n query: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useQuery',\n optionsType: isV5 ? 'QueryObserverOptions' : 'UseBaseQueryOptions',\n resultType: 'UseQueryResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createQuery',\n optionsType: 'CreateBaseQueryOptions',\n resultType: 'CreateQueryResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createQuery',\n optionsType: 'CreateBaseQueryOptions',\n resultType: 'CreateQueryResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useQuery',\n optionsType: isV5 ? 'QueryObserverOptions' : 'VueQueryObserverOptions',\n resultType: isV5 ? 'UseQueryReturnType' : 'UseQueryReturnType',\n },\n },\n queryInfinite: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useInfiniteQuery',\n optionsType: isV5 ? 'InfiniteQueryObserverOptions' : 'UseInfiniteQueryOptions',\n resultType: 'UseInfiniteQueryResult',\n },\n solid: {\n path: '@tanstack/solid-query',\n hookName: 'createInfiniteQuery',\n optionsType: 'CreateInfiniteQueryOptions',\n resultType: 'CreateInfiniteQueryResult',\n },\n svelte: {\n path: '@tanstack/svelte-query',\n hookName: 'createInfiniteQuery',\n optionsType: 'CreateInfiniteQueryOptions',\n resultType: 'CreateInfiniteQueryResult',\n },\n vue: {\n path: '@tanstack/vue-query',\n hookName: 'useInfiniteQuery',\n optionsType: isV5 ? 'UseInfiniteQueryOptions' : 'VueInfiniteQueryObserverOptions',\n resultType: isV5 ? 'UseInfiniteQueryReturnType' : 'VueInfiniteQueryObserverOptions',\n },\n },\n querySuspense: {\n react: {\n path: '@tanstack/react-query',\n hookName: 'useSuspenseQuery',\n optionsType: 'UseSuspenseQueryOptions',\n resultType: 'UseSuspenseQueryResult',\n },\n },\n } as const\n}\n","import { PackageManager } from '@kubb/core'\nimport { File } from '@kubb/react'\n\nimport { getImportNames, reactQueryDepRegex } from '../utils.ts'\n\nimport type { ReactNode } from 'react'\n\ntype TemplateProps = {\n /**\n * Path to @tanstack-query\n */\n path: string\n /**\n * Override the path of 'useQuery'\n * @default 'path'\n */\n hookPath: string | undefined\n optionsType: string\n queryOptions: string | undefined\n resultType: string\n hookName: string\n isInfinite: boolean\n}\n\nfunction Template({ path, hookPath = path, isInfinite, hookName, queryOptions, optionsType, resultType }: TemplateProps): ReactNode {\n return (\n <>\n <File.Import name={[optionsType, resultType]} path={path} isTypeOnly />\n <File.Import name={[hookName]} path={hookPath} />\n\n {queryOptions && <File.Import name={[queryOptions].filter(Boolean)} path={path} />}\n <File.Import name={['QueryKey', 'WithRequired', isInfinite ? 'InfiniteData' : undefined].filter(Boolean)} path={path} isTypeOnly />\n </>\n )\n}\n\ntype FrameworkProps = Partial<TemplateProps> & {\n context: {\n isInfinite: boolean\n isSuspense: boolean\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite, isSuspense } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isSuspense ? importNames.querySuspense.react : isInfinite ? importNames.queryInfinite.react : importNames.query.react)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get solid() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.solid : importNames.query.solid)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get svelte() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n\n return (\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.svelte : importNames.query.svelte)}\n queryOptions={isV5 ? (isInfinite ? 'infiniteQueryOptions' : 'queryOptions') : undefined}\n hookPath={hookPath}\n {...rest}\n />\n )\n }\n },\n get vue() {\n return function ({ context, hookPath, ...rest }: FrameworkProps): ReactNode {\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const { isInfinite } = context\n const path = '@tanstack/vue-query'\n\n return (\n <>\n {isV5 && (\n <>\n <Template\n isInfinite={isInfinite}\n {...(isInfinite ? importNames.queryInfinite.vue : importNames.query.vue)}\n queryOptions={isInfinite ? 'infiniteQueryOptions' : 'queryOptions'}\n hookPath={hookPath}\n {...rest}\n />\n <File.Import name={['QueryObserverOptions']} path={path} isTypeOnly />\n </>\n )}\n\n {!isV5 && isInfinite && (\n <>\n <File.Import name={[importNames.queryInfinite.vue.resultType]} path={path} isTypeOnly />\n <File.Import name={[importNames.queryInfinite.vue.optionsType]} path={'@tanstack/vue-query/build/lib/types'} isTypeOnly />\n <File.Import name={[importNames.queryInfinite.vue.hookName]} path={path} />\n </>\n )}\n\n {!isV5 && !isInfinite && (\n <>\n <File.Import name={[importNames.query.vue.resultType]} path={path} isTypeOnly />\n <File.Import name={[importNames.query.vue.optionsType]} path={'@tanstack/vue-query/build/lib/types'} isTypeOnly />\n <File.Import name={[importNames.query.vue.hookName]} path={path} />\n </>\n )}\n <File.Import name={['unref']} path={'vue'} />\n <File.Import name={['MaybeRef']} path={'vue'} isTypeOnly />\n <File.Import name={['QueryKey', 'WithRequired']} path={path} isTypeOnly />\n </>\n )\n }\n },\n} as const\n\ntype Props = {\n hookPath: string | undefined\n isInfinite: boolean\n /**\n * Only for React and v5\n */\n isSuspense: boolean\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n}\n\nexport function QueryImports({ hookPath, isInfinite, isSuspense, Template = defaultTemplates.react }: Props): ReactNode {\n return (\n <Template\n hookPath={hookPath}\n context={{\n isInfinite,\n isSuspense,\n }}\n />\n )\n}\n\nQueryImports.templates = defaultTemplates\n","import { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, Type, useApp } from '@kubb/react'\n\nimport { isRequired } from '@kubb/oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport type { ReactNode } from 'react'\nimport type { PluginReactQuery } from '../types'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * TypeName of the function in PascalCase\n */\n typeName: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n keys?: string\n}\n\nfunction Template({ name, typeName, params, generics, returnType, JSDoc, keys }: TemplateProps): ReactNode {\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export generics={generics} params={params} returnType={returnType} singleLine JSDoc={JSDoc}>\n {`[${keys}] as const`}\n </Function.Arrow>\n </File.Source>\n\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ context, ...rest }: FrameworkProps): ReactNode {\n const { factory } = context\n\n const {\n plugin: {\n options: { pathParamsType, query },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const path = new URLPath(operation.path)\n const params = new FunctionParams()\n const withQueryParams = !!schemas.queryParams?.name\n const withRequest = !!schemas.request?.name\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n type: `MaybeRef<${item.type}>`,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n type: `MaybeRef<${item.type}>`,\n }),\n })),\n {\n name: 'params',\n type: `MaybeRef<${`${factory.name}[\"queryParams\"]`}>`,\n enabled: withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'request',\n type: `MaybeRef<${`${factory.name}[\"request\"]`}>`,\n enabled: withRequest,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n replacer: (pathParam) => `unref(${pathParam})`,\n }),\n withQueryParams ? '...(params ? [params] : [])' : undefined,\n withRequest ? '...(request ? [request] : [])' : undefined,\n ].filter(Boolean)\n\n return <Template {...rest} params={params.toString()} keys={keys.join(', ')} />\n }\n },\n} as const\n\ntype Props = {\n name: string\n typeName: string\n keysFn: (keys: unknown[]) => unknown[]\n factory: {\n name: string\n }\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n}\n\nexport function QueryKey({ name, typeName, factory, keysFn, Template = defaultTemplates.react }: Props): ReactNode {\n const {\n plugin: {\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const path = new URLPath(operation.path)\n const params = new FunctionParams()\n const withQueryParams = !!schemas.queryParams?.name\n const withRequest = !!schemas.request?.name\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}[\"queryParams\"]`,\n enabled: withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}[\"request\"]`,\n enabled: withRequest,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n withQueryParams ? '...(params ? [params] : [])' : undefined,\n withRequest ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return <Template typeName={typeName} name={name} params={params.toString()} keys={keysFn(keys).join(', ')} context={{ factory }} />\n}\n\nQueryKey.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams } from '@kubb/plugin-oas/utils'\nimport { Function, useApp, File } from '@kubb/react'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport { isRequired } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { Infinite, PluginReactQuery, Suspense } from '../types.ts'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { reactQueryDepRegex } from '../utils.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n queryKey: string\n children?: string\n }\n client: {\n generics: string\n method: HttpMethod\n path: URLPath\n withQueryParams: boolean\n withPathParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n infinite: Infinite | false\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n parser: string | undefined\n}\n\nfunction Template({ name, params, generics, returnType, JSDoc, hook, client, infinite, dataReturnType, parser }: TemplateProps): ReactNode {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n\n const clientOptions = [\n `method: \"${client.method}\"`,\n `url: ${client.path.template}`,\n client.withQueryParams && !infinite ? 'params' : undefined,\n client.withData && !isFormData ? 'data' : undefined,\n client.withData && isFormData ? 'data: formData' : undefined,\n headers.length ? `headers: { ${headers}, ...options.headers }` : undefined,\n '...options',\n client.withQueryParams && !!infinite\n ? `params: {\n ...params,\n ['${infinite.queryParam}']: pageParam,\n ...(options.params || {}),\n }`\n : undefined,\n ].filter(Boolean)\n\n const queryOptions = [\n isV5 && !!infinite ? `initialPageParam: ${infinite.initialPageParam}` : undefined,\n isV5 && !!infinite && !!infinite.cursorParam ? `getNextPageParam: (lastPage) => lastPage['${infinite.cursorParam}']` : undefined,\n isV5 && !!infinite && !!infinite.cursorParam ? `getPreviousPageParam: (firstPage) => firstPage['${infinite.cursorParam}']` : undefined,\n isV5 && !!infinite && !infinite.cursorParam && dataReturnType === 'full'\n ? 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage.data) && lastPage.data.length === 0 ? undefined : lastPageParam + 1'\n : undefined,\n isV5 && !!infinite && !infinite.cursorParam && dataReturnType === 'data'\n ? 'getNextPageParam: (lastPage, _allPages, lastPageParam) => Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1'\n : undefined,\n isV5 && !!infinite && !infinite.cursorParam\n ? 'getPreviousPageParam: (_firstPage, _allPages, firstPageParam) => firstPageParam <= 1 ? undefined : firstPageParam - 1'\n : undefined,\n ].filter(Boolean)\n\n const resolvedClientOptions = `${transformers.createIndent(4)}${clientOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n const resolvedQueryOptions = `${transformers.createIndent(4)}${queryOptions.join(`,\\n${transformers.createIndent(4)}`)}`\n\n let returnRes = parser ? `return ${parser}(res.data)` : 'return res.data'\n\n if (dataReturnType === 'full') {\n returnRes = parser ? `return {...res, data: ${parser}(res.data)}` : 'return res'\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n if (infinite) {\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return infiniteQueryOptions({\n queryKey,\n queryFn: async ({ pageParam }) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n })\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return {\n queryKey,\n queryFn: async ({ pageParam }) => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n }\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return queryOptions({\n queryKey,\n queryFn: async () => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n })\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {`\n const queryKey = ${hook.queryKey}\n\n return {\n queryKey,\n queryFn: async () => {\n ${hook.children || ''}\n ${formData || ''}\n const res = await client<${client.generics}>({\n ${resolvedClientOptions}\n })\n\n ${returnRes}\n },\n ${resolvedQueryOptions}\n }\n\n `}\n </Function>\n </File.Source>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n queryKey: string\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ client, context, ...rest }: FrameworkProps): ReactNode {\n const { factory, queryKey } = context\n\n const {\n plugin: {\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const params = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n type: `MaybeRef<${item.type}>`,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n type: `MaybeRef<${item.type}>`,\n }),\n })),\n {\n name: 'refParams',\n type: `MaybeRef<${schemas.queryParams?.name}>`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n type: `MaybeRef<${schemas.headerParams?.name}>`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'refData',\n type: `MaybeRef<${schemas.request?.name}>`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `${factory.name}['client']['parameters']`,\n default: '{}',\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refData',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const unrefs = params.items\n .filter((item) => item.enabled)\n .map((item) => {\n return item.name ? `const ${transformers.camelCase(item.name.replace('ref', ''))} = unref(${item.name})` : undefined\n })\n .join('\\n')\n\n const hook = {\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n children: unrefs,\n }\n\n return <Template {...rest} params={params.toString()} hook={hook} client={client} />\n }\n },\n} as const\n\ntype Props = {\n infinite: Infinite | false\n suspense: Suspense | false\n factory: {\n name: string\n }\n resultType: string\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n dataReturnType: NonNullable<PluginReactQuery['options']['dataReturnType']>\n}\n\nexport function QueryOptions({ factory, infinite, suspense, resultType, dataReturnType, Template = defaultTemplates.react }: Props): ReactNode {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { parser, pathParamsType, queryOptions },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const zodSchemas = getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' })\n\n const queryKey = pluginManager.resolveName({\n name: [factory.name, infinite ? 'Infinite' : undefined, suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n pluginKey,\n })\n const queryOptionsName = pluginManager.resolveName({\n name: [factory.name, infinite ? 'Infinite' : undefined, suspense ? 'Suspense' : undefined, 'QueryOptions'].filter(Boolean).join(''),\n pluginKey,\n })\n\n const generics = new FunctionParams()\n const params = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n\n const clientGenerics = [`${factory.name}['data']`, `${factory.name}['error']`]\n // suspense is having 4 generics instead of 5, TQueryData is not needed because data will always be defined\n const resultGenerics = suspense\n ? [`${factory.name}['response']`, `${factory.name}[\"error\"]`, 'TData']\n : [`${factory.name}['response']`, `${factory.name}[\"error\"]`, 'TData', 'TQueryData']\n\n const client = {\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n generics: clientGenerics.toString(),\n contentType,\n }\n\n generics.add([\n { type: 'TData', default: `${factory.name}[\"response\"]` },\n suspense ? undefined : { type: 'TQueryData', default: `${factory.name}[\"response\"]` },\n ])\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factory.name}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}['request']`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `${factory.name}['client']['parameters']`,\n default: '{}',\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const hook = {\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }\n\n if (!queryOptions) {\n return null\n }\n\n return (\n <Template\n name={queryOptionsName}\n params={params.toString()}\n generics={generics.toString()}\n returnType={`WithRequired<${resultType}<${resultGenerics.join(', ')}>, 'queryKey'>`}\n client={client}\n hook={hook}\n infinite={infinite}\n dataReturnType={dataReturnType}\n parser={parser === 'zod' ? `${zodSchemas.response.name}.parse` : undefined}\n context={{\n factory,\n queryKey,\n }}\n />\n )\n}\n\nQueryOptions.templates = defaultTemplates\n","import { PackageManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { FunctionParams, URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getASTParams, getComments } from '@kubb/plugin-oas/utils'\n\nimport { getImportNames, reactQueryDepRegex } from '../utils.ts'\nimport { QueryImports } from './QueryImports.tsx'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\nimport { SchemaType } from './SchemaType.tsx'\n\nimport { isRequired } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { QueryOptions as QueryOptionsPluginOptions, Query as QueryPluginOptions } from '../types.ts'\nimport type { FileMeta, Infinite, PluginReactQuery, Suspense } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: string\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n hook: {\n name: string\n generics?: string\n queryKey: string\n queryOptions: string\n }\n infinite: Infinite | false\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, hook, infinite }: TemplateProps): ReactNode {\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const resolvedReturnType = `${returnType} & { queryKey: TQueryKey }`\n\n if (isV5) {\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={resolvedReturnType} params={params} JSDoc={JSDoc}>\n {`\n const { query: queryOptions, client: clientOptions = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${hook.queryKey}\n\n const query = ${hook.name}({\n ...${hook.queryOptions} as unknown as ${infinite ? 'InfiniteQueryObserverOptions' : 'QueryObserverOptions'},\n queryKey,\n ...queryOptions as unknown as ${infinite ? 'Omit<InfiniteQueryObserverOptions, \"queryKey\">' : 'Omit<QueryObserverOptions, \"queryKey\">'}\n }) as ${resolvedReturnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n\n `}\n </Function>\n </File.Source>\n )\n }\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export generics={generics} returnType={resolvedReturnType} params={params} JSDoc={JSDoc}>\n {`\n const { query: queryOptions, client: clientOptions = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${hook.queryKey}\n\n const query = ${hook.name}<${hook.generics}>({\n ...${hook.queryOptions},\n queryKey,\n ...queryOptions\n }) as ${resolvedReturnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n\n `}\n </Function>\n </File.Source>\n )\n}\n\ntype FrameworkProps = TemplateProps & {\n context: {\n factory: {\n name: string\n }\n queryKey: string\n }\n}\n\nconst defaultTemplates = {\n get react() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get solid() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get svelte() {\n return function (props: FrameworkProps): ReactNode {\n return <Template {...props} />\n }\n },\n get vue() {\n return function ({ context, hook, ...rest }: FrameworkProps): ReactNode {\n const { factory, queryKey } = context\n\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n const operation = useOperation()\n const { getSchemas } = useOperationManager()\n\n const importNames = getImportNames()\n\n const queryOptions = pluginManager.resolveName({\n name: `${factory.name}QueryOptions`,\n pluginKey,\n })\n\n const hookName = rest.infinite ? importNames.queryInfinite.vue.hookName : importNames.query.vue.hookName\n const resultType = rest.infinite ? importNames.queryInfinite.vue.resultType : importNames.query.vue.resultType\n const optionsType = rest.infinite ? importNames.queryInfinite.vue.optionsType : importNames.query.vue.optionsType\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const params = new FunctionParams()\n const queryParams = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n const client = {\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n }\n\n const resultGenerics = ['TData', `${factory.name}['error']`]\n\n // only needed for the options to override the useQuery options/params\n const queryOptionsOverrideGenerics = [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryKey']\n const queryOptionsGenerics = ['TData', 'TQueryData']\n\n params.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n typed: true,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n type: `MaybeRef<${schemas.queryParams?.name}>`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n type: `MaybeRef<${schemas.headerParams?.name}>`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'refData',\n type: `MaybeRef<${schemas.request?.name}>`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `{\n query?: Partial<${optionsType}<${queryOptionsOverrideGenerics.join(', ')}>>,\n client?: ${factory.name}['client']['parameters']\n }`,\n default: '{}',\n },\n ])\n\n queryParams.add([\n ...getASTParams(schemas.pathParams, {\n typed: false,\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refHeaders',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'clientOptions',\n required: false,\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object'\n ? [\n getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n }),\n ]\n : getASTParams(schemas.pathParams, {\n override: (item) => ({\n ...item,\n name: item.name ? `ref${transformers.pascalCase(item.name)}` : undefined,\n }),\n })),\n {\n name: 'refParams',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'refData',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n return (\n <Template\n {...rest}\n params={params.toString()}\n returnType={`${resultType}<${resultGenerics.join(', ')}>`}\n hook={{\n ...hook,\n name: hookName,\n queryOptions: isV5\n ? `${queryOptions}(${queryParams.toString()})`\n : `${queryOptions}<${queryOptionsGenerics.join(', ')}>(${queryParams.toString()})`,\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }}\n />\n )\n }\n },\n} as const\n\ntype Props = {\n factory: {\n name: string\n }\n resultType: string\n hookName: string\n optionsType: string\n infinite: Infinite | false\n query: QueryPluginOptions | false\n queryOptions: QueryOptionsPluginOptions | false\n suspense: Suspense | false\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<FrameworkProps>\n /**\n * This will make it possible to override the default behaviour.\n */\n QueryKeyTemplate?: React.ComponentType<React.ComponentProps<typeof QueryKey.templates.react>>\n /**\n * This will make it possible to override the default behaviour.\n */\n QueryOptionsTemplate?: React.ComponentType<React.ComponentProps<typeof QueryOptions.templates.react>>\n}\n\nexport function Query({\n factory,\n optionsType,\n hookName,\n resultType,\n Template = defaultTemplates.react,\n QueryKeyTemplate = QueryKey.templates.react,\n QueryOptionsTemplate = QueryOptions.templates.react,\n ...props\n}: Props): ReactNode {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { dataReturnType, pathParamsType },\n },\n } = useApp<PluginReactQuery>()\n\n const operation = useOperation()\n const { getSchemas, getName } = useOperationManager()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const name = getName(operation, { type: 'function' })\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n\n const queryKey = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n pluginKey,\n })\n const queryKeyType = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryKey'].filter(Boolean).join(''),\n type: 'type',\n pluginKey,\n })\n const queryOptions = pluginManager.resolveName({\n name: [factory.name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined, 'QueryOptions'].filter(Boolean).join(''),\n pluginKey,\n })\n\n const generics = new FunctionParams()\n const params = new FunctionParams()\n const queryParams = new FunctionParams()\n const queryKeyParams = new FunctionParams()\n //TODO operationManager.getCleitn\n const client = {\n method: operation.method,\n path: new URLPath(operation.path),\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withPathParams: !!schemas.pathParams?.name,\n withHeaders: !!schemas.headerParams?.name,\n }\n\n generics.add([\n {\n type: 'TData',\n default: props.infinite ? `InfiniteData<${factory.name}[\"response\"]>` : `${factory.name}[\"response\"]`,\n },\n props.suspense ? undefined : { type: 'TQueryData', default: `${factory.name}[\"response\"]` },\n { type: 'TQueryKey extends QueryKey', default: queryKeyType },\n ])\n\n const resultGenerics = ['TData', `${factory.name}['error']`]\n // only needed for the options to override the useQuery options/params\n // suspense is having 4 generics instead of 5, TQueryData is not needed because data will always be defined\n const queryOptionsOverrideGenerics = props.suspense\n ? [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryKey']\n : [`${factory.name}['response']`, `${factory.name}['error']`, 'TData', 'TQueryData', 'TQueryKey']\n\n const queryOptionsGenerics = props.suspense ? ['TData'] : ['TData', 'TQueryData']\n\n params.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams, { typed: true })] : getASTParams(schemas.pathParams, { typed: true })),\n {\n name: 'params',\n type: `${factory.name}['queryParams']`,\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n type: `${factory.name}['headerParams']`,\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n type: `${factory.name}['request']`,\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'options',\n type: `{\n query?: Partial<${optionsType}<${queryOptionsOverrideGenerics.join(', ')}>>,\n client?: ${factory.name}['client']['parameters']\n}`,\n default: '{}',\n },\n ])\n\n queryParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'headers',\n enabled: client.withHeaders,\n required: isRequired(schemas.headerParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n {\n name: 'clientOptions',\n required: false,\n },\n ])\n\n queryKeyParams.add([\n ...(pathParamsType === 'object' ? [getASTParams(schemas.pathParams)] : getASTParams(schemas.pathParams)),\n {\n name: 'params',\n enabled: client.withQueryParams,\n required: isRequired(schemas.queryParams?.schema),\n },\n {\n name: 'data',\n enabled: client.withData,\n required: isRequired(schemas.request?.schema),\n },\n ])\n\n const hook = {\n name: hookName,\n generics: [isV5 ? 'any' : `${factory.name}['data']`, `${factory.name}['error']`, 'TData', 'any'].join(', '),\n queryOptions: isV5 ? `${queryOptions}(${queryParams.toString()})` : `${queryOptions}<${queryOptionsGenerics.join(', ')}>(${queryParams.toString()})`,\n queryKey: `${queryKey}(${queryKeyParams.toString()})`,\n }\n\n return (\n <>\n <QueryKey\n keysFn={props.query ? props.query.queryKey : (keys: unknown[]) => keys}\n Template={QueryKeyTemplate}\n factory={factory}\n name={queryKey}\n typeName={queryKeyType}\n />\n\n {props.queryOptions && (\n <QueryOptions\n Template={QueryOptionsTemplate}\n factory={factory}\n resultType={optionsType}\n dataReturnType={dataReturnType}\n infinite={props.infinite}\n suspense={props.suspense}\n />\n )}\n\n {props.query && (\n <Template\n name={[name, props.infinite ? 'Infinite' : undefined, props.suspense ? 'Suspense' : undefined].filter(Boolean).join('')}\n generics={generics.toString()}\n JSDoc={{ comments: getComments(operation) }}\n params={params.toString()}\n returnType={`${resultType}<${resultGenerics.join(', ')}>`}\n hook={hook}\n infinite={props.infinite}\n context={{\n factory,\n queryKey,\n }}\n />\n )}\n </>\n )\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: {\n query: typeof defaultTemplates\n queryKey: typeof QueryKey.templates\n queryOptions: typeof QueryOptions.templates\n queryImports: typeof QueryImports.templates\n }\n}\n\nQuery.File = function ({ templates }: FileProps): ReactNode {\n const {\n plugin: {\n options: {\n client: { importPath },\n infinite,\n suspense,\n query,\n queryOptions,\n parser,\n },\n },\n } = useApp<PluginReactQuery>()\n\n const { getSchemas, getFile, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n const zodSchemas = getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' })\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const fileZodSchemas = getFile(operation, {\n pluginKey: [pluginZodName],\n })\n\n const factoryName = getName(operation, { type: 'type' })\n\n const importNames = getImportNames()\n const isV5 = new PackageManager().isValidSync(reactQueryDepRegex, '>=5')\n const Template = templates?.query['react'] || defaultTemplates['react']\n const QueryOptionsTemplate = templates?.queryOptions['react'] || QueryOptions.templates['react']\n const QueryKeyTemplate = templates?.queryKey['react'] || QueryKey.templates['react']\n const Import = templates?.queryImports['react'] || QueryImports.templates['react']\n\n const factory = {\n name: factoryName,\n }\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {parser === 'zod' && <File.Import name={[zodSchemas.response?.name]} root={file.path} path={fileZodSchemas.path} />}\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[\n schemas.request?.name,\n schemas.response.name,\n schemas.pathParams?.name,\n schemas.queryParams?.name,\n schemas.headerParams?.name,\n ...(schemas.errors?.map((error) => error.name) || []),\n ].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={false} isSuspense={false} />\n {!!infinite && (\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={true} isSuspense={false} />\n )}\n {!!suspense && isV5 && (\n <QueryImports hookPath={typeof query !== 'boolean' ? query.importPath : undefined} Template={Import} isInfinite={false} isSuspense={true} />\n )}\n <SchemaType />\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={false}\n suspense={false}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.query['react'].hookName}\n resultType={importNames.query['react'].resultType}\n optionsType={importNames.query['react'].optionsType}\n />\n {!!infinite && (\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={infinite}\n suspense={false}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.queryInfinite['react'].hookName}\n resultType={importNames.queryInfinite['react'].resultType}\n optionsType={importNames.queryInfinite['react'].optionsType}\n />\n )}\n {!!suspense && isV5 && (\n <Query\n factory={factory}\n Template={Template}\n QueryKeyTemplate={QueryKeyTemplate}\n QueryOptionsTemplate={QueryOptionsTemplate}\n infinite={false}\n suspense={suspense}\n query={query}\n queryOptions={queryOptions}\n hookName={importNames.querySuspense['react'].hookName}\n resultType={importNames.querySuspense['react'].resultType}\n optionsType={importNames.querySuspense['react'].optionsType}\n />\n )}\n </File>\n )\n}\n\nQuery.templates = defaultTemplates\n"]}
@@ -1,13 +1,24 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
- var _chunk7ZODZVKPcjs = require('./chunk-7ZODZVKP.cjs');
7
-
8
-
9
-
10
-
11
-
12
- exports.Mutation = _chunk7ZODZVKPcjs.Mutation; exports.Query = _chunk7ZODZVKPcjs.Query; exports.QueryKey = _chunk7ZODZVKPcjs.QueryKey; exports.QueryOptions = _chunk7ZODZVKPcjs.QueryOptions;
1
+ 'use strict';
2
+
3
+ var chunk7ZODZVKP_cjs = require('./chunk-7ZODZVKP.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Mutation", {
8
+ enumerable: true,
9
+ get: function () { return chunk7ZODZVKP_cjs.Mutation; }
10
+ });
11
+ Object.defineProperty(exports, "Query", {
12
+ enumerable: true,
13
+ get: function () { return chunk7ZODZVKP_cjs.Query; }
14
+ });
15
+ Object.defineProperty(exports, "QueryKey", {
16
+ enumerable: true,
17
+ get: function () { return chunk7ZODZVKP_cjs.QueryKey; }
18
+ });
19
+ Object.defineProperty(exports, "QueryOptions", {
20
+ enumerable: true,
21
+ get: function () { return chunk7ZODZVKP_cjs.QueryOptions; }
22
+ });
23
+ //# sourceMappingURL=components.cjs.map
13
24
  //# sourceMappingURL=components.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-react-query/dist/components.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,6LAAC","file":"/home/runner/work/kubb/kubb/packages/plugin-react-query/dist/components.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"components.cjs"}
@@ -1,13 +1,3 @@
1
- import {
2
- Mutation,
3
- Query,
4
- QueryKey,
5
- QueryOptions
6
- } from "./chunk-ZYTZV43V.js";
7
- export {
8
- Mutation,
9
- Query,
10
- QueryKey,
11
- QueryOptions
12
- };
1
+ export { Mutation, Query, QueryKey, QueryOptions } from './chunk-ZYTZV43V.js';
2
+ //# sourceMappingURL=components.js.map
13
3
  //# sourceMappingURL=components.js.map