@kubb/plugin-react-query 4.21.2 → 4.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/components.d.cts +3 -1
  2. package/dist/components.d.ts +3 -1
  3. package/dist/{generators-DLX0cp80.js → generators-DTkvanZK.js} +51 -11
  4. package/dist/generators-DTkvanZK.js.map +1 -0
  5. package/dist/{generators-BNYyHlZa.cjs → generators-DtDEbt56.cjs} +51 -11
  6. package/dist/generators-DtDEbt56.cjs.map +1 -0
  7. package/dist/generators.cjs +1 -1
  8. package/dist/generators.d.cts +457 -1
  9. package/dist/generators.d.ts +457 -1
  10. package/dist/generators.js +1 -1
  11. package/dist/index.cjs +1 -1
  12. package/dist/index.d.cts +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/types-CgOcKVIt.d.cts +204 -0
  16. package/dist/types-DoN-nl4J.d.ts +203 -0
  17. package/package.json +8 -8
  18. package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +2 -2
  19. package/src/generators/__snapshots__/clientGetImportPath.ts +2 -2
  20. package/src/generators/__snapshots__/clientPostImportPath.ts +2 -2
  21. package/src/generators/__snapshots__/createUsersWithListInput.ts +2 -2
  22. package/src/generators/__snapshots__/createUsersWithListInputAsQuery.ts +2 -2
  23. package/src/generators/__snapshots__/findByStatusAllOptional.ts +2 -5
  24. package/src/generators/__snapshots__/findByStatusAllOptionalInline.ts +2 -2
  25. package/src/generators/__snapshots__/findByTags.ts +2 -2
  26. package/src/generators/__snapshots__/findByTagsObject.ts +2 -2
  27. package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +2 -2
  28. package/src/generators/__snapshots__/findByTagsTemplateString.ts +2 -2
  29. package/src/generators/__snapshots__/findByTagsWithCustomOptions.ts +2 -2
  30. package/src/generators/__snapshots__/findByTagsWithCustomQueryKey.ts +2 -2
  31. package/src/generators/__snapshots__/findByTagsWithZod.ts +2 -2
  32. package/src/generators/__snapshots__/findInfiniteByStatusAllOptional.ts +2 -2
  33. package/src/generators/__snapshots__/findInfiniteByTags.ts +2 -2
  34. package/src/generators/__snapshots__/findInfiniteByTagsNextAndPreviousParam.ts +2 -2
  35. package/src/generators/__snapshots__/findInfiniteByTagsNextParam.ts +2 -2
  36. package/src/generators/__snapshots__/findInfiniteByTagsWithCustomOptions.ts +2 -2
  37. package/src/generators/__snapshots__/findSuspenseByStatusAllOptional.ts +2 -2
  38. package/src/generators/__snapshots__/findSuspenseByTags.ts +2 -2
  39. package/src/generators/__snapshots__/findSuspenseByTagsWithCustomOptions.ts +2 -2
  40. package/src/generators/__snapshots__/findSuspenseInfiniteByStatusAllOptional.ts +2 -2
  41. package/src/generators/__snapshots__/findSuspenseInfiniteByTags.ts +2 -2
  42. package/src/generators/__snapshots__/findSuspenseInfiniteByTagsCursor.ts +2 -2
  43. package/src/generators/__snapshots__/findSuspenseInfiniteByTagsWithCustomOptions.ts +2 -2
  44. package/src/generators/__snapshots__/getPetIdCamelCase.ts +2 -2
  45. package/src/generators/__snapshots__/postAsQuery.ts +2 -2
  46. package/src/generators/__snapshots__/updatePetById.ts +2 -2
  47. package/src/generators/__snapshots__/updatePetByIdPathParamsObject.ts +2 -2
  48. package/src/generators/__snapshots__/updatePetByIdWithCustomOptions.ts +2 -2
  49. package/src/generators/infiniteQueryGenerator.tsx +2 -2
  50. package/src/generators/mutationGenerator.tsx +2 -2
  51. package/src/generators/queryGenerator.tsx +2 -2
  52. package/src/generators/suspenseInfiniteQueryGenerator.tsx +2 -2
  53. package/src/generators/suspenseQueryGenerator.tsx +2 -2
  54. package/dist/generators-BNYyHlZa.cjs.map +0 -1
  55. package/dist/generators-DLX0cp80.js.map +0 -1
  56. package/dist/types-CdpInNzi.d.ts +0 -877
  57. package/dist/types-Fb-3R-ua.d.cts +0 -878
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators-DtDEbt56.cjs","names":["path","operations","fs","File","Function","File","Type","pluginClientName","pluginTsName","pluginZodName","File","path","QueryKey","Client","InfiniteQueryOptions","InfiniteQuery","pluginTsName","pluginZodName","pluginClientName","File","path","MutationKey","Client","MutationOptions","Mutation","pluginClientName","pluginTsName","pluginZodName","File","path","QueryKey","Client","QueryOptions","Query","pluginClientName","pluginTsName","pluginZodName","File","path","QueryKey","Client","SuspenseInfiniteQueryOptions","SuspenseInfiniteQuery","pluginClientName","pluginTsName","pluginZodName","File","path","QueryKey","Client","QueryOptions","SuspenseQuery"],"sources":["../src/generators/customHookOptionsFileGenerator.tsx","../src/generators/hookOptionsGenerator.tsx","../src/generators/infiniteQueryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx","../src/generators/suspenseInfiniteQueryGenerator.tsx","../src/generators/suspenseQueryGenerator.tsx"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport type { Operation } from '@kubb/oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Function } from '@kubb/react-fabric'\nimport type { PluginReactQuery } from '../types'\n\nexport const customHookOptionsFileGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query-custom-hook-options-file',\n Operations({ operations, generator, plugin, config }) {\n const {\n options,\n options: { output },\n key: pluginKey,\n } = plugin\n const pluginManager = usePluginManager()\n\n const { getFile } = useOperationManager(generator)\n\n if (!options.customOptions) {\n return null\n }\n\n const override = output.override ?? config.output.override ?? false\n const { importPath, name } = options.customOptions\n\n const root = path.resolve(config.root, config.output.path)\n\n const reactQueryImportPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const getHookFilePath = (operations: Operation[]) => {\n const firstOperation = operations[0]\n if (firstOperation != null) {\n // Get the file of the first generated hook\n return getFile(firstOperation, { prefix: 'use' }).path\n }\n // Get the index file of the hooks directory\n return pluginManager.getFile({ name: 'index', extname: '.ts', pluginKey }).path\n }\n\n const ensureExtension = (filePath: string, extname: string) => {\n if (path.extname(filePath) === '') {\n return filePath + extname\n }\n return filePath\n }\n\n const getExternalFile = (filePath: string, rootPath: string) => {\n const actualFilePath = ensureExtension(filePath, '.ts')\n return {\n baseName: path.basename(actualFilePath) as `${string}.${string}`,\n name: path.basename(actualFilePath, path.extname(actualFilePath)),\n path: path.resolve(rootPath, actualFilePath),\n }\n }\n\n const basePath = path.dirname(getHookFilePath(operations))\n const file = getExternalFile(importPath, basePath)\n\n if (fs.existsSync(file.path) && !override) {\n return null\n }\n\n return (\n <File baseName={file.baseName} path={file.path}>\n <File.Import name={['QueryClient']} path={reactQueryImportPath} isTypeOnly />\n <File.Import name={['useQueryClient']} path={reactQueryImportPath} />\n <File.Import name={['HookOptions']} root={file.path} path={path.resolve(root, './index.ts')} />\n <File.Source name={file.name} isExportable isIndexable>\n <Function name=\"getCustomHookOptions\" params=\"{ queryClient }: { queryClient: QueryClient }\" returnType=\"Partial<HookOptions>\">\n {`return {\n // TODO: Define custom hook options here\n // Example:\n // useUpdatePetHook: {\n // onSuccess: () => {\n // void queryClient.invalidateQueries({ queryKey: ['pet'] })\n // }\n // }\n }`}\n </Function>\n <Function\n name={name}\n generics=\"T extends keyof HookOptions\"\n params=\"{ hookName, operationId }: { hookName: T, operationId: string }\"\n returnType=\"HookOptions[T]\"\n export\n >\n {`const queryClient = useQueryClient()\n const customOptions = getCustomHookOptions({ queryClient })\n return customOptions[hookName] ?? {}`}\n </Function>\n </File.Source>\n </File>\n )\n },\n})\n","import { usePluginManager } from '@kubb/core/hooks'\nimport type { Operation } from '@kubb/oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, Type } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport type { PluginReactQuery } from '../types'\n\nexport const hookOptionsGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query-hook-options',\n Operations({ operations, plugin, generator }) {\n const {\n options,\n options: { output },\n key: pluginKey,\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getName, getFile } = useOperationManager(generator)\n\n if (!options.customOptions) {\n return null\n }\n\n const name = 'HookOptions'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const getOperationOptions = (operation: Operation) => {\n const operationOptions = generator.getOptions(operation, operation.method)\n return { ...options, ...operationOptions }\n }\n\n const isQuery = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n return typeof operationOptions.query === 'boolean' ? true : operationOptions.query?.methods.some((method) => operation.method === method)\n }\n\n const isMutation = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n return (\n operationOptions.mutation !== false &&\n !isQuery(operation) &&\n difference(operationOptions.mutation ? operationOptions.mutation.methods : [], operationOptions.query ? operationOptions.query.methods : []).some(\n (method) => operation.method === method,\n )\n )\n }\n\n const isSuspense = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n return !!operationOptions.suspense\n }\n\n const isInfinite = (operation: Operation) => {\n const operationOptions = getOperationOptions(operation)\n const infiniteOptions = operationOptions.infinite && typeof operationOptions.infinite === 'object' ? operationOptions.infinite : undefined\n return !!infiniteOptions\n }\n\n // Query/mutation hooks\n const getHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use' })\n }\n\n const getHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use' })\n }\n\n // Query hooks\n const getQueryHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'QueryOptions' })\n }\n\n const getQueryHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getQueryHookOptions(operation)]} root={file.path} path={getHookFile(operation).path} />\n }\n\n // Mutation hooks\n const getMutationHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'MutationOptions' })\n }\n\n const getMutationHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getMutationHookOptions(operation)]} root={file.path} path={getHookFile(operation).path} />\n }\n\n // Suspense hooks\n const getSuspenseHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use', suffix: 'suspense' })\n }\n\n const getSuspenseHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use', suffix: 'suspense' })\n }\n\n const getSuspenseHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'SuspenseQueryOptions' })\n }\n\n const getSuspenseHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getSuspenseHookOptions(operation)]} root={file.path} path={getSuspenseHookFile(operation).path} />\n }\n\n // Infinite hooks\n const getInfiniteHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use', suffix: 'infinite' })\n }\n\n const getInfiniteHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use', suffix: 'infinite' })\n }\n\n const getInfiniteHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'InfiniteQueryOptions' })\n }\n\n const getInfiniteHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getInfiniteHookOptions(operation)]} root={file.path} path={getInfiniteHookFile(operation).path} />\n }\n\n // Suspense infinite hooks\n const getSuspenseInfiniteHookName = (operation: Operation) => {\n return getName(operation, { type: 'function', prefix: 'use', suffix: 'suspenseInfinite' })\n }\n\n const getSuspenseInfiniteHookFile = (operation: Operation) => {\n return getFile(operation, { prefix: 'use', suffix: 'suspenseInfinite' })\n }\n\n const getSuspenseInfiniteHookOptions = (operation: Operation) => {\n return getName(operation, { type: 'function', suffix: 'SuspenseInfiniteQueryOptions' })\n }\n\n const getSuspenseInfiniteHookOptionsImport = (operation: Operation) => {\n return <File.Import name={[getSuspenseInfiniteHookOptions(operation)]} root={file.path} path={getSuspenseInfiniteHookFile(operation).path} />\n }\n\n const imports = operations\n .flatMap((operation) => {\n if (isQuery(operation)) {\n return [\n getQueryHookOptionsImport(operation),\n isSuspense(operation) ? getSuspenseHookOptionsImport(operation) : undefined,\n isInfinite(operation) ? getInfiniteHookOptionsImport(operation) : undefined,\n isSuspense(operation) && isInfinite(operation) ? getSuspenseInfiniteHookOptionsImport(operation) : undefined,\n ].filter(Boolean)\n }\n if (isMutation(operation)) {\n return [getMutationHookOptionsImport(operation)]\n }\n return []\n })\n .filter(Boolean)\n\n const hookOptions = operations.reduce(\n (acc, operation) => {\n if (isQuery(operation)) {\n acc[getHookName(operation)] = `Partial<ReturnType<typeof ${getQueryHookOptions(operation)}>>`\n if (isSuspense(operation)) {\n acc[getSuspenseHookName(operation)] = `Partial<ReturnType<typeof ${getSuspenseHookOptions(operation)}>>`\n }\n if (isInfinite(operation)) {\n acc[getInfiniteHookName(operation)] = `Partial<ReturnType<typeof ${getInfiniteHookOptions(operation)}>>`\n }\n if (isSuspense(operation) && isInfinite(operation)) {\n acc[getSuspenseInfiniteHookName(operation)] = `Partial<ReturnType<typeof ${getSuspenseInfiniteHookOptions(operation)}>>`\n }\n }\n if (isMutation(operation)) {\n acc[getHookName(operation)] = `Partial<ReturnType<typeof ${getMutationHookOptions(operation)}>>`\n }\n return acc\n },\n {} as Record<string, string>,\n )\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {imports}\n <File.Source name={name} isExportable isIndexable isTypeOnly>\n <Type export name={name}>\n {`{ ${Object.keys(hookOptions).map((key) => `${JSON.stringify(key)}: ${hookOptions[key]}`)} }`}\n </Type>\n </File.Source>\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginReactQuery } from '../types'\n\nexport const infiniteQueryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-infinite-query',\n Operation({ config, operation, generator, plugin }) {\n const {\n options,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n const infiniteOptions = options.infinite && typeof options.infinite === 'object' ? options.infinite : undefined\n\n const importPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use', suffix: 'infinite' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'infinite' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n suffix: 'infinite',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'InfiniteQueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'InfiniteQueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'InfiniteQueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n if (!isQuery || isMutation || !infiniteOptions) {\n return null\n }\n\n const normalizeKey = (key?: string | null) => (key ?? '').replace(/\\?$/, '')\n const queryParam = infiniteOptions.queryParam\n const cursorParam = infiniteOptions.cursorParam\n const queryParamKeys = type.schemas.queryParams?.keys ?? []\n const responseKeys = [...(type.schemas.responses?.flatMap((item) => item.keys ?? []) ?? []), ...(type.schemas.response?.keys ?? [])]\n\n const hasQueryParam = queryParam ? queryParamKeys.some((key) => normalizeKey(key) === queryParam) : false\n const hasCursorParam = cursorParam ? responseKeys.some((key) => normalizeKey(key) === cursorParam) : true\n\n if (!hasQueryParam || !hasCursorParam) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.client.importPath} />\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n <File.Import name={['fetch']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && (\n <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n )}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n {!shouldUseClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\n {infiniteOptions && (\n <>\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n <InfiniteQueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </>\n )}\n {infiniteOptions && (\n <>\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'InfiniteQueryObserverOptions', 'UseInfiniteQueryResult']} path={importPath} isTypeOnly />\n <InfiniteQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport { MutationOptions } from '../components/MutationOptions.tsx'\nimport type { PluginReactQuery } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query',\n Operation({ config, plugin, operation, generator }) {\n const {\n options,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method)\n const isMutation =\n options.mutation !== false &&\n !isQuery &&\n difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some((method) => operation.method === method)\n\n const importPath = options.mutation ? options.mutation.importPath : '@tanstack/react-query'\n\n const mutation = {\n name: getName(operation, { type: 'function', prefix: 'use' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const mutationOptions = {\n name: getName(operation, { type: 'function', suffix: 'MutationOptions' }),\n }\n\n const mutationKey = {\n name: getName(operation, { type: 'const', suffix: 'MutationKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'MutationKey' }),\n }\n\n if (!isMutation) {\n return null\n }\n\n return (\n <File\n baseName={mutation.file.baseName}\n path={mutation.file.path}\n meta={mutation.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={mutation.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.client.importPath} />\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n <File.Import name={['fetch']} root={mutation.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={mutation.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import\n name={['ResponseConfig']}\n root={mutation.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n isTypeOnly\n />\n )}\n </>\n )}\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={mutation.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && (\n <File.Import name={['buildFormData']} root={mutation.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n )}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={mutation.file.path}\n path={type.file.path}\n isTypeOnly\n />\n\n <MutationKey\n name={mutationKey.name}\n typeName={mutationKey.typeName}\n operation={operation}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n transformer={options.mutationKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n <File.Import name={['mutationOptions']} path={importPath} />\n\n <MutationOptions\n name={mutationOptions.name}\n clientName={client.name}\n mutationKeyName={mutationKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n />\n {options.mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['UseMutationOptions', 'UseMutationResult', 'QueryClient']} path={importPath} isTypeOnly />\n <Mutation\n name={mutation.name}\n mutationOptionsName={mutationOptions.name}\n typeName={mutation.typeName}\n typeSchemas={type.schemas}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n mutationKeyName={mutationKey.name}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\nexport const queryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-query',\n Operation({ config, plugin, operation, generator }) {\n const {\n options,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n\n const importPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'QueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'QueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'QueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, {\n pluginKey: [pluginTsName],\n type: 'type',\n }),\n }\n\n const zod = {\n // grouping is coming from react-query instead of zod option, we need to pass the options of zod instead\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, {\n pluginKey: [pluginZodName],\n type: 'function',\n }),\n }\n\n if (!isQuery || isMutation) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.client.importPath} />\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n <File.Import name={['fetch']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && (\n <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n )}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n transformer={options.queryKey}\n />\n {!shouldUseClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsType={options.paramsType}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n <File.Import name={['queryOptions']} path={importPath} />\n <QueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n />\n {options.query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'QueryObserverOptions', 'UseQueryResult', 'QueryClient']} path={importPath} isTypeOnly />\n <Query\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { QueryKey, SuspenseInfiniteQuery, SuspenseInfiniteQueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\nexport const suspenseInfiniteQueryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-suspense-infinite-query',\n Operation({ config, operation, generator, plugin }) {\n const {\n options,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n const isSuspense = !!options.suspense\n const infiniteOptions = options.infinite && typeof options.infinite === 'object' ? options.infinite : undefined\n\n const importPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use', suffix: 'suspenseInfinite' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'suspenseInfinite' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n suffix: 'suspenseInfinite',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'SuspenseInfiniteQueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'SuspenseInfiniteQueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'SuspenseInfiniteQueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n if (!isQuery || isMutation || !isSuspense || !infiniteOptions) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.client.importPath} />\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n <File.Import name={['fetch']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && (\n <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n )}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n {!shouldUseClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n {infiniteOptions && (\n <>\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n <SuspenseInfiniteQueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </>\n )}\n {infiniteOptions && (\n <>\n <File.Import name={['useSuspenseInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseInfiniteQueryOptions', 'UseSuspenseInfiniteQueryResult']} path={importPath} isTypeOnly />\n <SuspenseInfiniteQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n customOptions={options.customOptions}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { QueryKey, QueryOptions, SuspenseQuery } from '../components'\nimport type { PluginReactQuery } from '../types'\n\nexport const suspenseQueryGenerator = createReactGenerator<PluginReactQuery>({\n name: 'react-suspense-query',\n Operation({ config, operation, generator, plugin }) {\n const {\n options,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n\n const isSuspense = !!options.suspense\n\n const importPath = options.query ? options.query.importPath : '@tanstack/react-query'\n\n const query = {\n name: getName(operation, {\n type: 'function',\n prefix: 'use',\n suffix: 'suspense',\n }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'suspense' }),\n }\n\n const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n // Class-based clients are not compatible with query hooks, so we generate inline clients\n const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n const client = {\n name: shouldUseClientPlugin\n ? getName(operation, {\n type: 'function',\n pluginKey: [pluginClientName],\n })\n : getName(operation, {\n type: 'function',\n suffix: 'suspense',\n }),\n file: getFile(operation, { pluginKey: [pluginClientName] }),\n }\n\n const queryOptions = {\n name: getName(operation, {\n type: 'function',\n suffix: 'SuspenseQueryOptions',\n }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'SuspenseQueryKey' }),\n typeName: getName(operation, {\n type: 'type',\n suffix: 'SuspenseQueryKey',\n }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, {\n pluginKey: [pluginTsName],\n type: 'type',\n }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, {\n pluginKey: [pluginZodName],\n type: 'function',\n }),\n }\n\n if (!isQuery || isMutation || !isSuspense) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n )}\n {options.client.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.client.importPath} />\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n <File.Import name={['fetch']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={query.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n isTypeOnly\n />\n {options.client.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n {!shouldUseClientPlugin && (\n <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n )}\n {options.customOptions && <File.Import name={[options.customOptions.name]} path={options.customOptions.importPath} />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={client.name}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType || 'data'}\n paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n )}\n <File.Import name={['queryOptions']} path={importPath} />\n <QueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType}\n />\n {options.suspense && (\n <>\n <File.Import name={['useSuspenseQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseQueryOptions', 'UseSuspenseQueryResult']} path={importPath} isTypeOnly />\n\n <SuspenseQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType || 'data'}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n customOptions={options.customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_generators = require('./generators-BNYyHlZa.cjs');
1
+ const require_generators = require('./generators-DtDEbt56.cjs');
2
2
 
