@kubb/plugin-client 4.27.3 → 4.27.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{StaticClassClient-InXfCDQs.js → StaticClassClient-uqlvmwoJ.js} +3 -3
- package/dist/{StaticClassClient-InXfCDQs.js.map → StaticClassClient-uqlvmwoJ.js.map} +1 -1
- package/dist/{StaticClassClient-D7DWLX5M.cjs → StaticClassClient-zUX04A4W.cjs} +2 -2
- package/dist/{StaticClassClient-D7DWLX5M.cjs.map → StaticClassClient-zUX04A4W.cjs.map} +1 -1
- package/dist/axios.source-CDcg9aL-.js +6 -0
- package/dist/axios.source-CDcg9aL-.js.map +1 -0
- package/dist/axios.source-CRSmc9GC.cjs +12 -0
- package/dist/axios.source-CRSmc9GC.cjs.map +1 -0
- package/dist/clients/axios.d.cts +1 -1
- package/dist/clients/axios.d.ts +1 -1
- package/dist/clients/axios.js +1 -1
- package/dist/clients/fetch.d.cts +1 -1
- package/dist/clients/fetch.d.ts +1 -1
- package/dist/clients/fetch.js +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.d.cts +2 -2
- package/dist/components.d.ts +2 -2
- package/dist/components.js +1 -1
- package/dist/config.source-CiegvD_s.cjs +12 -0
- package/dist/config.source-CiegvD_s.cjs.map +1 -0
- package/dist/config.source-VWEtFolK.js +6 -0
- package/dist/config.source-VWEtFolK.js.map +1 -0
- package/dist/fetch.source-BVpZ9vJe.cjs +12 -0
- package/dist/fetch.source-BVpZ9vJe.cjs.map +1 -0
- package/dist/fetch.source-DkBhuGC1.js +6 -0
- package/dist/fetch.source-DkBhuGC1.js.map +1 -0
- package/dist/{generators-B7HJgl12.js → generators-C3iBxAkk.js} +3 -3
- package/dist/{generators-B7HJgl12.js.map → generators-C3iBxAkk.js.map} +1 -1
- package/dist/{generators-DU-pLWf_.cjs → generators-C4H4RSpu.cjs} +2 -2
- package/dist/{generators-DU-pLWf_.cjs.map → generators-C4H4RSpu.cjs.map} +1 -1
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.cts +2 -2
- package/dist/generators.d.ts +3 -3
- package/dist/generators.js +1 -1
- package/dist/index.cjs +6 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/templates/clients/axios.source.cjs +3 -0
- package/dist/templates/clients/axios.source.d.cts +7 -0
- package/dist/templates/clients/axios.source.d.ts +7 -0
- package/dist/templates/clients/axios.source.js +3 -0
- package/dist/templates/clients/fetch.source.cjs +3 -0
- package/dist/templates/clients/fetch.source.d.cts +7 -0
- package/dist/templates/clients/fetch.source.d.ts +7 -0
- package/dist/templates/clients/fetch.source.js +3 -0
- package/dist/templates/config.source.cjs +3 -0
- package/dist/templates/config.source.d.cts +7 -0
- package/dist/templates/config.source.d.ts +7 -0
- package/dist/templates/config.source.js +3 -0
- package/dist/{types-CaJayxuD.d.cts → types-B-chJOb6.d.cts} +2 -2
- package/dist/{types-FZAT4tqW.d.ts → types-BCu9gRSm.d.ts} +2 -2
- package/package.json +27 -6
- package/src/plugin.ts +5 -5
- package/src/templates/clients/axios.source.ts +4 -0
- package/src/templates/clients/fetch.source.ts +4 -0
- package/src/templates/config.source.ts +4 -0
- /package/dist/{chunk-iVr_oF3V.js → chunk-Cd3iupn7.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as __name } from "./chunk-
|
|
2
|
-
import { URLPath, buildJSDoc } from "@kubb/core/utils";
|
|
1
|
+
import { t as __name } from "./chunk-Cd3iupn7.js";
|
|
3
2
|
import { getComments, getParamsMapping, getPathParams } from "@kubb/plugin-oas/utils";
|
|
4
3
|
import { Const, File, Function, FunctionParams } from "@kubb/react-fabric";
|
|
4
|
+
import { URLPath, buildJSDoc } from "@kubb/core/utils";
|
|
5
5
|
import { getDefaultValue, isOptional } from "@kubb/oas";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
|
|
7
7
|
|
|
@@ -457,4 +457,4 @@ StaticClassClient.getParams = Client.getParams;
|
|
|
457
457
|
|
|
458
458
|
//#endregion
|
|
459
459
|
export { Url as a, Client as i, Operations as n, ClassClient as r, StaticClassClient as t };
|
|
460
|
-
//# sourceMappingURL=StaticClassClient-
|
|
460
|
+
//# sourceMappingURL=StaticClassClient-uqlvmwoJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticClassClient-InXfCDQs.js","names":["getParams","contentType","buildHeaders","contentType","buildGenerics","buildClientParams","buildRequestDataLine","buildFormDataLine","buildReturnStatement","generateMethod","contentType"],"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/ClassClient.tsx","../src/components/Operations.tsx","../src/components/StaticClassClient.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { Const, File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...pathParams,\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({\n name,\n isExportable = true,\n isIndexable = true,\n typeSchemas,\n baseURL,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n // Generate pathParams mapping when paramsCasing is used\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && <br />}\n <Const name={'res'}>{`{ method: '${operation.method.toUpperCase()}', url: ${path.toTemplateString({ prefix: baseURL })} as const }`}</Const>\n <br />\n return res\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: FabricReactNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n\n // Generate parameter mappings when paramsCasing is used\n // Apply to pathParams, queryParams and headerParams\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n const queryParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.queryParams, { casing: paramsCasing }) : undefined\n const headerParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.headerParams, { casing: paramsCasing }) : undefined\n\n const headers = [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? (headerParamsMapping ? '...mappedHeaders' : '...headers') : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n isConfigurable,\n })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).url.toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: `\\`${baseURL}\\``,\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? (queryParamsMapping ? { value: 'mappedParams' } : {}) : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <>\n <br />\n\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client: request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && (\n <>\n <br />\n <br />\n </>\n )}\n {queryParamsMapping && typeSchemas.queryParams?.name && (\n <>\n {`const mappedParams = params ? { ${Object.entries(queryParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": params.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {headerParamsMapping && typeSchemas.headerParams?.name && (\n <>\n {`const mappedHeaders = headers ? { ${Object.entries(headerParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": headers.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {parser === 'zod' && zodSchemas?.request?.name\n ? `const requestData = ${zodSchemas.request.name}.parse(data)`\n : typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {isFormData && typeSchemas?.request?.name && 'const formData = buildFormData(requestData)'}\n <br />\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n </>\n )\n}\n\nClient.getParams = getParams\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\nimport { Client } from './Client.tsx'\n\ntype Props = {\n /**\n * Name of the class\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = ClassClient.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n return `${jsdoc}async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function ClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\n #config: Partial<RequestConfig> & { client?: Client }\n\n constructor(config: Partial<RequestConfig> & { client?: Client } = {}) {\n this.#config = config\n }\n\n${methods.join('\\n\\n')}\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nClassClient.getParams = Client.getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport { Const, File } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps): FabricReactNode {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Client } from './Client.tsx'\n\ntype Props = {\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = Client.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n // Indent static method by 2 spaces, body by 4 spaces (matching snapshot)\n return `${jsdoc} static async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function StaticClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\\n static #config: Partial<RequestConfig> & { client?: Client } = {}\\n\\n${methods.join('\\n\\n')}\\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nStaticClassClient.getParams = Client.getParams\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StaticClassClient-uqlvmwoJ.js","names":["getParams","contentType","buildHeaders","contentType","buildGenerics","buildClientParams","buildRequestDataLine","buildFormDataLine","buildReturnStatement","generateMethod","contentType"],"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/ClassClient.tsx","../src/components/Operations.tsx","../src/components/StaticClassClient.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { Const, File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...pathParams,\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({\n name,\n isExportable = true,\n isIndexable = true,\n typeSchemas,\n baseURL,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n // Generate pathParams mapping when paramsCasing is used\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && <br />}\n <Const name={'res'}>{`{ method: '${operation.method.toUpperCase()}', url: ${path.toTemplateString({ prefix: baseURL })} as const }`}</Const>\n <br />\n return res\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: FabricReactNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n\n // Generate parameter mappings when paramsCasing is used\n // Apply to pathParams, queryParams and headerParams\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n const queryParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.queryParams, { casing: paramsCasing }) : undefined\n const headerParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.headerParams, { casing: paramsCasing }) : undefined\n\n const headers = [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? (headerParamsMapping ? '...mappedHeaders' : '...headers') : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n isConfigurable,\n })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).url.toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: `\\`${baseURL}\\``,\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? (queryParamsMapping ? { value: 'mappedParams' } : {}) : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <>\n <br />\n\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client: request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && (\n <>\n <br />\n <br />\n </>\n )}\n {queryParamsMapping && typeSchemas.queryParams?.name && (\n <>\n {`const mappedParams = params ? { ${Object.entries(queryParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": params.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {headerParamsMapping && typeSchemas.headerParams?.name && (\n <>\n {`const mappedHeaders = headers ? { ${Object.entries(headerParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": headers.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {parser === 'zod' && zodSchemas?.request?.name\n ? `const requestData = ${zodSchemas.request.name}.parse(data)`\n : typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {isFormData && typeSchemas?.request?.name && 'const formData = buildFormData(requestData)'}\n <br />\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n </>\n )\n}\n\nClient.getParams = getParams\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\nimport { Client } from './Client.tsx'\n\ntype Props = {\n /**\n * Name of the class\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = ClassClient.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n return `${jsdoc}async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function ClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\n #config: Partial<RequestConfig> & { client?: Client }\n\n constructor(config: Partial<RequestConfig> & { client?: Client } = {}) {\n this.#config = config\n }\n\n${methods.join('\\n\\n')}\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nClassClient.getParams = Client.getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport { Const, File } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps): FabricReactNode {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Client } from './Client.tsx'\n\ntype Props = {\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = Client.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n // Indent static method by 2 spaces, body by 4 spaces (matching snapshot)\n return `${jsdoc} static async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function StaticClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\\n static #config: Partial<RequestConfig> & { client?: Client } = {}\\n\\n${methods.join('\\n\\n')}\\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nStaticClassClient.getParams = Client.getParams\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-C1_xRkKa.cjs');
|
|
2
|
-
let _kubb_core_utils = require("@kubb/core/utils");
|
|
3
2
|
let _kubb_plugin_oas_utils = require("@kubb/plugin-oas/utils");
|
|
4
3
|
let _kubb_react_fabric = require("@kubb/react-fabric");
|
|
4
|
+
let _kubb_core_utils = require("@kubb/core/utils");
|
|
5
5
|
let _kubb_oas = require("@kubb/oas");
|
|
6
6
|
let _kubb_react_fabric_jsx_runtime = require("@kubb/react-fabric/jsx-runtime");
|
|
7
7
|
|
|
@@ -486,4 +486,4 @@ Object.defineProperty(exports, 'Url', {
|
|
|
486
486
|
return Url;
|
|
487
487
|
}
|
|
488
488
|
});
|
|
489
|
-
//# sourceMappingURL=StaticClassClient-
|
|
489
|
+
//# sourceMappingURL=StaticClassClient-zUX04A4W.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticClassClient-D7DWLX5M.cjs","names":["getParams","FunctionParams","URLPath","File","Function","Const","FunctionParams","URLPath","File","Function","buildHeaders","buildGenerics","buildClientParams","FunctionParams","buildRequestDataLine","buildFormDataLine","buildReturnStatement","generateMethod","URLPath","File","URLPath","File","Const","FunctionParams","URLPath","File"],"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/ClassClient.tsx","../src/components/Operations.tsx","../src/components/StaticClassClient.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { Const, File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...pathParams,\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({\n name,\n isExportable = true,\n isIndexable = true,\n typeSchemas,\n baseURL,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n // Generate pathParams mapping when paramsCasing is used\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && <br />}\n <Const name={'res'}>{`{ method: '${operation.method.toUpperCase()}', url: ${path.toTemplateString({ prefix: baseURL })} as const }`}</Const>\n <br />\n return res\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: FabricReactNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n\n // Generate parameter mappings when paramsCasing is used\n // Apply to pathParams, queryParams and headerParams\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n const queryParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.queryParams, { casing: paramsCasing }) : undefined\n const headerParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.headerParams, { casing: paramsCasing }) : undefined\n\n const headers = [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? (headerParamsMapping ? '...mappedHeaders' : '...headers') : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n isConfigurable,\n })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).url.toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: `\\`${baseURL}\\``,\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? (queryParamsMapping ? { value: 'mappedParams' } : {}) : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <>\n <br />\n\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client: request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && (\n <>\n <br />\n <br />\n </>\n )}\n {queryParamsMapping && typeSchemas.queryParams?.name && (\n <>\n {`const mappedParams = params ? { ${Object.entries(queryParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": params.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {headerParamsMapping && typeSchemas.headerParams?.name && (\n <>\n {`const mappedHeaders = headers ? { ${Object.entries(headerParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": headers.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {parser === 'zod' && zodSchemas?.request?.name\n ? `const requestData = ${zodSchemas.request.name}.parse(data)`\n : typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {isFormData && typeSchemas?.request?.name && 'const formData = buildFormData(requestData)'}\n <br />\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n </>\n )\n}\n\nClient.getParams = getParams\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\nimport { Client } from './Client.tsx'\n\ntype Props = {\n /**\n * Name of the class\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = ClassClient.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n return `${jsdoc}async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function ClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\n #config: Partial<RequestConfig> & { client?: Client }\n\n constructor(config: Partial<RequestConfig> & { client?: Client } = {}) {\n this.#config = config\n }\n\n${methods.join('\\n\\n')}\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nClassClient.getParams = Client.getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport { Const, File } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps): FabricReactNode {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Client } from './Client.tsx'\n\ntype Props = {\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = Client.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n // Indent static method by 2 spaces, body by 4 spaces (matching snapshot)\n return `${jsdoc} static async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function StaticClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\\n static #config: Partial<RequestConfig> & { client?: Client } = {}\\n\\n${methods.join('\\n\\n')}\\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nStaticClassClient.getParams = Client.getParams\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StaticClassClient-zUX04A4W.cjs","names":["getParams","FunctionParams","URLPath","File","Function","Const","FunctionParams","URLPath","File","Function","buildHeaders","buildGenerics","buildClientParams","FunctionParams","buildRequestDataLine","buildFormDataLine","buildReturnStatement","generateMethod","URLPath","File","URLPath","File","Const","FunctionParams","URLPath","File"],"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/ClassClient.tsx","../src/components/Operations.tsx","../src/components/StaticClassClient.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { Const, File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...pathParams,\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({\n name,\n isExportable = true,\n isIndexable = true,\n typeSchemas,\n baseURL,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n // Generate pathParams mapping when paramsCasing is used\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && <br />}\n <Const name={'res'}>{`{ method: '${operation.method.toUpperCase()}', url: ${path.toTemplateString({ prefix: baseURL })} as const }`}</Const>\n <br />\n return res\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getParamsMapping, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: FabricReactNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, {\n typed: true,\n casing: paramsCasing,\n }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n : 'Partial<RequestConfig> & { client?: Client }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props): FabricReactNode {\n const path = new URLPath(operation.path)\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n\n // Generate parameter mappings when paramsCasing is used\n // Apply to pathParams, queryParams and headerParams\n const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : undefined\n const queryParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.queryParams, { casing: paramsCasing }) : undefined\n const headerParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.headerParams, { casing: paramsCasing }) : undefined\n\n const headers = [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? (headerParamsMapping ? '...mappedHeaders' : '...headers') : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n isConfigurable,\n })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).url.toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: `\\`${baseURL}\\``,\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? (queryParamsMapping ? { value: 'mappedParams' } : {}) : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <>\n <br />\n\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client: request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {pathParamsMapping &&\n Object.entries(pathParamsMapping)\n .map(([originalName, camelCaseName]) => `const ${originalName} = ${camelCaseName}`)\n .join('\\n')}\n {pathParamsMapping && (\n <>\n <br />\n <br />\n </>\n )}\n {queryParamsMapping && typeSchemas.queryParams?.name && (\n <>\n {`const mappedParams = params ? { ${Object.entries(queryParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": params.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {headerParamsMapping && typeSchemas.headerParams?.name && (\n <>\n {`const mappedHeaders = headers ? { ${Object.entries(headerParamsMapping)\n .map(([originalName, camelCaseName]) => `\"${originalName}\": headers.${camelCaseName}`)\n .join(', ')} } : undefined`}\n <br />\n <br />\n </>\n )}\n {parser === 'zod' && zodSchemas?.request?.name\n ? `const requestData = ${zodSchemas.request.name}.parse(data)`\n : typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {isFormData && typeSchemas?.request?.name && 'const formData = buildFormData(requestData)'}\n <br />\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n </>\n )\n}\n\nClient.getParams = getParams\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\nimport { Client } from './Client.tsx'\n\ntype Props = {\n /**\n * Name of the class\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = ClassClient.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n return `${jsdoc}async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function ClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\n #config: Partial<RequestConfig> & { client?: Client }\n\n constructor(config: Partial<RequestConfig> & { client?: Client } = {}) {\n this.#config = config\n }\n\n${methods.join('\\n\\n')}\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nClassClient.getParams = Client.getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport { Const, File } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps): FabricReactNode {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Client } from './Client.tsx'\n\ntype Props = {\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: FabricReactNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n requestConfig: {\n mode: 'inlineSpread',\n },\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = Client.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = fetch, ...requestConfig } = mergeConfig(this.#config, config)',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n // Indent static method by 2 spaces, body by 4 spaces (matching snapshot)\n return `${jsdoc} static async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function StaticClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): FabricReactNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\\n static #config: Partial<RequestConfig> & { client?: Client } = {}\\n\\n${methods.join('\\n\\n')}\\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nStaticClassClient.getParams = Client.getParams\n"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/templates/clients/axios.source.ts
|
|
2
|
+
const source = "import type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'\nimport axios from 'axios'\n\ndeclare const AXIOS_BASE: string\ndeclare const AXIOS_HEADERS: string\n\n/**\n * Subset of AxiosRequestConfig\n */\nexport type RequestConfig<TData = unknown> = {\n baseURL?: string\n url?: string\n method?: 'GET' | 'PUT' | 'PATCH' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD'\n params?: unknown\n data?: TData | FormData\n responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'\n signal?: AbortSignal\n validateStatus?: (status: number) => boolean\n headers?: AxiosRequestConfig['headers']\n}\n\n/**\n * Subset of AxiosResponse\n */\nexport type ResponseConfig<TData = unknown> = {\n data: TData\n status: number\n statusText: string\n headers: AxiosResponse['headers']\n}\n\nexport type ResponseErrorConfig<TError = unknown> = AxiosError<TError>\n\nexport type Client = <TData, _TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>) => Promise<ResponseConfig<TData>>\n\nlet _config: Partial<RequestConfig> = {\n baseURL: typeof AXIOS_BASE !== 'undefined' ? AXIOS_BASE : undefined,\n headers: typeof AXIOS_HEADERS !== 'undefined' ? JSON.parse(AXIOS_HEADERS) : undefined,\n}\n\nexport const getConfig = () => _config\n\nexport const setConfig = (config: RequestConfig) => {\n _config = config\n return getConfig()\n}\n\nexport const mergeConfig = <T extends RequestConfig>(...configs: Array<Partial<T>>): Partial<T> => {\n return configs.reduce<Partial<T>>((merged, config) => {\n return {\n ...merged,\n ...config,\n headers: {\n ...merged.headers,\n ...config.headers,\n },\n }\n }, {})\n}\n\nexport const axiosInstance = axios.create(getConfig())\n\nexport const fetch = async <TData, TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {\n return axiosInstance.request<TData, ResponseConfig<TData>>(mergeConfig(getConfig(), config)).catch((e: AxiosError<TError>) => {\n throw e\n })\n}\n\nfetch.getConfig = getConfig\nfetch.setConfig = setConfig\n";
|
|
3
|
+
|
|
4
|
+
//#endregion
|
|
5
|
+
export { source as t };
|
|
6
|
+
//# sourceMappingURL=axios.source-CDcg9aL-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axios.source-CDcg9aL-.js","names":[],"sources":["../src/templates/clients/axios.source.ts"],"sourcesContent":["// @ts-expect-error - import attributes are handled at build time by importAttributeTextPlugin\nimport content from '../../../templates/clients/axios.ts' with { type: 'text' }\n\nexport const source = content as string\n"],"mappings":";AAAA,MAAa,SAAS"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/templates/clients/axios.source.ts
|
|
3
|
+
const source = "import type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'\nimport axios from 'axios'\n\ndeclare const AXIOS_BASE: string\ndeclare const AXIOS_HEADERS: string\n\n/**\n * Subset of AxiosRequestConfig\n */\nexport type RequestConfig<TData = unknown> = {\n baseURL?: string\n url?: string\n method?: 'GET' | 'PUT' | 'PATCH' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD'\n params?: unknown\n data?: TData | FormData\n responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'\n signal?: AbortSignal\n validateStatus?: (status: number) => boolean\n headers?: AxiosRequestConfig['headers']\n}\n\n/**\n * Subset of AxiosResponse\n */\nexport type ResponseConfig<TData = unknown> = {\n data: TData\n status: number\n statusText: string\n headers: AxiosResponse['headers']\n}\n\nexport type ResponseErrorConfig<TError = unknown> = AxiosError<TError>\n\nexport type Client = <TData, _TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>) => Promise<ResponseConfig<TData>>\n\nlet _config: Partial<RequestConfig> = {\n baseURL: typeof AXIOS_BASE !== 'undefined' ? AXIOS_BASE : undefined,\n headers: typeof AXIOS_HEADERS !== 'undefined' ? JSON.parse(AXIOS_HEADERS) : undefined,\n}\n\nexport const getConfig = () => _config\n\nexport const setConfig = (config: RequestConfig) => {\n _config = config\n return getConfig()\n}\n\nexport const mergeConfig = <T extends RequestConfig>(...configs: Array<Partial<T>>): Partial<T> => {\n return configs.reduce<Partial<T>>((merged, config) => {\n return {\n ...merged,\n ...config,\n headers: {\n ...merged.headers,\n ...config.headers,\n },\n }\n }, {})\n}\n\nexport const axiosInstance = axios.create(getConfig())\n\nexport const fetch = async <TData, TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {\n return axiosInstance.request<TData, ResponseConfig<TData>>(mergeConfig(getConfig(), config)).catch((e: AxiosError<TError>) => {\n throw e\n })\n}\n\nfetch.getConfig = getConfig\nfetch.setConfig = setConfig\n";
|
|
4
|
+
|
|
5
|
+
//#endregion
|
|
6
|
+
Object.defineProperty(exports, 'source', {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return source;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=axios.source-CRSmc9GC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axios.source-CRSmc9GC.cjs","names":[],"sources":["../src/templates/clients/axios.source.ts"],"sourcesContent":["// @ts-expect-error - import attributes are handled at build time by importAttributeTextPlugin\nimport content from '../../../templates/clients/axios.ts' with { type: 'text' }\n\nexport const source = content as string\n"],"mappings":";;AAAA,MAAa,SAAS"}
|
package/dist/clients/axios.d.cts
CHANGED
package/dist/clients/axios.d.ts
CHANGED
package/dist/clients/axios.js
CHANGED
package/dist/clients/fetch.d.cts
CHANGED
package/dist/clients/fetch.d.ts
CHANGED
package/dist/clients/fetch.js
CHANGED
package/dist/components.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_StaticClassClient = require('./StaticClassClient-
|
|
1
|
+
const require_StaticClassClient = require('./StaticClassClient-zUX04A4W.cjs');
|
|
2
2
|
|
|
3
3
|
exports.ClassClient = require_StaticClassClient.ClassClient;
|
|
4
4
|
exports.Client = require_StaticClassClient.Client;
|
package/dist/components.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __name } from "./chunk-
|
|
2
|
-
import { r as PluginClient } from "./types-
|
|
1
|
+
import { t as __name } from "./chunk-DOWcaBl9.cjs";
|
|
2
|
+
import { r as PluginClient } from "./types-B-chJOb6.cjs";
|
|
3
3
|
import { Operation } from "@kubb/oas";
|
|
4
4
|
import { OperationSchemas } from "@kubb/plugin-oas";
|
|
5
5
|
import { FunctionParams } from "@kubb/react-fabric";
|
package/dist/components.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __name } from "./chunk-
|
|
2
|
-
import { r as PluginClient } from "./types-
|
|
1
|
+
import { t as __name } from "./chunk-Cd3iupn7.js";
|
|
2
|
+
import { r as PluginClient } from "./types-BCu9gRSm.js";
|
|
3
3
|
import { OperationSchemas } from "@kubb/plugin-oas";
|
|
4
4
|
import { FunctionParams } from "@kubb/react-fabric";
|
|
5
5
|
import { Operation } from "@kubb/oas";
|
package/dist/components.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as Url, i as Client, n as Operations, r as ClassClient, t as StaticClassClient } from "./StaticClassClient-
|
|
1
|
+
import { a as Url, i as Client, n as Operations, r as ClassClient, t as StaticClassClient } from "./StaticClassClient-uqlvmwoJ.js";
|
|
2
2
|
|
|
3
3
|
export { ClassClient, Client, Operations, StaticClassClient, Url };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/templates/config.source.ts
|
|
3
|
+
const source = "export function buildFormData<T = unknown>(data: T): FormData {\n const formData = new FormData()\n\n function appendData(key: string, value: any) {\n if (value instanceof Blob) {\n formData.append(key, value)\n return\n }\n if (value instanceof Date) {\n formData.append(key, value.toISOString())\n return\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n formData.append(key, String(value))\n return\n }\n if (typeof value === 'string') {\n formData.append(key, value)\n return\n }\n if (typeof value === 'object') {\n formData.append(key, new Blob([JSON.stringify(value)], { type: 'application/json' }))\n return\n }\n }\n\n if (data) {\n Object.entries(data).forEach(([key, value]) => {\n if (value === undefined || value === null) return\n\n if (Array.isArray(value)) {\n for (const valueItem of value) {\n if (valueItem === undefined || valueItem === null) continue\n appendData(key, valueItem)\n }\n } else {\n appendData(key, value)\n }\n })\n }\n\n return formData\n}\n";
|
|
4
|
+
|
|
5
|
+
//#endregion
|
|
6
|
+
Object.defineProperty(exports, 'source', {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return source;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=config.source-CiegvD_s.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.source-CiegvD_s.cjs","names":[],"sources":["../src/templates/config.source.ts"],"sourcesContent":["// @ts-expect-error - import attributes are handled at build time by importAttributeTextPlugin\nimport content from '../../templates/config.ts' with { type: 'text' }\n\nexport const source = content as string\n"],"mappings":";;AAAA,MAAa,SAAS"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/templates/config.source.ts
|
|
2
|
+
const source = "export function buildFormData<T = unknown>(data: T): FormData {\n const formData = new FormData()\n\n function appendData(key: string, value: any) {\n if (value instanceof Blob) {\n formData.append(key, value)\n return\n }\n if (value instanceof Date) {\n formData.append(key, value.toISOString())\n return\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n formData.append(key, String(value))\n return\n }\n if (typeof value === 'string') {\n formData.append(key, value)\n return\n }\n if (typeof value === 'object') {\n formData.append(key, new Blob([JSON.stringify(value)], { type: 'application/json' }))\n return\n }\n }\n\n if (data) {\n Object.entries(data).forEach(([key, value]) => {\n if (value === undefined || value === null) return\n\n if (Array.isArray(value)) {\n for (const valueItem of value) {\n if (valueItem === undefined || valueItem === null) continue\n appendData(key, valueItem)\n }\n } else {\n appendData(key, value)\n }\n })\n }\n\n return formData\n}\n";
|
|
3
|
+
|
|
4
|
+
//#endregion
|
|
5
|
+
export { source as t };
|
|
6
|
+
//# sourceMappingURL=config.source-VWEtFolK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.source-VWEtFolK.js","names":[],"sources":["../src/templates/config.source.ts"],"sourcesContent":["// @ts-expect-error - import attributes are handled at build time by importAttributeTextPlugin\nimport content from '../../templates/config.ts' with { type: 'text' }\n\nexport const source = content as string\n"],"mappings":";AAAA,MAAa,SAAS"}
|