@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.
- package/dist/{chunk-IQZOOJUP.js → chunk-E562RKCC.js} +3 -3
- package/dist/chunk-E562RKCC.js.map +1 -0
- package/dist/{chunk-BEM4SQUR.cjs → chunk-PXA2JOEN.cjs} +3 -3
- package/dist/chunk-PXA2JOEN.cjs.map +1 -0
- package/dist/components.cjs +2 -2
- package/dist/components.js +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.js +1 -1
- package/package.json +12 -12
- package/src/components/Client.tsx +1 -1
- package/src/components/Operations.tsx +1 -1
- package/dist/chunk-BEM4SQUR.cjs.map +0 -1
- package/dist/chunk-IQZOOJUP.js.map +0 -1
|
@@ -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-
|
|
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-
|
|
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"]}
|
package/dist/components.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkPXA2JOENcjs = require('./chunk-PXA2JOEN.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
exports.Client =
|
|
8
|
+
exports.Client = _chunkPXA2JOENcjs.Client; exports.Operations = _chunkPXA2JOENcjs.Operations;
|
|
9
9
|
//# sourceMappingURL=components.cjs.map
|
package/dist/components.js
CHANGED
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
|
|
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,
|
|
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,
|
|
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:
|
|
67
|
-
client:
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-client",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
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.
|
|
68
|
-
"@kubb/fs": "3.0.0-alpha.
|
|
69
|
-
"@kubb/oas": "3.0.0-alpha.
|
|
70
|
-
"@kubb/parser-ts": "3.0.0-alpha.
|
|
71
|
-
"@kubb/plugin-oas": "3.0.0-alpha.
|
|
72
|
-
"@kubb/plugin-ts": "3.0.0-alpha.
|
|
73
|
-
"@kubb/react": "3.0.0-alpha.
|
|
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.
|
|
82
|
-
"@kubb/config-ts": "3.0.0-alpha.
|
|
83
|
-
"@kubb/config-tsup": "3.0.0-alpha.
|
|
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.
|
|
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"]}
|