@kubb/plugin-client 4.17.1 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/{Operations-DNpUQb3J.cjs → StaticClassClient-Doy7nyLp.cjs} +138 -18
  2. package/dist/StaticClassClient-Doy7nyLp.cjs.map +1 -0
  3. package/dist/{Operations-CSMXl98_.js → StaticClassClient-yRrX6THy.js} +134 -19
  4. package/dist/StaticClassClient-yRrX6THy.js.map +1 -0
  5. package/dist/{chunk-CbDLau6x.cjs → chunk-C1_xRkKa.cjs} +10 -0
  6. package/dist/chunk-iVr_oF3V.js +9 -0
  7. package/dist/clients/axios.cjs +1 -1
  8. package/dist/clients/axios.cjs.map +1 -1
  9. package/dist/clients/axios.d.cts +1 -0
  10. package/dist/clients/axios.d.ts +1 -0
  11. package/dist/clients/axios.js +1 -0
  12. package/dist/clients/axios.js.map +1 -1
  13. package/dist/clients/fetch.cjs +1 -0
  14. package/dist/clients/fetch.cjs.map +1 -1
  15. package/dist/clients/fetch.d.cts +2 -0
  16. package/dist/clients/fetch.d.ts +2 -0
  17. package/dist/clients/fetch.js +2 -0
  18. package/dist/clients/fetch.js.map +1 -1
  19. package/dist/components.cjs +6 -5
  20. package/dist/components.d.cts +55 -6
  21. package/dist/components.d.ts +55 -6
  22. package/dist/components.js +2 -2
  23. package/dist/{generators-DPH1gCSf.cjs → generators-BPQFq13R.cjs} +203 -7
  24. package/dist/generators-BPQFq13R.cjs.map +1 -0
  25. package/dist/{generators-DPpE1g5P.js → generators-CtXa-3Fh.js} +194 -3
  26. package/dist/generators-CtXa-3Fh.js.map +1 -0
  27. package/dist/generators.cjs +3 -2
  28. package/dist/generators.d.cts +6 -2
  29. package/dist/generators.d.ts +6 -2
  30. package/dist/generators.js +2 -2
  31. package/dist/index.cjs +4 -4
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +2 -1
  34. package/dist/index.d.ts +2 -1
  35. package/dist/index.js +4 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/{types-CLOc9nuD.d.cts → types-Chp-emXk.d.cts} +4 -2
  38. package/dist/{types-Bw1u7Glb.d.ts → types-aqsuGVmg.d.ts} +4 -2
  39. package/package.json +8 -8
  40. package/src/components/Client.tsx +2 -2
  41. package/src/components/StaticClassClient.tsx +224 -0
  42. package/src/components/Url.tsx +2 -2
  43. package/src/components/index.ts +1 -0
  44. package/src/generators/__snapshots__/static/Pet.ts +186 -0
  45. package/src/generators/__snapshots__/static/Store.ts +105 -0
  46. package/src/generators/__snapshots__/static/User.ts +143 -0
  47. package/src/generators/index.ts +1 -0
  48. package/src/generators/staticClassClientGenerator.tsx +231 -0
  49. package/src/plugin.ts +4 -2
  50. package/src/types.ts +2 -1
  51. package/dist/Operations-CSMXl98_.js.map +0 -1
  52. package/dist/Operations-DNpUQb3J.cjs.map +0 -1
  53. package/dist/generators-DPH1gCSf.cjs.map +0 -1
  54. package/dist/generators-DPpE1g5P.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const require_chunk = require('./chunk-CbDLau6x.cjs');
1
+ const require_chunk = require('./chunk-C1_xRkKa.cjs');
2
2
  let _kubb_core_utils = require("@kubb/core/utils");
3
3
  let _kubb_plugin_oas_utils = require("@kubb/plugin-oas/utils");
4
4
  let _kubb_react_fabric = require("@kubb/react-fabric");
@@ -23,9 +23,10 @@ function getParams$1({ paramsType, paramsCasing, pathParamsType, typeSchemas })
23
23
  typed: true,
24
24
  casing: paramsCasing
25
25
  }),
26
- default: (0, _kubb_oas.isAllOptional)(typeSchemas.pathParams?.schema) ? "{}" : void 0
26
+ default: (0, _kubb_oas.getDefaultValue)(typeSchemas.pathParams?.schema)
27
27
  } : void 0 });
28
28
  }
29
+ require_chunk.__name(getParams$1, "getParams");
29
30
  function Url({ name, isExportable = true, isIndexable = true, typeSchemas, baseURL, paramsType, paramsCasing, pathParamsType, operation }) {
30
31
  const path = new _kubb_core_utils.URLPath(operation.path, { casing: paramsCasing });
31
32
  const params = getParams$1({
@@ -97,7 +98,7 @@ function getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isCo
97
98
  typed: true,
98
99
  casing: paramsCasing
99
100
  }),
100
- default: (0, _kubb_oas.isAllOptional)(typeSchemas.pathParams?.schema) ? "{}" : void 0
101
+ default: (0, _kubb_oas.getDefaultValue)(typeSchemas.pathParams?.schema)
101
102
  } : void 0,
