@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.
- package/dist/{Operations-DNpUQb3J.cjs → StaticClassClient-Doy7nyLp.cjs} +138 -18
- package/dist/StaticClassClient-Doy7nyLp.cjs.map +1 -0
- package/dist/{Operations-CSMXl98_.js → StaticClassClient-yRrX6THy.js} +134 -19
- package/dist/StaticClassClient-yRrX6THy.js.map +1 -0
- package/dist/{chunk-CbDLau6x.cjs → chunk-C1_xRkKa.cjs} +10 -0
- package/dist/chunk-iVr_oF3V.js +9 -0
- package/dist/clients/axios.cjs +1 -1
- package/dist/clients/axios.cjs.map +1 -1
- package/dist/clients/axios.d.cts +1 -0
- package/dist/clients/axios.d.ts +1 -0
- package/dist/clients/axios.js +1 -0
- package/dist/clients/axios.js.map +1 -1
- package/dist/clients/fetch.cjs +1 -0
- package/dist/clients/fetch.cjs.map +1 -1
- package/dist/clients/fetch.d.cts +2 -0
- package/dist/clients/fetch.d.ts +2 -0
- package/dist/clients/fetch.js +2 -0
- package/dist/clients/fetch.js.map +1 -1
- package/dist/components.cjs +6 -5
- package/dist/components.d.cts +55 -6
- package/dist/components.d.ts +55 -6
- package/dist/components.js +2 -2
- package/dist/{generators-DPH1gCSf.cjs → generators-BPQFq13R.cjs} +203 -7
- package/dist/generators-BPQFq13R.cjs.map +1 -0
- package/dist/{generators-DPpE1g5P.js → generators-CtXa-3Fh.js} +194 -3
- package/dist/generators-CtXa-3Fh.js.map +1 -0
- package/dist/generators.cjs +3 -2
- package/dist/generators.d.cts +6 -2
- package/dist/generators.d.ts +6 -2
- package/dist/generators.js +2 -2
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/{types-CLOc9nuD.d.cts → types-Chp-emXk.d.cts} +4 -2
- package/dist/{types-Bw1u7Glb.d.ts → types-aqsuGVmg.d.ts} +4 -2
- package/package.json +8 -8
- package/src/components/Client.tsx +2 -2
- package/src/components/StaticClassClient.tsx +224 -0
- package/src/components/Url.tsx +2 -2
- package/src/components/index.ts +1 -0
- package/src/generators/__snapshots__/static/Pet.ts +186 -0
- package/src/generators/__snapshots__/static/Store.ts +105 -0
- package/src/generators/__snapshots__/static/User.ts +143 -0
- package/src/generators/index.ts +1 -0
- package/src/generators/staticClassClientGenerator.tsx +231 -0
- package/src/plugin.ts +4 -2
- package/src/types.ts +2 -1
- package/dist/Operations-CSMXl98_.js.map +0 -1
- package/dist/Operations-DNpUQb3J.cjs.map +0 -1
- package/dist/generators-DPH1gCSf.cjs.map +0 -1
- package/dist/generators-DPpE1g5P.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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=
|
|
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 {
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
226
|
+
__name(buildRequestDataLine$1, "buildRequestDataLine");
|
|
227
|
+
function buildFormDataLine$1(isFormData, hasRequest) {
|
|
222
228
|
return isFormData && hasRequest ? "const formData = buildFormData(requestData)" : "";
|
|
223
229
|
}
|
|
224
|
-
|
|
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
|
-
|
|
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
|
-
|
|
327
|
-
|
|
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
|