@kubb/plugin-client 3.0.0-alpha.7 → 3.0.0-alpha.8

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.
@@ -57,7 +57,7 @@ function Template({ name, generics, returnType, params, JSDoc, client }) {
57
57
  })
58
58
  }
59
59
  ` : void 0;
60
- return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, children: /* @__PURE__ */ jsxs(Function, { name, async: true, export: true, generics, returnType, params, JSDoc, children: [
60
+ return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxs(Function, { name, async: true, export: true, generics, returnType, params, JSDoc, children: [
61
61
  formData || "",
62
62
  /* @__PURE__ */ jsx(Function.Call, { name: "res", to: /* @__PURE__ */ jsx(Function, { name: "client", async: true, generics: client.generics, params: clientParams }) }),
63
63
  /* @__PURE__ */ jsx(Function.Return, { children: client.dataReturnType === "data" ? "res.data" : "res" })
@@ -169,7 +169,7 @@ function Template2({ name, operations }) {
169
169
  method: operation.method
170
170
  };
171
171
  });
172
- return /* @__PURE__ */ jsx2(File2.Source, { name, isExportable: true, children: /* @__PURE__ */ jsx2(Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
172
+ return /* @__PURE__ */ jsx2(File2.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx2(Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
173
173
  }
174
174
  function RootTemplate2({ children }) {
175
175
  const {
@@ -196,4 +196,4 @@ export {
196
196
  Client,
197
197
  Operations
198
198
  };
199
- //# sourceMappingURL=chunk-IQZOOJUP.js.map
199
+ //# sourceMappingURL=chunk-E562RKCC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\n\nimport { isOptional } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { KubbNode, Params } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: Params\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n client: {\n baseURL: string | undefined\n generics: string | string[]\n method: HttpMethod\n path: URLPath\n dataReturnType: PluginClient['options']['dataReturnType']\n withQueryParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, client }: TemplateProps): KubbNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n const clientParams: Params = {\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(client.method),\n },\n url: {\n type: 'string',\n value: client.path.template,\n },\n baseURL: client.baseURL\n ? {\n type: 'string',\n value: JSON.stringify(client.baseURL),\n }\n : undefined,\n params: client.withQueryParams\n ? {\n type: 'any',\n }\n : undefined,\n data: client.withData\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {formData || ''}\n <Function.Call name=\"res\" to={<Function name=\"client\" async generics={client.generics} params={clientParams} />} />\n <Function.Return>{client.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype ClientProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Client({ baseURL, Template = defaultTemplates.default }: ClientProps): KubbNode {\n const {\n plugin: {\n options: { client, dataReturnType, pathParamsType },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <Template\n name={name}\n params={{\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(schemas.pathParams, { typed: true }),\n },\n data: schemas.request?.name\n ? {\n type: schemas.request?.name,\n optional: isOptional(schemas.request?.schema),\n }\n : undefined,\n params: schemas.queryParams?.name\n ? {\n type: schemas.queryParams?.name,\n optional: isOptional(schemas.queryParams?.schema),\n }\n : undefined,\n headers: schemas.headerParams?.name\n ? {\n type: schemas.headerParams?.name,\n optional: isOptional(schemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n }}\n returnType={dataReturnType === 'data' ? `ResponseConfig<${schemas.response.name}>[\"data\"]` : `ResponseConfig<${schemas.response.name}>`}\n JSDoc={{\n comments: getComments(operation),\n }}\n client={{\n // only set baseURL from serverIndex(swagger) when no custom client(default) is used\n baseURL: client.importPath === '@kubb/plugin-client/client' ? baseURL : undefined,\n generics: [schemas.response.name, schemas.request?.name].filter(Boolean),\n dataReturnType,\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n contentType,\n }}\n />\n )\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nClient.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Client baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nClient.templates = defaultTemplates\n","import { URLPath } from '@kubb/core/utils'\nimport { useOperations } from '@kubb/plugin-oas/hooks'\nimport { Const, File, useApp } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n operations: Operation[]\n baseURL: string | undefined\n}\n\nfunction Template({ name, operations }: TemplateProps): KubbNode {\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 return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginClient>()\n const file = pluginManager.getFile({ name: 'operations', extName: '.ts', pluginKey })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Operations({ baseURL, Template = defaultTemplates.default }: Props): KubbNode {\n const operations = useOperations()\n\n return <Template baseURL={baseURL} name=\"operations\" operations={operations} />\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"],"mappings":"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","names":["Template","RootTemplate","URLPath","File","useApp","jsx","Template","RootTemplate","defaultTemplates"]}
@@ -57,7 +57,7 @@ function Template({ name, generics, returnType, params, JSDoc, client }) {
57
57
  })