102
103
  data: typeSchemas.request?.name ? {
103
104
  type: typeSchemas.request?.name,
@@ -189,10 +190,11 @@ Client.getParams = getParams;
189
190
 
190
191
  //#endregion
191
192
  //#region src/components/ClassClient.tsx
192
- function buildHeaders(contentType, hasHeaderParams) {
193
+ function buildHeaders$1(contentType, hasHeaderParams) {
193
194
  return [contentType !== "application/json" && contentType !== "multipart/form-data" ? `'Content-Type': '${contentType}'` : void 0, hasHeaderParams ? "...headers" : void 0].filter(Boolean);
194
195
  }
195
- function buildGenerics(typeSchemas) {
196
+ require_chunk.__name(buildHeaders$1, "buildHeaders");
197
+ function buildGenerics$1(typeSchemas) {
196
198
  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
197
199
  return [
198
200
  typeSchemas.response.name,
@@ -200,7 +202,8 @@ function buildGenerics(typeSchemas) {
200
202
  typeSchemas.request?.name || "unknown"
201
203
  ].filter(Boolean);
202
204
  }
203
- function buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers }) {
205
+ require_chunk.__name(buildGenerics$1, "buildGenerics");
206
+ function buildClientParams$1({ operation, path, baseURL, typeSchemas, isFormData, headers }) {
204
207
  return _kubb_react_fabric.FunctionParams.factory({ config: {
205
208
  mode: "object",
206
209
  children: {
@@ -214,26 +217,30 @@ function buildClientParams({ operation, path, baseURL, typeSchemas, isFormData,
214
217
  }
215
218
  } });
216
219
  }
217
- function buildRequestDataLine({ parser, zodSchemas, typeSchemas }) {
220
+ require_chunk.__name(buildClientParams$1, "buildClientParams");
221
+ function buildRequestDataLine$1({ parser, zodSchemas, typeSchemas }) {
218
222
  if (parser === "zod" && zodSchemas?.request?.name) return `const requestData = ${zodSchemas.request.name}.parse(data)`;
219
223
  if (typeSchemas?.request?.name) return "const requestData = data";
220
224
  return "";
221
225
  }
222
- function buildFormDataLine(isFormData, hasRequest) {
226
+ require_chunk.__name(buildRequestDataLine$1, "buildRequestDataLine");
227
+ function buildFormDataLine$1(isFormData, hasRequest) {
223
228
  return isFormData && hasRequest ? "const formData = buildFormData(requestData)" : "";
224
229
  }
225
- function buildReturnStatement({ dataReturnType, parser, zodSchemas }) {
230
+ require_chunk.__name(buildFormDataLine$1, "buildFormDataLine");
231
+ function buildReturnStatement$1({ dataReturnType, parser, zodSchemas }) {
226
232
  if (dataReturnType === "full" && parser === "zod" && zodSchemas) return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`;
227
233
  if (dataReturnType === "data" && parser === "zod" && zodSchemas) return `return ${zodSchemas.response.name}.parse(res.data)`;
228
234
  if (dataReturnType === "full" && parser === "client") return "return res";
229
235
  return "return res.data";
230
236
  }
231
- function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType }) {
237
+ require_chunk.__name(buildReturnStatement$1, "buildReturnStatement");
238
+ function generateMethod$1({ operation, name, typeSchemas, zodSchemas, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType }) {
232
239
  const path = new _kubb_core_utils.URLPath(operation.path, { casing: paramsCasing });
233
240
  const contentType = operation.getContentType();
234
241
  const isFormData = contentType === "multipart/form-data";
235
- const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name);
236
- const generics = buildGenerics(typeSchemas);
242
+ const headers = buildHeaders$1(contentType, !!typeSchemas.headerParams?.name);
243
+ const generics = buildGenerics$1(typeSchemas);
237
244
  const params = ClassClient.getParams({
238
245
  paramsType,
239
246
  paramsCasing,
@@ -241,7 +248,7 @@ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dat
241
248
  typeSchemas,
242
249
  isConfigurable: true
243
250
  });
244
- const clientParams = buildClientParams({
251
+ const clientParams = buildClientParams$1({
245
252
  operation,
246
253
  path,
247
254
  baseURL,
@@ -250,13 +257,13 @@ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dat
250
257
  headers
251
258
  });
252
259
  const jsdoc = (0, _kubb_core_utils.buildJSDoc)((0, _kubb_plugin_oas_utils.getComments)(operation));
253
- const requestDataLine = buildRequestDataLine({
260
+ const requestDataLine = buildRequestDataLine$1({
254
261
  parser,
255
262
  zodSchemas,
256
263
  typeSchemas
257
264
  });
258
- const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name);
259
- const returnStatement = buildReturnStatement({
265
+ const formDataLine = buildFormDataLine$1(isFormData, !!typeSchemas?.request?.name);
266
+ const returnStatement = buildReturnStatement$1({
260
267
  dataReturnType,
261
268
  parser,
262
269
  zodSchemas
@@ -271,6 +278,7 @@ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dat
271
278
  ].filter(Boolean).map((line) => ` ${line}`).join("\n");
272
279
  return `${jsdoc}async ${name}(${params.toConstructor()}) {\n${methodBody}\n }`;
273
280
  }
281
+ require_chunk.__name(generateMethod$1, "generateMethod");
274
282
  function ClassClient({ name, isExportable = true, isIndexable = true, operations, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType, children }) {
275
283
  const classCode = `export class ${name} {
276
284
  #client: typeof fetch
@@ -279,7 +287,7 @@ function ClassClient({ name, isExportable = true, isIndexable = true, operations
279
287
  this.#client = config.client || fetch
280
288
  }
281
289
 
282
- ${operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) => generateMethod({
290
+ ${operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) => generateMethod$1({
283
291
  operation,
284
292
  name: methodName,
285
293
  typeSchemas,
@@ -323,6 +331,112 @@ function Operations({ name, operations }) {
323
331
  });
324
332
  }
325
333
 
334
+ //#endregion
335
+ //#region src/components/StaticClassClient.tsx
336
+ function buildHeaders(contentType, hasHeaderParams) {
337
+ return [contentType !== "application/json" && contentType !== "multipart/form-data" ? `'Content-Type': '${contentType}'` : void 0, hasHeaderParams ? "...headers" : void 0].filter(Boolean);
338
+ }
339
+ function buildGenerics(typeSchemas) {
340
+ const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
341
+ return [
342
+ typeSchemas.response.name,
343
+ TError,
344
+ typeSchemas.request?.name || "unknown"
345
+ ].filter(Boolean);
346
+ }
347
+ function buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers }) {
348
+ return _kubb_react_fabric.FunctionParams.factory({ config: {
349
+ mode: "object",
350
+ children: {
351
+ method: { value: JSON.stringify(operation.method.toUpperCase()) },
352
+ url: { value: path.template },
353
+ baseURL: baseURL ? { value: JSON.stringify(baseURL) } : void 0,
354
+ params: typeSchemas.queryParams?.name ? {} : void 0,
355
+ data: typeSchemas.request?.name ? { value: isFormData ? "formData as FormData" : "requestData" } : void 0,
356
+ requestConfig: { mode: "inlineSpread" },
357
+ headers: headers.length ? { value: `{ ${headers.join(", ")}, ...requestConfig.headers }` } : void 0
358
+ }
359
+ } });
360
+ }
361
+ function buildRequestDataLine({ parser, zodSchemas, typeSchemas }) {
362
+ if (parser === "zod" && zodSchemas?.request?.name) return `const requestData = ${zodSchemas.request.name}.parse(data)`;
363
+ if (typeSchemas?.request?.name) return "const requestData = data";
364
+ return "";
365
+ }
366
+ function buildFormDataLine(isFormData, hasRequest) {
367
+ return isFormData && hasRequest ? "const formData = buildFormData(requestData)" : "";
368
+ }
369
+ function buildReturnStatement({ dataReturnType, parser, zodSchemas }) {
370
+ if (dataReturnType === "full" && parser === "zod" && zodSchemas) return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`;
371
+ if (dataReturnType === "data" && parser === "zod" && zodSchemas) return `return ${zodSchemas.response.name}.parse(res.data)`;
372
+ if (dataReturnType === "full" && parser === "client") return "return res";
373
+ return "return res.data";
374
+ }
375
+ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType }) {
376
+ const path = new _kubb_core_utils.URLPath(operation.path, { casing: paramsCasing });
377
+ const contentType = operation.getContentType();
378
+ const isFormData = contentType === "multipart/form-data";
379
+ const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name);
380
+ const generics = buildGenerics(typeSchemas);
381
+ const params = Client.getParams({
382
+ paramsType,
383
+ paramsCasing,
384
+ pathParamsType,
385
+ typeSchemas,
386
+ isConfigurable: true
387
+ });
388
+ const clientParams = buildClientParams({
389
+ operation,
390
+ path,
391
+ baseURL,
392
+ typeSchemas,
393
+ isFormData,
394
+ headers
395
+ });
396
+ const jsdoc = (0, _kubb_core_utils.buildJSDoc)((0, _kubb_plugin_oas_utils.getComments)(operation));
397
+ const requestDataLine = buildRequestDataLine({
398
+ parser,
399
+ zodSchemas,
400
+ typeSchemas
401
+ });
402
+ const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name);
403
+ const returnStatement = buildReturnStatement({
404
+ dataReturnType,
405
+ parser,
406
+ zodSchemas
407
+ });
408
+ const methodBody = [
409
+ "const { client: request = this.#client, ...requestConfig } = config",
410
+ "",
411
+ requestDataLine,
412
+ formDataLine,
413
+ `const res = await request<${generics.join(", ")}>(${clientParams.toCall()})`,
414
+ returnStatement
415
+ ].filter(Boolean).map((line) => ` ${line}`).join("\n");
416
+ return `${jsdoc} static async ${name}(${params.toConstructor()}) {\n${methodBody}\n }`;
417
+ }
418
+ function StaticClassClient({ name, isExportable = true, isIndexable = true, operations, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType, children }) {
419
+ const classCode = `export class ${name} {\n static #client: typeof fetch = fetch\n\n${operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) => generateMethod({
420
+ operation,
421
+ name: methodName,
422
+ typeSchemas,
423
+ zodSchemas,
424
+ baseURL,
425
+ dataReturnType,
426
+ parser,
427
+ paramsType,
428
+ paramsCasing,
429
+ pathParamsType
430
+ })).join("\n\n")}\n}`;
431
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File.Source, {
432
+ name,
433
+ isExportable,
434
+ isIndexable,
435
+ children: [classCode, children]
436
+ });
437
+ }
438
+ StaticClassClient.getParams = Client.getParams;
439
+
326
440
  //#endregion
327
441
  Object.defineProperty(exports, 'ClassClient', {
328
442
  enumerable: true,
@@ -342,10 +456,16 @@ Object.defineProperty(exports, 'Operations', {
342
456
  return Operations;
343
457
  }
344
458
  });
459
+ Object.defineProperty(exports, 'StaticClassClient', {
460
+ enumerable: true,
461
+ get: function () {
462
+ return StaticClassClient;
463
+ }
464
+ });
345
465
  Object.defineProperty(exports, 'Url', {
346
466
  enumerable: true,
347
467
  get: function () {
348
468
  return Url;
349
469
  }
350
470
  });
351
- //# sourceMappingURL=Operations-DNpUQb3J.cjs.map
471
+ //# sourceMappingURL=StaticClassClient-Doy7nyLp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticClassClient-Doy7nyLp.cjs","names":["getParams","FunctionParams","URLPath","File","Function","Const","FunctionParams","URLPath","File","Function","buildHeaders","buildGenerics","buildClientParams","FunctionParams","buildRequestDataLine","buildFormDataLine","buildReturnStatement","generateMethod","URLPath","File","URLPath","File","Const","FunctionParams","URLPath","File"],"sources":["../src/components/Url.tsx","../src/components/Client.tsx","../src/components/ClassClient.tsx","../src/components/Operations.tsx","../src/components/StaticClassClient.tsx"],"sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { Const, File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { KubbNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n\n baseURL: string | undefined\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n operation: Operation\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...pathParams,\n },\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n })\n}\n\nexport function Url({\n name,\n isExportable = true,\n isIndexable = true,\n typeSchemas,\n baseURL,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n}: Props): KubbNode {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function name={name} export={isExportable} params={params.toConstructor()}>\n <Const name={'res'}>{`{ method: '${operation.method.toUpperCase()}', url: ${path.toTemplateString({ prefix: baseURL })} as const }`}</Const>\n <br />\n return res\n </Function>\n </File.Source>\n )\n}\n\nUrl.getParams = getParams\n","import { URLPath } from '@kubb/core/utils'\n\nimport { getDefaultValue, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { KubbNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Url } from './Url.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n urlName?: string\n isExportable?: boolean\n isIndexable?: boolean\n isConfigurable?: boolean\n returnType?: string\n\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n operation: Operation\n children?: KubbNode\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['paramsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n isConfigurable: boolean\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable }: GetParamsProps) {\n if (paramsType === 'object') {\n const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n const children = {\n ...pathParams,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n }\n\n // Check if all children are optional or undefined\n const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children,\n default: allChildrenAreOptional ? '{}' : undefined,\n },\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n }\n : undefined,\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n default: getDefaultValue(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: isConfigurable\n ? {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n }\n : undefined,\n })\n}\n\nexport function Client({\n name,\n isExportable = true,\n isIndexable = true,\n returnType,\n typeSchemas,\n baseURL,\n dataReturnType,\n parser,\n zodSchemas,\n paramsType,\n paramsCasing,\n pathParamsType,\n operation,\n urlName,\n children,\n isConfigurable = true,\n}: Props): KubbNode {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n typeSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const generics = [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable })\n const urlParams = Url.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const clientParams = FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: urlName ? `${urlName}(${urlParams.toCall()}).url.toString()` : path.template,\n },\n baseURL:\n baseURL && !urlName\n ? {\n value: `\\`${baseURL}\\``,\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: isConfigurable\n ? {\n mode: 'inlineSpread',\n }\n : undefined,\n headers: headers.length\n ? {\n value: isConfigurable ? `{ ${headers.join(', ')}, ...requestConfig.headers }` : `{ ${headers.join(', ')} }`,\n }\n : undefined,\n },\n },\n })\n\n const childrenElement = children ? (\n children\n ) : (\n <>\n {dataReturnType === 'full' && parser === 'zod' && zodSchemas && `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`}\n {dataReturnType === 'data' && parser === 'zod' && zodSchemas && `return ${zodSchemas.response.name}.parse(res.data)`}\n {dataReturnType === 'full' && parser === 'client' && 'return res'}\n {dataReturnType === 'data' && parser === 'client' && 'return res.data'}\n </>\n )\n\n return (\n <>\n <br />\n\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n <Function\n name={name}\n async\n export={isExportable}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n returnType={returnType}\n >\n {isConfigurable ? 'const { client: request = fetch, ...requestConfig } = config' : ''}\n <br />\n <br />\n {parser === 'zod' && zodSchemas?.request?.name\n ? `const requestData = ${zodSchemas.request.name}.parse(data)`\n : typeSchemas?.request?.name && 'const requestData = data'}\n <br />\n {isFormData && typeSchemas?.request?.name && 'const formData = buildFormData(requestData)'}\n <br />\n {isConfigurable\n ? `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`\n : `const res = await fetch<${generics.join(', ')}>(${clientParams.toCall()})`}\n <br />\n {childrenElement}\n </Function>\n </File.Source>\n </>\n )\n}\n\nClient.getParams = getParams\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { KubbNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\n\nimport { Client } from './Client.tsx'\n\ntype Props = {\n /**\n * Name of the class\n */\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: KubbNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: {\n mode: 'inlineSpread',\n },\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = ClassClient.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = this.#client, ...requestConfig } = config',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n return `${jsdoc}async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function ClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): KubbNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\n #client: typeof fetch\n\n constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) {\n this.#client = config.client || fetch\n }\n\n${methods.join('\\n\\n')}\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nClassClient.getParams = Client.getParams\n","import { URLPath } from '@kubb/core/utils'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport { Const, File } from '@kubb/react-fabric'\nimport type { KubbNode } from '@kubb/react-fabric/types'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps): 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\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n","import { buildJSDoc, URLPath } from '@kubb/core/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments } from '@kubb/plugin-oas/utils'\nimport { File, FunctionParams } from '@kubb/react-fabric'\nimport type { KubbNode } from '@kubb/react-fabric/types'\nimport type { PluginClient } from '../types.ts'\nimport { Client } from './Client.tsx'\n\ntype Props = {\n name: string\n isExportable?: boolean\n isIndexable?: boolean\n operations: Array<{\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n }>\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n paramsType: PluginClient['resolvedOptions']['pathParamsType']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n children?: KubbNode\n}\n\ntype GenerateMethodProps = {\n operation: Operation\n name: string\n typeSchemas: OperationSchemas\n zodSchemas: OperationSchemas | undefined\n baseURL: string | undefined\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n paramsType: PluginClient['resolvedOptions']['paramsType']\n paramsCasing: PluginClient['resolvedOptions']['paramsCasing']\n pathParamsType: PluginClient['resolvedOptions']['pathParamsType']\n}\n\nfunction buildHeaders(contentType: string, hasHeaderParams: boolean): Array<string> {\n return [\n contentType !== 'application/json' && contentType !== 'multipart/form-data' ? `'Content-Type': '${contentType}'` : undefined,\n hasHeaderParams ? '...headers' : undefined,\n ].filter(Boolean) as Array<string>\n}\n\nfunction buildGenerics(typeSchemas: OperationSchemas): Array<string> {\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n return [typeSchemas.response.name, TError, typeSchemas.request?.name || 'unknown'].filter(Boolean)\n}\n\nfunction buildClientParams({\n operation,\n path,\n baseURL,\n typeSchemas,\n isFormData,\n headers,\n}: {\n operation: Operation\n path: URLPath\n baseURL: string | undefined\n typeSchemas: OperationSchemas\n isFormData: boolean\n headers: Array<string>\n}) {\n return FunctionParams.factory({\n config: {\n mode: 'object',\n children: {\n method: {\n value: JSON.stringify(operation.method.toUpperCase()),\n },\n url: {\n value: path.template,\n },\n baseURL: baseURL\n ? {\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typeSchemas.queryParams?.name ? {} : undefined,\n data: typeSchemas.request?.name\n ? {\n value: isFormData ? 'formData as FormData' : 'requestData',\n }\n : undefined,\n requestConfig: {\n mode: 'inlineSpread',\n },\n headers: headers.length\n ? {\n value: `{ ${headers.join(', ')}, ...requestConfig.headers }`,\n }\n : undefined,\n },\n },\n })\n}\n\nfunction buildRequestDataLine({\n parser,\n zodSchemas,\n typeSchemas,\n}: {\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n typeSchemas: OperationSchemas\n}): string {\n if (parser === 'zod' && zodSchemas?.request?.name) {\n return `const requestData = ${zodSchemas.request.name}.parse(data)`\n }\n if (typeSchemas?.request?.name) {\n return 'const requestData = data'\n }\n return ''\n}\n\nfunction buildFormDataLine(isFormData: boolean, hasRequest: boolean): string {\n return isFormData && hasRequest ? 'const formData = buildFormData(requestData)' : ''\n}\n\nfunction buildReturnStatement({\n dataReturnType,\n parser,\n zodSchemas,\n}: {\n dataReturnType: PluginClient['resolvedOptions']['dataReturnType']\n parser: PluginClient['resolvedOptions']['parser'] | undefined\n zodSchemas: OperationSchemas | undefined\n}): string {\n if (dataReturnType === 'full' && parser === 'zod' && zodSchemas) {\n return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`\n }\n if (dataReturnType === 'data' && parser === 'zod' && zodSchemas) {\n return `return ${zodSchemas.response.name}.parse(res.data)`\n }\n if (dataReturnType === 'full' && parser === 'client') {\n return 'return res'\n }\n return 'return res.data'\n}\n\nfunction generateMethod({\n operation,\n name,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n}: GenerateMethodProps): string {\n const path = new URLPath(operation.path, { casing: paramsCasing })\n const contentType = operation.getContentType()\n const isFormData = contentType === 'multipart/form-data'\n const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name)\n const generics = buildGenerics(typeSchemas)\n const params = Client.getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isConfigurable: true })\n const clientParams = buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers })\n const jsdoc = buildJSDoc(getComments(operation))\n\n const requestDataLine = buildRequestDataLine({ parser, zodSchemas, typeSchemas })\n const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name)\n const returnStatement = buildReturnStatement({ dataReturnType, parser, zodSchemas })\n\n const methodBody = [\n 'const { client: request = this.#client, ...requestConfig } = config',\n '',\n requestDataLine,\n formDataLine,\n `const res = await request<${generics.join(', ')}>(${clientParams.toCall()})`,\n returnStatement,\n ]\n .filter(Boolean)\n .map((line) => ` ${line}`)\n .join('\\n')\n\n // Indent static method by 2 spaces, body by 4 spaces (matching snapshot)\n return `${jsdoc} static async ${name}(${params.toConstructor()}) {\\n${methodBody}\\n }`\n}\n\nexport function StaticClassClient({\n name,\n isExportable = true,\n isIndexable = true,\n operations,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n children,\n}: Props): KubbNode {\n const methods = operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) =>\n generateMethod({\n operation,\n name: methodName,\n typeSchemas,\n zodSchemas,\n baseURL,\n dataReturnType,\n parser,\n paramsType,\n paramsCasing,\n pathParamsType,\n }),\n )\n\n const classCode = `export class ${name} {\\n static #client: typeof fetch = fetch\\n\\n${methods.join('\\n\\n')}\\n}`\n\n return (\n <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n {classCode}\n {children}\n </File.Source>\n )\n}\nStaticClassClient.getParams = Client.getParams\n"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { t as __name } from "./chunk-iVr_oF3V.js";
1
2
  import { URLPath, buildJSDoc } from "@kubb/core/utils";
2
3
  import { getComments, getPathParams } from "@kubb/plugin-oas/utils";
3
4
  import { Const, File, Function, FunctionParams } from "@kubb/react-fabric";
4
- import { isAllOptional, isOptional } from "@kubb/oas";
5
+ import { getDefaultValue, isOptional } from "@kubb/oas";
5
6
  import { Fragment, jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
6
7
 
7
8
  //#region src/components/Url.tsx
@@ -22,9 +23,10 @@ function getParams$1({ paramsType, paramsCasing, pathParamsType, typeSchemas })
22
23
  typed: true,
23
24
  casing: paramsCasing
24
25
  }),
25
- default: isAllOptional(typeSchemas.pathParams?.schema) ? "{}" : void 0
26
+ default: getDefaultValue(typeSchemas.pathParams?.schema)
26
27
  } : void 0 });
27
28
  }
29
+ __name(getParams$1, "getParams");
28
30
  function Url({ name, isExportable = true, isIndexable = true, typeSchemas, baseURL, paramsType, paramsCasing, pathParamsType, operation }) {
29
31
  const path = new URLPath(operation.path, { casing: paramsCasing });
30
32
  const params = getParams$1({
@@ -96,7 +98,7 @@ function getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas, isCo
96
98
  typed: true,
97
99
  casing: paramsCasing
98
100
  }),
99
- default: isAllOptional(typeSchemas.pathParams?.schema) ? "{}" : void 0
101
+ default: getDefaultValue(typeSchemas.pathParams?.schema)
100
102
  } : void 0,
101
103
  data: typeSchemas.request?.name ? {
102
104
  type: typeSchemas.request?.name,
@@ -188,10 +190,11 @@ Client.getParams = getParams;
188
190
 
189
191
  //#endregion
190
192
  //#region src/components/ClassClient.tsx
191
- function buildHeaders(contentType, hasHeaderParams) {
193
+ function buildHeaders$1(contentType, hasHeaderParams) {
192
194
  return [contentType !== "application/json" && contentType !== "multipart/form-data" ? `'Content-Type': '${contentType}'` : void 0, hasHeaderParams ? "...headers" : void 0].filter(Boolean);
193
195
  }
194
- function buildGenerics(typeSchemas) {
196
+ __name(buildHeaders$1, "buildHeaders");
197
+ function buildGenerics$1(typeSchemas) {
195
198
  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
196
199
  return [
197
200
  typeSchemas.response.name,
@@ -199,7 +202,8 @@ function buildGenerics(typeSchemas) {
199
202
  typeSchemas.request?.name || "unknown"
200
203
  ].filter(Boolean);
201
204
  }
202
- function buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers }) {
205
+ __name(buildGenerics$1, "buildGenerics");
206
+ function buildClientParams$1({ operation, path, baseURL, typeSchemas, isFormData, headers }) {
203
207
  return FunctionParams.factory({ config: {
204
208
  mode: "object",
205
209
  children: {
@@ -213,26 +217,30 @@ function buildClientParams({ operation, path, baseURL, typeSchemas, isFormData,
213
217
  }
214
218
  } });
215
219
  }
216
- function buildRequestDataLine({ parser, zodSchemas, typeSchemas }) {
220
+ __name(buildClientParams$1, "buildClientParams");
221
+ function buildRequestDataLine$1({ parser, zodSchemas, typeSchemas }) {
217
222
  if (parser === "zod" && zodSchemas?.request?.name) return `const requestData = ${zodSchemas.request.name}.parse(data)`;
218
223
  if (typeSchemas?.request?.name) return "const requestData = data";
219
224
  return "";
220
225
  }
221
- function buildFormDataLine(isFormData, hasRequest) {
226
+ __name(buildRequestDataLine$1, "buildRequestDataLine");
227
+ function buildFormDataLine$1(isFormData, hasRequest) {
222
228
  return isFormData && hasRequest ? "const formData = buildFormData(requestData)" : "";
223
229
  }
224
- function buildReturnStatement({ dataReturnType, parser, zodSchemas }) {
230
+ __name(buildFormDataLine$1, "buildFormDataLine");
231
+ function buildReturnStatement$1({ dataReturnType, parser, zodSchemas }) {
225
232
  if (dataReturnType === "full" && parser === "zod" && zodSchemas) return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`;
226
233
  if (dataReturnType === "data" && parser === "zod" && zodSchemas) return `return ${zodSchemas.response.name}.parse(res.data)`;
227
234
  if (dataReturnType === "full" && parser === "client") return "return res";
228
235
  return "return res.data";
229
236
  }
230
- function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType }) {
237
+ __name(buildReturnStatement$1, "buildReturnStatement");
238
+ function generateMethod$1({ operation, name, typeSchemas, zodSchemas, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType }) {
231
239
  const path = new URLPath(operation.path, { casing: paramsCasing });
232
240
  const contentType = operation.getContentType();
233
241
  const isFormData = contentType === "multipart/form-data";
234
- const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name);
235
- const generics = buildGenerics(typeSchemas);
242
+ const headers = buildHeaders$1(contentType, !!typeSchemas.headerParams?.name);
243
+ const generics = buildGenerics$1(typeSchemas);
236
244
  const params = ClassClient.getParams({
237
245
  paramsType,
238
246
  paramsCasing,
@@ -240,7 +248,7 @@ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dat
240
248
  typeSchemas,
241
249
  isConfigurable: true
242
250
  });
243
- const clientParams = buildClientParams({
251
+ const clientParams = buildClientParams$1({
244
252
  operation,
245
253
  path,
246
254
  baseURL,
@@ -249,13 +257,13 @@ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dat
249
257
  headers
250
258
  });
251
259
  const jsdoc = buildJSDoc(getComments(operation));
252
- const requestDataLine = buildRequestDataLine({
260
+ const requestDataLine = buildRequestDataLine$1({
253
261
  parser,
254
262
  zodSchemas,
255
263
  typeSchemas
256
264
  });
257
- const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name);
258
- const returnStatement = buildReturnStatement({
265
+ const formDataLine = buildFormDataLine$1(isFormData, !!typeSchemas?.request?.name);
266
+ const returnStatement = buildReturnStatement$1({
259
267
  dataReturnType,
260
268
  parser,
261
269
  zodSchemas
@@ -270,6 +278,7 @@ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dat
270
278
  ].filter(Boolean).map((line) => ` ${line}`).join("\n");
271
279
  return `${jsdoc}async ${name}(${params.toConstructor()}) {\n${methodBody}\n }`;
272
280
  }
281
+ __name(generateMethod$1, "generateMethod");
273
282
  function ClassClient({ name, isExportable = true, isIndexable = true, operations, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType, children }) {
274
283
  const classCode = `export class ${name} {
275
284
  #client: typeof fetch
@@ -278,7 +287,7 @@ function ClassClient({ name, isExportable = true, isIndexable = true, operations
278
287
  this.#client = config.client || fetch
279
288
  }
280
289
 
281
- ${operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) => generateMethod({
290
+ ${operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) => generateMethod$1({
282
291
  operation,
283
292
  name: methodName,
284
293
  typeSchemas,
@@ -323,5 +332,111 @@ function Operations({ name, operations }) {
323
332
  }
324
333
 
325
334
  //#endregion
326
- export { Url as i, ClassClient as n, Client as r, Operations as t };
327
- //# sourceMappingURL=Operations-CSMXl98_.js.map
335
+ //#region src/components/StaticClassClient.tsx
336
+ function buildHeaders(contentType, hasHeaderParams) {
337
+ return [contentType !== "application/json" && contentType !== "multipart/form-data" ? `'Content-Type': '${contentType}'` : void 0, hasHeaderParams ? "...headers" : void 0].filter(Boolean);
338
+ }
339
+ function buildGenerics(typeSchemas) {
340
+ const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
341
+ return [
342
+ typeSchemas.response.name,
343
+ TError,
344
+ typeSchemas.request?.name || "unknown"
345
+ ].filter(Boolean);
346
+ }
347
+ function buildClientParams({ operation, path, baseURL, typeSchemas, isFormData, headers }) {
348
+ return FunctionParams.factory({ config: {
349
+ mode: "object",
350
+ children: {
351
+ method: { value: JSON.stringify(operation.method.toUpperCase()) },
352
+ url: { value: path.template },
353
+ baseURL: baseURL ? { value: JSON.stringify(baseURL) } : void 0,
354
+ params: typeSchemas.queryParams?.name ? {} : void 0,
355
+ data: typeSchemas.request?.name ? { value: isFormData ? "formData as FormData" : "requestData" } : void 0,
356
+ requestConfig: { mode: "inlineSpread" },
357
+ headers: headers.length ? { value: `{ ${headers.join(", ")}, ...requestConfig.headers }` } : void 0
358
+ }
359
+ } });
360
+ }
361
+ function buildRequestDataLine({ parser, zodSchemas, typeSchemas }) {
362
+ if (parser === "zod" && zodSchemas?.request?.name) return `const requestData = ${zodSchemas.request.name}.parse(data)`;
363
+ if (typeSchemas?.request?.name) return "const requestData = data";
364
+ return "";
365
+ }
366
+ function buildFormDataLine(isFormData, hasRequest) {
367
+ return isFormData && hasRequest ? "const formData = buildFormData(requestData)" : "";
368
+ }
369
+ function buildReturnStatement({ dataReturnType, parser, zodSchemas }) {
370
+ if (dataReturnType === "full" && parser === "zod" && zodSchemas) return `return {...res, data: ${zodSchemas.response.name}.parse(res.data)}`;
371
+ if (dataReturnType === "data" && parser === "zod" && zodSchemas) return `return ${zodSchemas.response.name}.parse(res.data)`;
372
+ if (dataReturnType === "full" && parser === "client") return "return res";
373
+ return "return res.data";
374
+ }
375
+ function generateMethod({ operation, name, typeSchemas, zodSchemas, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType }) {
376
+ const path = new URLPath(operation.path, { casing: paramsCasing });
377
+ const contentType = operation.getContentType();
378
+ const isFormData = contentType === "multipart/form-data";
379
+ const headers = buildHeaders(contentType, !!typeSchemas.headerParams?.name);
380
+ const generics = buildGenerics(typeSchemas);
381
+ const params = Client.getParams({
382
+ paramsType,
383
+ paramsCasing,
384
+ pathParamsType,
385
+ typeSchemas,
386
+ isConfigurable: true
387
+ });
388
+ const clientParams = buildClientParams({
389
+ operation,
390
+ path,
391
+ baseURL,
392
+ typeSchemas,
393
+ isFormData,
394
+ headers
395
+ });
396
+ const jsdoc = buildJSDoc(getComments(operation));
397
+ const requestDataLine = buildRequestDataLine({
398
+ parser,
399
+ zodSchemas,
400
+ typeSchemas
401
+ });
402
+ const formDataLine = buildFormDataLine(isFormData, !!typeSchemas?.request?.name);
403
+ const returnStatement = buildReturnStatement({
404
+ dataReturnType,
405
+ parser,
406
+ zodSchemas
407
+ });
408
+ const methodBody = [
409
+ "const { client: request = this.#client, ...requestConfig } = config",
410
+ "",
411
+ requestDataLine,
412
+ formDataLine,
413
+ `const res = await request<${generics.join(", ")}>(${clientParams.toCall()})`,
414
+ returnStatement
415
+ ].filter(Boolean).map((line) => ` ${line}`).join("\n");
416
+ return `${jsdoc} static async ${name}(${params.toConstructor()}) {\n${methodBody}\n }`;
417
+ }
418
+ function StaticClassClient({ name, isExportable = true, isIndexable = true, operations, baseURL, dataReturnType, parser, paramsType, paramsCasing, pathParamsType, children }) {
419
+ const classCode = `export class ${name} {\n static #client: typeof fetch = fetch\n\n${operations.map(({ operation, name: methodName, typeSchemas, zodSchemas }) => generateMethod({
420
+ operation,
421
+ name: methodName,
422
+ typeSchemas,
423
+ zodSchemas,
424
+ baseURL,
425
+ dataReturnType,
426
+ parser,
427
+ paramsType,
428
+ paramsCasing,
429
+ pathParamsType
430
+ })).join("\n\n")}\n}`;
431
+ return /* @__PURE__ */ jsxs(File.Source, {
432
+ name,
433
+ isExportable,
434
+ isIndexable,
435
+ children: [classCode, children]
436
+ });
437
+ }
438
+ StaticClassClient.getParams = Client.getParams;
439
+
440
+ //#endregion
441
+ export { Url as a, Client as i, Operations as n, ClassClient as r, StaticClassClient as t };
442
+ //# sourceMappingURL=StaticClassClient-yRrX6THy.js.map