3
3
  exports.customHookOptionsFileGenerator = require_generators.customHookOptionsFileGenerator;
4
4
  exports.hookOptionsGenerator = require_generators.hookOptionsGenerator;
@@ -1,5 +1,461 @@
1
- import { a as ReactGenerator, c as __name, r as PluginReactQuery } from "./types-Fb-3R-ua.cjs";
1
+ import { a as __name, r as PluginReactQuery } from "./types-CgOcKVIt.cjs";
2
+ import { HttpMethod, Oas, Operation, SchemaObject, contentType } from "@kubb/oas";
3
+ import { Fabric } from "@kubb/react-fabric";
4
+ import { FabricReactNode } from "@kubb/react-fabric/types";
5
+ import { BaseGenerator, Config, FileMetaBase, Group, KubbEvents, Output, Plugin, PluginFactoryOptions, PluginManager, ResolveNameParams } from "@kubb/core";
6
+ import { AsyncEventEmitter } from "@kubb/core/utils";
7
+ import { KubbFile } from "@kubb/fabric-core/types";
2
8
 
9
+ //#region ../plugin-oas/src/types.d.ts
10
+ type GetOasOptions = {
11
+ validate?: boolean;
12
+ };
13
+ type Context$2 = {
14
+ getOas(options?: GetOasOptions): Promise<Oas>;
15
+ getBaseURL(): Promise<string | undefined>;
16
+ };
17
+ declare global {
18
+ namespace Kubb {
19
+ interface PluginContext extends Context$2 {}
20
+ }
21
+ }
22
+ /**
23
+ * `propertyName` is the ref name + resolved with the nameResolver
24
+ * @example import { Pet } from './Pet'
25
+ *
26
+ * `originalName` is the original name used(in PascalCase), only used to remove duplicates
27
+ *
28
+ * `pluginKey` can be used to override the current plugin being used, handy when you want to import a type/schema out of another plugin
29
+ * @example import a type(plugin-ts) for a mock file(swagger-faker)
30
+ */
31
+ type Ref = {
32
+ propertyName: string;
33
+ originalName: string;
34
+ path: KubbFile.Path;
35
+ pluginKey?: Plugin['key'];
36
+ };
37
+ type Refs = Record<string, Ref>;
38
+ type OperationSchema = {
39
+ /**
40
+ * Converted name, contains already `PathParams`, `QueryParams`, ...
41
+ */
42
+ name: string;
43
+ schema: SchemaObject;
44
+ operation?: Operation;
45
+ /**
46
+ * OperationName in PascalCase, only being used in OperationGenerator
47
+ */
48
+ operationName: string;
49
+ description?: string;
50
+ statusCode?: number;
51
+ keys?: string[];
52
+ keysToOmit?: string[];
53
+ withData?: boolean;
54
+ };
55
+ type OperationSchemas = {
56
+ pathParams?: OperationSchema & {
57
+ keysToOmit?: never;
58
+ };
59
+ queryParams?: OperationSchema & {
60
+ keysToOmit?: never;
61
+ };
62
+ headerParams?: OperationSchema & {
63
+ keysToOmit?: never;
64
+ };
65
+ request?: OperationSchema;
66
+ response: OperationSchema;
67
+ responses: Array<OperationSchema>;
68
+ statusCodes?: Array<OperationSchema>;
69
+ errors?: Array<OperationSchema>;
70
+ };
71
+ type ByTag = {
72
+ type: 'tag';
73
+ pattern: string | RegExp;
74
+ };
75
+ type ByOperationId = {
76
+ type: 'operationId';
77
+ pattern: string | RegExp;
78
+ };
79
+ type ByPath = {
80
+ type: 'path';
81
+ pattern: string | RegExp;
82
+ };
83
+ type ByMethod = {
84
+ type: 'method';
85
+ pattern: HttpMethod | RegExp;
86
+ };
87
+ type BySchemaName = {
88
+ type: 'schemaName';
89
+ pattern: string | RegExp;
90
+ };
91
+ type ByContentType = {
92
+ type: 'contentType';
93
+ pattern: string | RegExp;
94
+ };
95
+ type Exclude = ByTag | ByOperationId | ByPath | ByMethod | ByContentType;
96
+ type Include = ByTag | ByOperationId | ByPath | ByMethod | ByContentType;
97
+ type Override<TOptions> = (ByTag | ByOperationId | ByPath | ByMethod | BySchemaName | ByContentType) & {
98
+ options: Partial<TOptions>;
99
+ };
100
+ //#endregion
101
+ //#region ../plugin-oas/src/OperationGenerator.d.ts
102
+ type Context$1<TOptions, TPluginOptions extends PluginFactoryOptions> = {
103
+ fabric: Fabric;
104
+ oas: Oas;
105
+ exclude: Array<Exclude> | undefined;
106
+ include: Array<Include> | undefined;
107
+ override: Array<Override<TOptions>> | undefined;
108
+ contentType: contentType | undefined;
109
+ pluginManager: PluginManager;
110
+ events?: AsyncEventEmitter<KubbEvents>;
111
+ /**
112
+ * Current plugin
113
+ */
114
+ plugin: Plugin<TPluginOptions>;
115
+ mode: KubbFile.Mode;
116
+ UNSTABLE_NAMING?: true;
117
+ };
118
+ declare class OperationGenerator<TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions, TFileMeta extends FileMetaBase = FileMetaBase> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context$1<TPluginOptions['resolvedOptions'], TPluginOptions>> {
119
+ #private;
120
+ getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']>;
121
+ getSchemas(operation: Operation, {
122
+ resolveName
123
+ }?: {
124
+ resolveName?: (name: string) => string;
125
+ }): OperationSchemas;
126
+ getOperations(): Promise<Array<{
127
+ path: string;
128
+ method: HttpMethod;
129
+ operation: Operation;
130
+ }>>;
131
+ build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>>;
132
+ }
133
+ //#endregion
134
+ //#region ../plugin-oas/src/SchemaMapper.d.ts
135
+ type SchemaKeywordMapper = {
136
+ object: {
137
+ keyword: 'object';
138
+ args: {
139
+ properties: {
140
+ [x: string]: Schema[];
141
+ };
142
+ additionalProperties: Schema[];
143
+ patternProperties?: Record<string, Schema[]>;
144
+ strict?: boolean;
145
+ };
146
+ };
147
+ url: {
148
+ keyword: 'url';
149
+ };
150
+ readOnly: {
151
+ keyword: 'readOnly';
152
+ };
153
+ writeOnly: {
154
+ keyword: 'writeOnly';
155
+ };
156
+ uuid: {
157
+ keyword: 'uuid';
158
+ };
159
+ email: {
160
+ keyword: 'email';
161
+ };
162
+ firstName: {
163
+ keyword: 'firstName';
164
+ };
165
+ lastName: {
166
+ keyword: 'lastName';
167
+ };
168
+ phone: {
169
+ keyword: 'phone';
170
+ };
171
+ password: {
172
+ keyword: 'password';
173
+ };
174
+ date: {
175
+ keyword: 'date';
176
+ args: {
177
+ type?: 'date' | 'string';
178
+ };
179
+ };
180
+ time: {
181
+ keyword: 'time';
182
+ args: {
183
+ type?: 'date' | 'string';
184
+ };
185
+ };
186
+ datetime: {
187
+ keyword: 'datetime';
188
+ args: {
189
+ offset?: boolean;
190
+ local?: boolean;
191
+ };
192
+ };
193
+ tuple: {
194
+ keyword: 'tuple';
195
+ args: {
196
+ items: Schema[];
197
+ min?: number;
198
+ max?: number;
199
+ rest?: Schema;
200
+ };
201
+ };
202
+ array: {
203
+ keyword: 'array';
204
+ args: {
205
+ items: Schema[];
206
+ min?: number;
207
+ max?: number;
208
+ unique?: boolean;
209
+ };
210
+ };
211
+ enum: {
212
+ keyword: 'enum';
213
+ args: {
214
+ name: string;
215
+ typeName: string;
216
+ asConst: boolean;
217
+ items: Array<{
218
+ name: string | number;
219
+ format: 'string' | 'number' | 'boolean';
220
+ value?: string | number | boolean;
221
+ }>;
222
+ };
223
+ };
224
+ and: {
225
+ keyword: 'and';
226
+ args: Schema[];
227
+ };
228
+ const: {
229
+ keyword: 'const';
230
+ args: {
231
+ name: string | number;
232
+ format: 'string' | 'number' | 'boolean';
233
+ value?: string | number | boolean;
234
+ };
235
+ };
236
+ union: {
237
+ keyword: 'union';
238
+ args: Schema[];
239
+ };
240
+ ref: {
241
+ keyword: 'ref';
242
+ args: {
243
+ name: string;
244
+ $ref: string;
245
+ /**
246
+ * Full qualified path.
247
+ */
248
+ path: KubbFile.Path;
249
+ /**
250
+ * When true `File.Import` is used.
251
+ * When false a reference is used inside the current file.
252
+ */
253
+ isImportable: boolean;
254
+ };
255
+ };
256
+ matches: {
257
+ keyword: 'matches';
258
+ args?: string;
259
+ };
260
+ boolean: {
261
+ keyword: 'boolean';
262
+ };
263
+ default: {
264
+ keyword: 'default';
265
+ args: string | number | boolean;
266
+ };
267
+ string: {
268
+ keyword: 'string';
269
+ };
270
+ integer: {
271
+ keyword: 'integer';
272
+ };
273
+ number: {
274
+ keyword: 'number';
275
+ };
276
+ max: {
277
+ keyword: 'max';
278
+ args: number;
279
+ };
280
+ min: {
281
+ keyword: 'min';
282
+ args: number;
283
+ };
284
+ exclusiveMaximum: {
285
+ keyword: 'exclusiveMaximum';
286
+ args: number;
287
+ };
288
+ exclusiveMinimum: {
289
+ keyword: 'exclusiveMinimum';
290
+ args: number;
291
+ };
292
+ describe: {
293
+ keyword: 'describe';
294
+ args: string;
295
+ };
296
+ example: {
297
+ keyword: 'example';
298
+ args: string;
299
+ };
300
+ deprecated: {
301
+ keyword: 'deprecated';
302
+ };
303
+ optional: {
304
+ keyword: 'optional';
305
+ };
306
+ undefined: {
307
+ keyword: 'undefined';
308
+ };
309
+ nullish: {
310
+ keyword: 'nullish';
311
+ };
312
+ nullable: {
313
+ keyword: 'nullable';
314
+ };
315
+ null: {
316
+ keyword: 'null';
317
+ };
318
+ any: {
319
+ keyword: 'any';
320
+ };
321
+ unknown: {
322
+ keyword: 'unknown';
323
+ };
324
+ void: {
325
+ keyword: 'void';
326
+ };
327
+ blob: {
328
+ keyword: 'blob';
329
+ };
330
+ schema: {
331
+ keyword: 'schema';
332
+ args: {
333
+ type: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
334
+ format?: string;
335
+ };
336
+ };
337
+ name: {
338
+ keyword: 'name';
339
+ args: string;
340
+ };
341
+ catchall: {
342
+ keyword: 'catchall';
343
+ };
344
+ interface: {
345
+ keyword: 'interface';
346
+ };
347
+ };
348
+ type Schema = {
349
+ keyword: string;
350
+ } | SchemaKeywordMapper[keyof SchemaKeywordMapper];
351
+ //#endregion
352
+ //#region ../plugin-oas/src/SchemaGenerator.d.ts
353
+ type Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {
354
+ fabric: Fabric;
355
+ oas: Oas;
356
+ pluginManager: PluginManager;
357
+ events?: AsyncEventEmitter<KubbEvents>;
358
+ /**
359
+ * Current plugin
360
+ */
361
+ plugin: Plugin<TPluginOptions>;
362
+ mode: KubbFile.Mode;
363
+ include?: Array<'schemas' | 'responses' | 'requestBodies'>;
364
+ override: Array<Override<TOptions>> | undefined;
365
+ contentType?: contentType;
366
+ output?: string;
367
+ };
368
+ type SchemaGeneratorOptions = {
369
+ dateType: false | 'string' | 'stringOffset' | 'stringLocal' | 'date';
370
+ unknownType: 'any' | 'unknown' | 'void';
371
+ emptySchemaType: 'any' | 'unknown' | 'void';
372
+ enumType?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal' | 'inlineLiteral';
373
+ enumSuffix?: string;
374
+ /**
375
+ * @deprecated Will be removed in v5. Use `collisionDetection: true` instead to prevent enum name collisions.
376
+ * When `collisionDetection` is enabled, the rootName-based approach eliminates the need for numeric suffixes.
377
+ * @internal
378
+ */
379
+ usedEnumNames?: Record<string, number>;
380
+ mapper?: Record<string, string>;
381
+ typed?: boolean;
382
+ transformers: {
383
+ /**
384
+ * Customize the names based on the type that is provided by the plugin.
385
+ */
386
+ name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string;
387
+ /**
388
+ * Receive schema and name(propertyName) and return FakerMeta array
389
+ * TODO TODO add docs
390
+ * @beta
391
+ */
392
+ schema?: (schemaProps: SchemaProps$1, defaultSchemas: Schema[]) => Array<Schema> | undefined;
393
+ };
394
+ };
395
+ type SchemaProps$1 = {
396
+ schema: SchemaObject | null;
397
+ name: string | null;
398
+ parentName: string | null;
399
+ rootName?: string | null;
400
+ };
401
+ declare class SchemaGenerator<TOptions extends SchemaGeneratorOptions = SchemaGeneratorOptions, TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions, TFileMeta extends FileMetaBase = FileMetaBase> extends BaseGenerator<TOptions, Context<TOptions, TPluginOptions>> {
402
+ #private;
403
+ refs: Refs;
404
+ /**
405
+ * Creates a type node from a given schema.
406
+ * Delegates to getBaseTypeFromSchema internally and
407
+ * optionally adds a union with null.
408
+ */
409
+ parse(props: SchemaProps$1): Schema[];
410
+ static deepSearch<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): Array<SchemaKeywordMapper[T]>;
411
+ static find<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T] | undefined;
412
+ static combineObjects(tree: Schema[] | undefined): Schema[];
413
+ build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>>;
414
+ }
415
+ //#endregion
416
+ //#region ../plugin-oas/src/generators/createGenerator.d.ts
417
+ type CoreGenerator<TOptions extends PluginFactoryOptions> = {
418
+ name: string;
419
+ type: 'core';
420
+ operations: (props: OperationsProps<TOptions>) => Promise<KubbFile.File[]>;
421
+ operation: (props: OperationProps<TOptions>) => Promise<KubbFile.File[]>;
422
+ schema: (props: SchemaProps<TOptions>) => Promise<KubbFile.File[]>;
423
+ };
424
+ //#endregion
425
+ //#region ../plugin-oas/src/generators/types.d.ts
426
+ type OperationsProps<TOptions extends PluginFactoryOptions> = {
427
+ config: Config;
428
+ generator: Omit<OperationGenerator<TOptions>, 'build'>;
429
+ plugin: Plugin<TOptions>;
430
+ operations: Array<Operation>;
431
+ };
432
+ type OperationProps<TOptions extends PluginFactoryOptions> = {
433
+ config: Config;
434
+ generator: Omit<OperationGenerator<TOptions>, 'build'>;
435
+ plugin: Plugin<TOptions>;
436
+ operation: Operation;
437
+ };
438
+ type SchemaProps<TOptions extends PluginFactoryOptions> = {
439
+ config: Config;
440
+ generator: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>;
441
+ plugin: Plugin<TOptions>;
442
+ schema: {
443
+ name: string;
444
+ tree: Array<Schema>;
445
+ value: SchemaObject;
446
+ };
447
+ };
448
+ type Generator<TOptions extends PluginFactoryOptions> = CoreGenerator<TOptions> | ReactGenerator<TOptions>;
449
+ //#endregion
450
+ //#region ../plugin-oas/src/generators/createReactGenerator.d.ts
451
+ type ReactGenerator<TOptions extends PluginFactoryOptions> = {
452
+ name: string;
453
+ type: 'react';
454
+ Operations: (props: OperationsProps<TOptions>) => FabricReactNode;
455
+ Operation: (props: OperationProps<TOptions>) => FabricReactNode;
456
+ Schema: (props: SchemaProps<TOptions>) => FabricReactNode;
457
+ };
458
+ //#endregion
3
459
  //#region src/generators/customHookOptionsFileGenerator.d.ts
4
460
  declare const customHookOptionsFileGenerator: ReactGenerator<PluginReactQuery>;
5
461
  //#endregion