58
58
  }
59
59
  ` : void 0;
60
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Source, { name, isExportable: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Function, { name, async: true, export: true, generics, returnType, params, JSDoc, children: [
60
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Function, { name, async: true, export: true, generics, returnType, params, JSDoc, children: [
61
61
  formData || "",
62
62
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Function.Call, { name: "res", to: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Function, { name: "client", async: true, generics: client.generics, params: clientParams }) }),
63
63
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Function.Return, { children: client.dataReturnType === "data" ? "res.data" : "res" })
@@ -169,7 +169,7 @@ function Template2({ name, operations }) {
169
169
  method: operation.method
170
170
  };
171
171
  });
172
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Source, { name, isExportable: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
172
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
173
173
  }
174
174
  function RootTemplate2({ children }) {
175
175
  const {
@@ -196,4 +196,4 @@ Operations.templates = defaultTemplates2;
196
196
 
197
197
 
198
198
  exports.Client = Client; exports.Operations = Operations;
199
- //# sourceMappingURL=chunk-BEM4SQUR.cjs.map
199
+ //# sourceMappingURL=chunk-PXA2JOEN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-client/dist/chunk-PXA2JOEN.cjs","../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["Template","RootTemplate","URLPath","jsx","File","useApp","defaultTemplates"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-client/dist/chunk-PXA2JOEN.cjs","sourcesContent":[null,"import { URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\n\nimport { isOptional } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { KubbNode, Params } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: Params\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n client: {\n baseURL: string | undefined\n generics: string | string[]\n method: HttpMethod\n path: URLPath\n dataReturnType: PluginClient['options']['dataReturnType']\n withQueryParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, client }: TemplateProps): KubbNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n const clientParams: Params = {\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(client.method),\n },\n url: {\n type: 'string',\n value: client.path.template,\n },\n baseURL: client.baseURL\n ? {\n type: 'string',\n value: JSON.stringify(client.baseURL),\n }\n : undefined,\n params: client.withQueryParams\n ? {\n type: 'any',\n }\n : undefined,\n data: client.withData\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {formData || ''}\n <Function.Call name=\"res\" to={<Function name=\"client\" async generics={client.generics} params={clientParams} />} />\n <Function.Return>{client.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype ClientProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Client({ baseURL, Template = defaultTemplates.default }: ClientProps): KubbNode {\n const {\n plugin: {\n options: { client, dataReturnType, pathParamsType },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <Template\n name={name}\n params={{\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(schemas.pathParams, { typed: true }),\n },\n data: schemas.request?.name\n ? {\n type: schemas.request?.name,\n optional: isOptional(schemas.request?.schema),\n }\n : undefined,\n params: schemas.queryParams?.name\n ? {\n type: schemas.queryParams?.name,\n optional: isOptional(schemas.queryParams?.schema),\n }\n : undefined,\n headers: schemas.headerParams?.name\n ? {\n type: schemas.headerParams?.name,\n optional: isOptional(schemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n }}\n returnType={dataReturnType === 'data' ? `ResponseConfig<${schemas.response.name}>[\"data\"]` : `ResponseConfig<${schemas.response.name}>`}\n JSDoc={{\n comments: getComments(operation),\n }}\n client={{\n // only set baseURL from serverIndex(swagger) when no custom client(default) is used\n baseURL: client.importPath === '@kubb/plugin-client/client' ? baseURL : undefined,\n generics: [schemas.response.name, schemas.request?.name].filter(Boolean),\n dataReturnType,\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n contentType,\n }}\n />\n )\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nClient.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Client baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nClient.templates = defaultTemplates\n","import { URLPath } from '@kubb/core/utils'\nimport { useOperations } from '@kubb/plugin-oas/hooks'\nimport { Const, File, useApp } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n operations: Operation[]\n baseURL: string | undefined\n}\n\nfunction Template({ name, operations }: TemplateProps): KubbNode {\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 return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginClient>()\n const file = pluginManager.getFile({ name: 'operations', extName: '.ts', pluginKey })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Operations({ baseURL, Template = defaultTemplates.default }: Props): KubbNode {\n const operations = useOperations()\n\n return <Template baseURL={baseURL} name=\"operations\" operations={operations} />\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"]}
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkBEM4SQURcjs = require('./chunk-BEM4SQUR.cjs');
4
+ var _chunkPXA2JOENcjs = require('./chunk-PXA2JOEN.cjs');
5
5
 
6
6
 
7
7
 
8
- exports.Client = _chunkBEM4SQURcjs.Client; exports.Operations = _chunkBEM4SQURcjs.Operations;
8
+ exports.Client = _chunkPXA2JOENcjs.Client; exports.Operations = _chunkPXA2JOENcjs.Operations;
9
9
  //# sourceMappingURL=components.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Client,
3
3
  Operations
4
- } from "./chunk-IQZOOJUP.js";
4
+ } from "./chunk-E562RKCC.js";
5
5
  export {
6
6
  Client,
7
7
  Operations
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
- var _chunkBEM4SQURcjs = require('./chunk-BEM4SQUR.cjs');
4
+ var _chunkPXA2JOENcjs = require('./chunk-PXA2JOEN.cjs');
5
5
 
6
6
  // src/plugin.ts
7
7
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
@@ -21,14 +21,14 @@ var clientParser = _pluginoas.createReactParser.call(void 0, {
21
21
  if (!options.templates.operations) {
22
22
  return null;
23
23
  }
24
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBEM4SQURcjs.Operations.File, { baseURL: options.baseURL, templates: options.templates.operations });
24
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPXA2JOENcjs.Operations.File, { baseURL: options.baseURL, templates: options.templates.operations });
25
25
  },
26
26
  Operation({ options, operation }) {
27
27
  const isEnabled = options.client.methods.some((method) => operation.method === method);
28
28
  if (!options.templates.client || !isEnabled) {
29
29
  return null;
30
30
  }
31
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBEM4SQURcjs.Client.File, { baseURL: options.baseURL, templates: options.templates.client });
31
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPXA2JOENcjs.Client.File, { baseURL: options.baseURL, templates: options.templates.client });
32
32
  }
33
33
  });
34
34
 
@@ -63,8 +63,8 @@ var pluginClient = _core.createPlugin.call(void 0, (options) => {
63
63
  },
64
64
  pathParamsType,
65
65
  templates: {
66
- operations: _chunkBEM4SQURcjs.Operations.templates,
67
- client: _chunkBEM4SQURcjs.Client.templates,
66
+ operations: _chunkPXA2JOENcjs.Operations.templates,
67
+ client: _chunkPXA2JOENcjs.Client.templates,
68
68
  ...templates
69
69
  },
70
70
  baseURL: void 0
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Client,
3
3
  Operations
4
- } from "./chunk-IQZOOJUP.js";
4
+ } from "./chunk-E562RKCC.js";
5
5
 
6
6
  // src/plugin.ts
7
7
  import path from "node:path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-client",
3
- "version": "3.0.0-alpha.7",
3
+ "version": "3.0.0-alpha.8",
4
4
  "description": "Generator plugin-client",
5
5
  "keywords": [
6
6
  "typescript",
@@ -64,13 +64,13 @@
64
64
  "!/**/__tests__/**"
65
65
  ],
66
66
  "dependencies": {
67
- "@kubb/core": "3.0.0-alpha.7",
68
- "@kubb/fs": "3.0.0-alpha.7",
69
- "@kubb/oas": "3.0.0-alpha.7",
70
- "@kubb/parser-ts": "3.0.0-alpha.7",
71
- "@kubb/plugin-oas": "3.0.0-alpha.7",
72
- "@kubb/plugin-ts": "3.0.0-alpha.7",
73
- "@kubb/react": "3.0.0-alpha.7"
67
+ "@kubb/core": "3.0.0-alpha.8",
68
+ "@kubb/fs": "3.0.0-alpha.8",
69
+ "@kubb/oas": "3.0.0-alpha.8",
70
+ "@kubb/parser-ts": "3.0.0-alpha.8",
71
+ "@kubb/plugin-oas": "3.0.0-alpha.8",
72
+ "@kubb/plugin-ts": "3.0.0-alpha.8",
73
+ "@kubb/react": "3.0.0-alpha.8"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/react": "^18.3.4",
@@ -78,13 +78,13 @@
78
78
  "react": "^18.3.1",
79
79
  "tsup": "^8.2.4",
80
80
  "typescript": "^5.5.4",
81
- "@kubb/config-biome": "3.0.0-alpha.7",
82
- "@kubb/config-ts": "3.0.0-alpha.7",
83
- "@kubb/config-tsup": "3.0.0-alpha.7"
81
+ "@kubb/config-biome": "3.0.0-alpha.8",
82
+ "@kubb/config-ts": "3.0.0-alpha.8",
83
+ "@kubb/config-tsup": "3.0.0-alpha.8"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "axios": "^1.7.2",
87
- "@kubb/react": "3.0.0-alpha.7"
87
+ "@kubb/react": "3.0.0-alpha.8"
88
88
  },
89
89
  "peerDependenciesMeta": {
90
90
  "axios": {
@@ -112,7 +112,7 @@ function Template({ name, generics, returnType, params, JSDoc, client }: Templat
112
112
  : undefined
113
113
 
114
114
  return (
115
- <File.Source name={name} isExportable>
115
+ <File.Source name={name} isExportable isIndexable>
116
116
  <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>
117
117
  {formData || ''}
118
118
  <Function.Call name="res" to={<Function name="client" async generics={client.generics} params={clientParams} />} />
@@ -26,7 +26,7 @@ function Template({ name, operations }: TemplateProps): KubbNode {
26
26
  }
27
27
  })
28
28
  return (
29
- <File.Source name={name} isExportable>
29
+ <File.Source name={name} isExportable isIndexable>
30
30
  <Const name={name} export asConst>
31
31
  {JSON.stringify(operationsObject, undefined, 2)}
32
32
  </Const>
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-client/dist/chunk-BEM4SQUR.cjs","../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["Template","RootTemplate","URLPath","jsx","File","useApp","defaultTemplates"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-client/dist/chunk-BEM4SQUR.cjs","sourcesContent":[null,"import { URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\n\nimport { isOptional } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { KubbNode, Params } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: Params\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n client: {\n baseURL: string | undefined\n generics: string | string[]\n method: HttpMethod\n path: URLPath\n dataReturnType: PluginClient['options']['dataReturnType']\n withQueryParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, client }: TemplateProps): KubbNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n const clientParams: Params = {\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(client.method),\n },\n url: {\n type: 'string',\n value: client.path.template,\n },\n baseURL: client.baseURL\n ? {\n type: 'string',\n value: JSON.stringify(client.baseURL),\n }\n : undefined,\n params: client.withQueryParams\n ? {\n type: 'any',\n }\n : undefined,\n data: client.withData\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable>\n <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {formData || ''}\n <Function.Call name=\"res\" to={<Function name=\"client\" async generics={client.generics} params={clientParams} />} />\n <Function.Return>{client.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype ClientProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Client({ baseURL, Template = defaultTemplates.default }: ClientProps): KubbNode {\n const {\n plugin: {\n options: { client, dataReturnType, pathParamsType },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <Template\n name={name}\n params={{\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(schemas.pathParams, { typed: true }),\n },\n data: schemas.request?.name\n ? {\n type: schemas.request?.name,\n optional: isOptional(schemas.request?.schema),\n }\n : undefined,\n params: schemas.queryParams?.name\n ? {\n type: schemas.queryParams?.name,\n optional: isOptional(schemas.queryParams?.schema),\n }\n : undefined,\n headers: schemas.headerParams?.name\n ? {\n type: schemas.headerParams?.name,\n optional: isOptional(schemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n }}\n returnType={dataReturnType === 'data' ? `ResponseConfig<${schemas.response.name}>[\"data\"]` : `ResponseConfig<${schemas.response.name}>`}\n JSDoc={{\n comments: getComments(operation),\n }}\n client={{\n // only set baseURL from serverIndex(swagger) when no custom client(default) is used\n baseURL: client.importPath === '@kubb/plugin-client/client' ? baseURL : undefined,\n generics: [schemas.response.name, schemas.request?.name].filter(Boolean),\n dataReturnType,\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n contentType,\n }}\n />\n )\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nClient.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Client baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nClient.templates = defaultTemplates\n","import { URLPath } from '@kubb/core/utils'\nimport { useOperations } from '@kubb/plugin-oas/hooks'\nimport { Const, File, useApp } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n operations: Operation[]\n baseURL: string | undefined\n}\n\nfunction Template({ name, operations }: TemplateProps): KubbNode {\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 return (\n <File.Source name={name} isExportable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginClient>()\n const file = pluginManager.getFile({ name: 'operations', extName: '.ts', pluginKey })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Operations({ baseURL, Template = defaultTemplates.default }: Props): KubbNode {\n const operations = useOperations()\n\n return <Template baseURL={baseURL} name=\"operations\" operations={operations} />\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { File, Function, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\n\nimport { isOptional } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { KubbNode, Params } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Parameters/options/props that need to be used\n */\n params: Params\n /**\n * Generics that needs to be added for TypeScript\n */\n generics?: string\n /**\n * ReturnType(see async for adding Promise type)\n */\n returnType?: string\n /**\n * Options for JSdocs\n */\n JSDoc?: {\n comments: string[]\n }\n client: {\n baseURL: string | undefined\n generics: string | string[]\n method: HttpMethod\n path: URLPath\n dataReturnType: PluginClient['options']['dataReturnType']\n withQueryParams: boolean\n withData: boolean\n withHeaders: boolean\n contentType: string\n }\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, client }: TemplateProps): KubbNode {\n const isFormData = client.contentType === 'multipart/form-data'\n const headers = [\n client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n client.withHeaders ? '...headers' : undefined,\n ]\n .filter(Boolean)\n .join(', ')\n const clientParams: Params = {\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(client.method),\n },\n url: {\n type: 'string',\n value: client.path.template,\n },\n baseURL: client.baseURL\n ? {\n type: 'string',\n value: JSON.stringify(client.baseURL),\n }\n : undefined,\n params: client.withQueryParams\n ? {\n type: 'any',\n }\n : undefined,\n data: client.withData\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n }\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable>\n <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n {formData || ''}\n <Function.Call name=\"res\" to={<Function name=\"client\" async generics={client.generics} params={clientParams} />} />\n <Function.Return>{client.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n plugin: {\n options: {\n client: { importPath },\n },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={'client'} path={importPath} />\n <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n <File.Import\n name={[schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean)}\n root={file.path}\n path={fileType.path}\n isTypeOnly\n />\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype ClientProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Client({ baseURL, Template = defaultTemplates.default }: ClientProps): KubbNode {\n const {\n plugin: {\n options: { client, dataReturnType, pathParamsType },\n },\n } = useApp<PluginClient>()\n\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const contentType = operation.getContentType()\n const name = getName(operation, { type: 'function' })\n const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n return (\n <Template\n name={name}\n params={{\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(schemas.pathParams, { typed: true }),\n },\n data: schemas.request?.name\n ? {\n type: schemas.request?.name,\n optional: isOptional(schemas.request?.schema),\n }\n : undefined,\n params: schemas.queryParams?.name\n ? {\n type: schemas.queryParams?.name,\n optional: isOptional(schemas.queryParams?.schema),\n }\n : undefined,\n headers: schemas.headerParams?.name\n ? {\n type: schemas.headerParams?.name,\n optional: isOptional(schemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n }}\n returnType={dataReturnType === 'data' ? `ResponseConfig<${schemas.response.name}>[\"data\"]` : `ResponseConfig<${schemas.response.name}>`}\n JSDoc={{\n comments: getComments(operation),\n }}\n client={{\n // only set baseURL from serverIndex(swagger) when no custom client(default) is used\n baseURL: client.importPath === '@kubb/plugin-client/client' ? baseURL : undefined,\n generics: [schemas.response.name, schemas.request?.name].filter(Boolean),\n dataReturnType,\n withQueryParams: !!schemas.queryParams?.name,\n withData: !!schemas.request?.name,\n withHeaders: !!schemas.headerParams?.name,\n method: operation.method,\n path: new URLPath(operation.path),\n contentType,\n }}\n />\n )\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nClient.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Client baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nClient.templates = defaultTemplates\n","import { URLPath } from '@kubb/core/utils'\nimport { useOperations } from '@kubb/plugin-oas/hooks'\nimport { Const, File, useApp } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n operations: Operation[]\n baseURL: string | undefined\n}\n\nfunction Template({ name, operations }: TemplateProps): KubbNode {\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 return (\n <File.Source name={name} isExportable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n\ntype RootTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginClient>()\n const file = pluginManager.getFile({ name: 'operations', extName: '.ts', pluginKey })\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Operations({ baseURL, Template = defaultTemplates.default }: Props): KubbNode {\n const operations = useOperations()\n\n return <Template baseURL={baseURL} name=\"operations\" operations={operations} />\n}\n\ntype FileProps = {\n baseURL: string | undefined\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations baseURL={baseURL} Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"],"mappings":"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","names":["Template","RootTemplate","URLPath","File","useApp","jsx","Template","RootTemplate","defaultTemplates"]}