@kubb/plugin-ts 5.0.0-alpha.12 → 5.0.0-alpha.14
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/{Type-CX1HRooG.js → Type-C8EHVKjc.js} +6 -84
- package/dist/Type-C8EHVKjc.js.map +1 -0
- package/dist/{Type-Cat0_htq.cjs → Type-DrOq6-nh.cjs} +11 -139
- package/dist/Type-DrOq6-nh.cjs.map +1 -0
- package/dist/casing-Cp-jbC_k.js +84 -0
- package/dist/casing-Cp-jbC_k.js.map +1 -0
- package/dist/casing-D2uQKLWS.cjs +144 -0
- package/dist/casing-D2uQKLWS.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +2 -1
- package/dist/components.js +1 -1
- package/dist/{generators-DWBU-MuW.cjs → generators-B6JGhHkV.cjs} +54 -33
- package/dist/generators-B6JGhHkV.cjs.map +1 -0
- package/dist/{generators-CLuCmfUz.js → generators-BTTcjgbY.js} +52 -31
- package/dist/generators-BTTcjgbY.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.ts +1 -1
- package/dist/generators.js +1 -1
- package/dist/index-B5pSjbZv.d.ts +51 -0
- package/dist/index.cjs +15 -191
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -46
- package/dist/index.js +11 -187
- package/dist/index.js.map +1 -1
- package/dist/resolvers-C_vYX56l.js +183 -0
- package/dist/resolvers-C_vYX56l.js.map +1 -0
- package/dist/resolvers-DDZC7d43.cjs +193 -0
- package/dist/resolvers-DDZC7d43.cjs.map +1 -0
- package/dist/resolvers.cjs +4 -0
- package/dist/resolvers.d.ts +2 -0
- package/dist/resolvers.js +2 -0
- package/dist/{types-BA1ZCQ5p.d.ts → types-D9zzvE0V.d.ts} +40 -16
- package/package.json +12 -5
- package/src/components/Type.tsx +1 -0
- package/src/generators/typeGenerator.tsx +33 -14
- package/src/generators/utils.ts +18 -9
- package/src/index.ts +2 -2
- package/src/plugin.ts +55 -69
- package/src/printer.ts +5 -2
- package/src/resolvers/index.ts +2 -0
- package/src/{resolverTs.ts → resolvers/resolverTs.ts} +6 -89
- package/src/resolvers/resolverTsLegacy.ts +86 -0
- package/src/types.ts +39 -15
- package/dist/Type-CX1HRooG.js.map +0 -1
- package/dist/Type-Cat0_htq.cjs.map +0 -1
- package/dist/generators-CLuCmfUz.js.map +0 -1
- package/dist/generators-DWBU-MuW.cjs.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_casing = require("./casing-D2uQKLWS.cjs");
|
|
2
|
+
const require_Type = require("./Type-DrOq6-nh.cjs");
|
|
2
3
|
let _kubb_ast = require("@kubb/ast");
|
|
3
4
|
let _kubb_core = require("@kubb/core");
|
|
4
5
|
let _kubb_core_hooks = require("@kubb/core/hooks");
|
|
@@ -16,10 +17,10 @@ function buildParamsSchema({ params, node, resolver }) {
|
|
|
16
17
|
type: "object",
|
|
17
18
|
properties: params.map((param) => (0, _kubb_ast.createProperty)({
|
|
18
19
|
name: param.name,
|
|
20
|
+
required: param.required,
|
|
19
21
|
schema: (0, _kubb_ast.createSchema)({
|
|
20
22
|
type: "ref",
|
|
21
|
-
name: resolver.resolveParamName(node, param)
|
|
22
|
-
optional: !param.required
|
|
23
|
+
name: resolver.resolveParamName(node, param)
|
|
23
24
|
})
|
|
24
25
|
}))
|
|
25
26
|
});
|
|
@@ -53,14 +54,12 @@ function buildDataSchemaNode({ node, resolver }) {
|
|
|
53
54
|
}),
|
|
54
55
|
(0, _kubb_ast.createProperty)({
|
|
55
56
|
name: "pathParams",
|
|
57
|
+
required: pathParams.length > 0,
|
|
56
58
|
schema: pathParams.length > 0 ? buildParamsSchema({
|
|
57
59
|
params: pathParams,
|
|
58
60
|
node,
|
|
59
61
|
resolver
|
|
60
|
-
}) : (0, _kubb_ast.createSchema)({
|
|
61
|
-
type: "never",
|
|
62
|
-
optional: true
|
|
63
|
-
})
|
|
62
|
+
}) : (0, _kubb_ast.createSchema)({ type: "never" })
|
|
64
63
|
}),
|
|
65
64
|
(0, _kubb_ast.createProperty)({
|
|
66
65
|
name: "queryParams",
|
|
@@ -92,6 +91,7 @@ function buildDataSchemaNode({ node, resolver }) {
|
|
|
92
91
|
}),
|
|
93
92
|
(0, _kubb_ast.createProperty)({
|
|
94
93
|
name: "url",
|
|
94
|
+
required: true,
|
|
95
95
|
schema: (0, _kubb_ast.createSchema)({
|
|
96
96
|
type: "url",
|
|
97
97
|
path: node.path
|
|
@@ -111,6 +111,7 @@ function buildResponsesSchemaNode({ node, resolver }) {
|
|
|
111
111
|
type: "object",
|
|
112
112
|
properties: node.responses.map((res) => (0, _kubb_ast.createProperty)({
|
|
113
113
|
name: String(res.statusCode),
|
|
114
|
+
required: true,
|
|
114
115
|
schema: (0, _kubb_ast.createSchema)({
|
|
115
116
|
type: "ref",
|
|
116
117
|
name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
|
|
@@ -143,13 +144,10 @@ function buildGroupedParamsSchema({ params, parentName }) {
|
|
|
143
144
|
return (0, _kubb_ast.createSchema)({
|
|
144
145
|
type: "object",
|
|
145
146
|
properties: params.map((param) => {
|
|
146
|
-
let schema =
|
|
147
|
-
...param.schema,
|
|
148
|
-
optional: !param.required
|
|
149
|
-
};
|
|
147
|
+
let schema = param.schema;
|
|
150
148
|
if ((0, _kubb_ast.narrowSchema)(schema, "enum") && !schema.name && parentName) schema = {
|
|
151
149
|
...schema,
|
|
152
|
-
name:
|
|
150
|
+
name: require_casing.pascalCase([
|
|
153
151
|
parentName,
|
|
154
152
|
param.name,
|
|
155
153
|
"enum"
|
|
@@ -157,6 +155,7 @@ function buildGroupedParamsSchema({ params, parentName }) {
|
|
|
157
155
|
};
|
|
158
156
|
return (0, _kubb_ast.createProperty)({
|
|
159
157
|
name: param.name,
|
|
158
|
+
required: param.required,
|
|
160
159
|
schema
|
|
161
160
|
});
|
|
162
161
|
})
|
|
@@ -164,7 +163,7 @@ function buildGroupedParamsSchema({ params, parentName }) {
|
|
|
164
163
|
}
|
|
165
164
|
/**
|
|
166
165
|
* Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.
|
|
167
|
-
* Structure: `{ Response, Request
|
|
166
|
+
* Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.
|
|
168
167
|
* Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.
|
|
169
168
|
*
|
|
170
169
|
* @deprecated Legacy only — will be removed in v6.
|
|
@@ -198,17 +197,20 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
198
197
|
}) : (0, _kubb_ast.createSchema)({ type: "any" });
|
|
199
198
|
const properties = [(0, _kubb_ast.createProperty)({
|
|
200
199
|
name: "Response",
|
|
200
|
+
required: true,
|
|
201
201
|
schema: responseSchema
|
|
202
202
|
})];
|
|
203
203
|
if (!isGet && node.requestBody?.schema) properties.push((0, _kubb_ast.createProperty)({
|
|
204
204
|
name: "Request",
|
|
205
|
+
required: true,
|
|
205
206
|
schema: (0, _kubb_ast.createSchema)({
|
|
206
207
|
type: "ref",
|
|
207
208
|
name: resolver.resolveDataTypedName(node)
|
|
208
209
|
})
|
|
209
210
|
}));
|
|
210
|
-
|
|
211
|
+
if (node.parameters.some((p) => p.in === "query") && resolver.resolveQueryParamsTypedName) properties.push((0, _kubb_ast.createProperty)({
|
|
211
212
|
name: "QueryParams",
|
|
213
|
+
required: true,
|
|
212
214
|
schema: (0, _kubb_ast.createSchema)({
|
|
213
215
|
type: "ref",
|
|
214
216
|
name: resolver.resolveQueryParamsTypedName(node)
|
|
@@ -216,6 +218,7 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
216
218
|
}));
|
|
217
219
|
if (node.parameters.some((p) => p.in === "path") && resolver.resolvePathParamsTypedName) properties.push((0, _kubb_ast.createProperty)({
|
|
218
220
|
name: "PathParams",
|
|
221
|
+
required: true,
|
|
219
222
|
schema: (0, _kubb_ast.createSchema)({
|
|
220
223
|
type: "ref",
|
|
221
224
|
name: resolver.resolvePathParamsTypedName(node)
|
|
@@ -223,6 +226,7 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
223
226
|
}));
|
|
224
227
|
if (node.parameters.some((p) => p.in === "header") && resolver.resolveHeaderParamsTypedName) properties.push((0, _kubb_ast.createProperty)({
|
|
225
228
|
name: "HeaderParams",
|
|
229
|
+
required: true,
|
|
226
230
|
schema: (0, _kubb_ast.createSchema)({
|
|
227
231
|
type: "ref",
|
|
228
232
|
name: resolver.resolveHeaderParamsTypedName(node)
|
|
@@ -230,6 +234,7 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
230
234
|
}));
|
|
231
235
|
properties.push((0, _kubb_ast.createProperty)({
|
|
232
236
|
name: "Errors",
|
|
237
|
+
required: true,
|
|
233
238
|
schema: errorsSchema
|
|
234
239
|
}));
|
|
235
240
|
return (0, _kubb_ast.createSchema)({
|
|
@@ -273,7 +278,7 @@ function nameUnnamedEnums(node, parentName) {
|
|
|
273
278
|
schema(n) {
|
|
274
279
|
if (n.type === "enum" && !n.name) return {
|
|
275
280
|
...n,
|
|
276
|
-
name:
|
|
281
|
+
name: require_casing.pascalCase([parentName, "enum"].join(" "))
|
|
277
282
|
};
|
|
278
283
|
},
|
|
279
284
|
property(p) {
|
|
@@ -282,7 +287,7 @@ function nameUnnamedEnums(node, parentName) {
|
|
|
282
287
|
...p,
|
|
283
288
|
schema: {
|
|
284
289
|
...enumNode,
|
|
285
|
-
name:
|
|
290
|
+
name: require_casing.pascalCase([
|
|
286
291
|
parentName,
|
|
287
292
|
p.name,
|
|
288
293
|
"enum"
|
|
@@ -298,7 +303,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
298
303
|
name: "typescript",
|
|
299
304
|
type: "react",
|
|
300
305
|
Operation({ node, adapter, options }) {
|
|
301
|
-
const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, legacy } = options;
|
|
306
|
+
const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, legacy, transformers = [] } = options;
|
|
302
307
|
const { mode, getFile, resolveBanner, resolveFooter } = (0, _kubb_core_hooks.useKubb)();
|
|
303
308
|
const file = getFile({
|
|
304
309
|
name: node.operationId,
|
|
@@ -309,7 +314,8 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
309
314
|
const params = (0, _kubb_ast.applyParamsCasing)(node.parameters, paramsCasing);
|
|
310
315
|
function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
|
|
311
316
|
if (!schemaNode) return null;
|
|
312
|
-
const
|
|
317
|
+
const transformedNode = (0, _kubb_ast.transform)(schemaNode, (0, _kubb_ast.composeTransformers)(...transformers));
|
|
318
|
+
const imports = adapter.getImports(transformedNode, (schemaName) => ({
|
|
313
319
|
name: resolver.default(schemaName, "type"),
|
|
314
320
|
path: getFile({
|
|
315
321
|
name: schemaName,
|
|
@@ -329,7 +335,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
329
335
|
].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
|
|
330
336
|
name,
|
|
331
337
|
typedName,
|
|
332
|
-
node:
|
|
338
|
+
node: transformedNode,
|
|
333
339
|
description,
|
|
334
340
|
enumType,
|
|
335
341
|
enumKeyCasing,
|
|
@@ -337,13 +343,15 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
337
343
|
arrayType,
|
|
338
344
|
syntaxType,
|
|
339
345
|
resolver,
|
|
340
|
-
keysToOmit
|
|
346
|
+
keysToOmit,
|
|
347
|
+
legacy
|
|
341
348
|
})] });
|
|
342
349
|
}
|
|
343
350
|
const responseTypes = legacy ? node.responses.map((res) => {
|
|
344
351
|
const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
|
|
352
|
+
const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode);
|
|
345
353
|
return renderSchemaType({
|
|
346
|
-
node: res.schema ? nameUnnamedEnums(res.schema,
|
|
354
|
+
node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
|
|
347
355
|
name: responseName,
|
|
348
356
|
typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
|
|
349
357
|
description: res.description,
|
|
@@ -357,10 +365,10 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
357
365
|
keysToOmit: res.keysToOmit
|
|
358
366
|
}));
|
|
359
367
|
const requestType = node.requestBody?.schema ? renderSchemaType({
|
|
360
|
-
node: legacy ? nameUnnamedEnums(node.requestBody.schema,
|
|
368
|
+
node: legacy ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
|
|
361
369
|
name: resolver.resolveDataName(node),
|
|
362
370
|
typedName: resolver.resolveDataTypedName(node),
|
|
363
|
-
description: node.requestBody.schema.description,
|
|
371
|
+
description: node.requestBody.description ?? node.requestBody.schema.description,
|
|
364
372
|
keysToOmit: node.requestBody.keysToOmit
|
|
365
373
|
}) : null;
|
|
366
374
|
if (legacy) {
|
|
@@ -371,7 +379,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
371
379
|
pathParams.length > 0 ? renderSchemaType({
|
|
372
380
|
node: buildGroupedParamsSchema({
|
|
373
381
|
params: pathParams,
|
|
374
|
-
parentName:
|
|
382
|
+
parentName: baseResolver.resolvePathParamsName(node)
|
|
375
383
|
}),
|
|
376
384
|
name: resolver.resolvePathParamsName(node),
|
|
377
385
|
typedName: resolver.resolvePathParamsTypedName(node)
|
|
@@ -379,7 +387,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
379
387
|
queryParams.length > 0 ? renderSchemaType({
|
|
380
388
|
node: buildGroupedParamsSchema({
|
|
381
389
|
params: queryParams,
|
|
382
|
-
parentName:
|
|
390
|
+
parentName: baseResolver.resolveQueryParamsName(node)
|
|
383
391
|
}),
|
|
384
392
|
name: resolver.resolveQueryParamsName(node),
|
|
385
393
|
typedName: resolver.resolveQueryParamsTypedName(node)
|
|
@@ -387,7 +395,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
387
395
|
headerParams.length > 0 ? renderSchemaType({
|
|
388
396
|
node: buildGroupedParamsSchema({
|
|
389
397
|
params: headerParams,
|
|
390
|
-
parentName:
|
|
398
|
+
parentName: baseResolver.resolveHeaderParamsName(node)
|
|
391
399
|
}),
|
|
392
400
|
name: resolver.resolveHeaderParamsName(node),
|
|
393
401
|
typedName: resolver.resolveHeaderParamsTypedName(node)
|
|
@@ -419,8 +427,8 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
419
427
|
legacyParamTypes,
|
|
420
428
|
responseTypes,
|
|
421
429
|
requestType,
|
|
422
|
-
|
|
423
|
-
|
|
430
|
+
legacyResponseType,
|
|
431
|
+
legacyResponsesType
|
|
424
432
|
]
|
|
425
433
|
});
|
|
426
434
|
}
|
|
@@ -429,6 +437,16 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
429
437
|
name: resolver.resolveParamName(node, param),
|
|
430
438
|
typedName: resolver.resolveParamTypedName(node, param)
|
|
431
439
|
}));
|
|
440
|
+
const queryParamsList = params.filter((p) => p.in === "query");
|
|
441
|
+
const queryParamsType = queryParamsList.length > 0 ? renderSchemaType({
|
|
442
|
+
node: buildParamsSchema({
|
|
443
|
+
params: queryParamsList,
|
|
444
|
+
node,
|
|
445
|
+
resolver
|
|
446
|
+
}),
|
|
447
|
+
name: resolver.resolveQueryParamsName(node),
|
|
448
|
+
typedName: resolver.resolveQueryParamsTypedName(node)
|
|
449
|
+
}) : null;
|
|
432
450
|
const dataType = renderSchemaType({
|
|
433
451
|
node: buildDataSchemaNode({
|
|
434
452
|
node: {
|
|
@@ -465,6 +483,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
465
483
|
footer: resolveFooter(),
|
|
466
484
|
children: [
|
|
467
485
|
paramTypes,
|
|
486
|
+
queryParamsType,
|
|
468
487
|
responseTypes,
|
|
469
488
|
requestType,
|
|
470
489
|
dataType,
|
|
@@ -474,10 +493,11 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
474
493
|
});
|
|
475
494
|
},
|
|
476
495
|
Schema({ node, adapter, options }) {
|
|
477
|
-
const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver } = options;
|
|
496
|
+
const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, legacy, transformers = [] } = options;
|
|
478
497
|
const { mode, getFile, resolveBanner, resolveFooter } = (0, _kubb_core_hooks.useKubb)();
|
|
479
498
|
if (!node.name) return;
|
|
480
|
-
const
|
|
499
|
+
const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
|
|
500
|
+
const imports = adapter.getImports(transformedNode, (schemaName) => ({
|
|
481
501
|
name: resolver.default(schemaName, "type"),
|
|
482
502
|
path: getFile({
|
|
483
503
|
name: schemaName,
|
|
@@ -514,13 +534,14 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
514
534
|
].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
|
|
515
535
|
name: type.name,
|
|
516
536
|
typedName: type.typedName,
|
|
517
|
-
node,
|
|
537
|
+
node: transformedNode,
|
|
518
538
|
enumType,
|
|
519
539
|
enumKeyCasing,
|
|
520
540
|
optionalType,
|
|
521
541
|
arrayType,
|
|
522
542
|
syntaxType,
|
|
523
|
-
resolver
|
|
543
|
+
resolver,
|
|
544
|
+
legacy
|
|
524
545
|
})]
|
|
525
546
|
});
|
|
526
547
|
}
|
|
@@ -533,4 +554,4 @@ Object.defineProperty(exports, "typeGenerator", {
|
|
|
533
554
|
}
|
|
534
555
|
});
|
|
535
556
|
|
|
536
|
-
//# sourceMappingURL=generators-
|
|
557
|
+
//# sourceMappingURL=generators-B6JGhHkV.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators-B6JGhHkV.cjs","names":["pascalCase","File","Type","ENUM_TYPES_WITH_KEY_SUFFIX"],"sources":["../src/generators/utils.ts","../src/generators/typeGenerator.tsx"],"sourcesContent":["import { pascalCase } from '@internals/utils'\nimport { createProperty, createSchema, narrowSchema, transform } from '@kubb/ast'\nimport type { OperationNode, ParameterNode, SchemaNode } from '@kubb/ast/types'\nimport type { ResolverTs } from '../types.ts'\n\ntype BuildParamsSchemaOptions = {\n params: Array<ParameterNode>\n node: OperationNode\n resolver: ResolverTs\n}\n\n/**\n * Builds an `ObjectSchemaNode` for a group of parameters (path/query/header).\n * Each property is a `ref` schema pointing to the individually-resolved parameter type.\n * The ref name includes the parameter location so generated type names follow\n * the `<OperationId><Location><ParamName>` convention.\n */\nexport function buildParamsSchema({ params, node, resolver }: BuildParamsSchemaOptions): SchemaNode {\n return createSchema({\n type: 'object',\n properties: params.map((param) =>\n createProperty({\n name: param.name,\n required: param.required,\n schema: createSchema({\n type: 'ref',\n name: resolver.resolveParamName(node, param),\n }),\n }),\n ),\n })\n}\n\ntype BuildOperationSchemaOptions = {\n node: OperationNode\n resolver: ResolverTs\n}\n\n/**\n * Builds an `ObjectSchemaNode` representing the `<OperationId>RequestConfig` type:\n * - `data` → request body ref (optional) or `never`\n * - `pathParams` → inline object of path param refs, or `never`\n * - `queryParams` → inline object of query param refs (optional), or `never`\n * - `headerParams` → inline object of header param refs (optional), or `never`\n * - `url` → Express-style template literal (plugin-ts extension, handled by printer)\n */\nexport function buildDataSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode {\n const pathParams = node.parameters.filter((p) => p.in === 'path')\n const queryParams = node.parameters.filter((p) => p.in === 'query')\n const headerParams = node.parameters.filter((p) => p.in === 'header')\n\n return createSchema({\n type: 'object',\n deprecated: node.deprecated,\n properties: [\n createProperty({\n name: 'data',\n schema: node.requestBody?.schema\n ? createSchema({\n type: 'ref',\n name: resolver.resolveDataTypedName(node),\n optional: true,\n })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'pathParams',\n required: pathParams.length > 0,\n schema: pathParams.length > 0 ? buildParamsSchema({ params: pathParams, node, resolver }) : createSchema({ type: 'never' }),\n }),\n createProperty({\n name: 'queryParams',\n schema:\n queryParams.length > 0\n ? createSchema({ ...buildParamsSchema({ params: queryParams, node, resolver }), optional: true })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'headerParams',\n schema:\n headerParams.length > 0\n ? createSchema({ ...buildParamsSchema({ params: headerParams, node, resolver }), optional: true })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'url',\n required: true,\n schema: createSchema({ type: 'url', path: node.path }),\n }),\n ],\n })\n}\n\n/**\n * Builds an `ObjectSchemaNode` representing `<OperationId>Responses` — keyed by HTTP status code.\n * Numeric status codes produce unquoted numeric keys (e.g. `200:`).\n * All responses are included; those without a schema are represented as a ref to a `never` type.\n */\nexport function buildResponsesSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n if (node.responses.length === 0) {\n return null\n }\n\n return createSchema({\n type: 'object',\n properties: node.responses.map((res) =>\n createProperty({\n name: String(res.statusCode),\n required: true,\n schema: createSchema({\n type: 'ref',\n name: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n }),\n }),\n ),\n })\n}\n\n/**\n * Builds a `UnionSchemaNode` representing `<OperationId>Response` — all response types in union format.\n * Returns `null` when the operation has no responses with schemas.\n */\nexport function buildResponseUnionSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n const responsesWithSchema = node.responses.filter((res) => res.schema)\n\n if (responsesWithSchema.length === 0) {\n return null\n }\n\n return createSchema({\n type: 'union',\n members: responsesWithSchema.map((res) =>\n createSchema({\n type: 'ref',\n name: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n }),\n ),\n })\n}\n\ntype BuildGroupedParamsSchemaOptions = {\n params: Array<ParameterNode>\n /**\n * Parent type name (e.g. `FindPetsByStatusQueryParams`) used to derive enum names\n * for inline enum properties (e.g. `FindPetsByStatusQueryParamsStatusEnum`).\n */\n parentName?: string\n}\n\n/**\n * Builds an `ObjectSchemaNode` for a grouped parameters type (path/query/header) in legacy mode.\n * Each property directly embeds the parameter's schema inline (not a ref).\n * Used to generate `<OperationId>PathParams`, `<OperationId>QueryParams`, `<OperationId>HeaderParams`.\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildGroupedParamsSchema({ params, parentName }: BuildGroupedParamsSchemaOptions): SchemaNode {\n return createSchema({\n type: 'object',\n properties: params.map((param) => {\n let schema = param.schema\n if (narrowSchema(schema, 'enum') && !schema.name && parentName) {\n schema = { ...schema, name: pascalCase([parentName, param.name, 'enum'].join(' ')) }\n }\n return createProperty({\n name: param.name,\n required: param.required,\n schema,\n })\n }),\n })\n}\n\n/**\n * Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.\n * Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.\n * Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.\n *\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildLegacyResponsesSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n const isGet = node.method.toLowerCase() === 'get'\n const successResponses = node.responses.filter((res) => {\n const code = Number(res.statusCode)\n return !Number.isNaN(code) && code >= 200 && code < 300\n })\n const errorResponses = node.responses.filter((res) => res.statusCode === 'default' || Number(res.statusCode) >= 400)\n\n const responseSchema =\n successResponses.length > 0\n ? successResponses.length === 1\n ? createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, successResponses[0]!.statusCode) })\n : createSchema({\n type: 'union',\n members: successResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n : createSchema({ type: 'any' })\n\n const errorsSchema =\n errorResponses.length > 0\n ? errorResponses.length === 1\n ? createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, errorResponses[0]!.statusCode) })\n : createSchema({\n type: 'union',\n members: errorResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n : createSchema({ type: 'any' })\n\n const properties = [createProperty({ name: 'Response', required: true, schema: responseSchema })]\n\n if (!isGet && node.requestBody?.schema) {\n properties.push(\n createProperty({\n name: 'Request',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveDataTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'query') && resolver.resolveQueryParamsTypedName) {\n properties.push(\n createProperty({\n name: 'QueryParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveQueryParamsTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'path') && resolver.resolvePathParamsTypedName) {\n properties.push(\n createProperty({\n name: 'PathParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolvePathParamsTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'header') && resolver.resolveHeaderParamsTypedName) {\n properties.push(\n createProperty({\n name: 'HeaderParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveHeaderParamsTypedName(node) }),\n }),\n )\n }\n\n properties.push(createProperty({ name: 'Errors', required: true, schema: errorsSchema }))\n\n return createSchema({ type: 'object', properties })\n}\n\n/**\n * Builds the legacy response union for `<OperationId>MutationResponse` / `<OperationId>QueryResponse`.\n * In legacy mode this is the **success** response only (not the full union including errors).\n * Returns an `any` schema when there is no success response, matching v4 behavior.\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildLegacyResponseUnionSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode {\n const successResponses = node.responses.filter((res) => {\n const code = Number(res.statusCode)\n return !Number.isNaN(code) && code >= 200 && code < 300\n })\n\n if (successResponses.length === 0) {\n return createSchema({ type: 'any' })\n }\n\n if (successResponses.length === 1) {\n return createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, successResponses[0]!.statusCode) })\n }\n\n return createSchema({\n type: 'union',\n members: successResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n}\n\n/**\n * Names unnamed enum nodes within a schema tree based on the parent type name.\n * Used in legacy mode to ensure inline enums in response/request schemas get\n * extracted as named enum declarations (e.g. `DeletePet200Enum`).\n *\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function nameUnnamedEnums(node: SchemaNode, parentName: string): SchemaNode {\n return transform(node, {\n schema(n) {\n if (n.type === 'enum' && !n.name) {\n return { ...n, name: pascalCase([parentName, 'enum'].join(' ')) }\n }\n return undefined\n },\n property(p) {\n const enumNode = narrowSchema(p.schema, 'enum')\n if (enumNode && !enumNode.name) {\n return {\n ...p,\n schema: { ...enumNode, name: pascalCase([parentName, p.name, 'enum'].join(' ')) },\n }\n }\n return undefined\n },\n })\n}\n","import { applyParamsCasing, composeTransformers, transform } from '@kubb/ast'\nimport type { SchemaNode } from '@kubb/ast/types'\nimport { defineGenerator } from '@kubb/core'\nimport { useKubb } from '@kubb/core/hooks'\nimport { File } from '@kubb/react-fabric'\nimport { Type } from '../components/Type.tsx'\nimport { ENUM_TYPES_WITH_KEY_SUFFIX } from '../constants.ts'\nimport type { PluginTs } from '../types'\nimport {\n buildDataSchemaNode,\n buildGroupedParamsSchema,\n buildLegacyResponsesSchemaNode,\n buildLegacyResponseUnionSchemaNode,\n buildParamsSchema,\n buildResponsesSchemaNode,\n buildResponseUnionSchemaNode,\n nameUnnamedEnums,\n} from './utils.ts'\n\nexport const typeGenerator = defineGenerator<PluginTs>({\n name: 'typescript',\n type: 'react',\n Operation({ node, adapter, options }) {\n const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, legacy, transformers = [] } = options\n const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()\n\n const file = getFile({\n name: node.operationId,\n extname: '.ts',\n mode,\n options: {\n group: group ? (group.type === 'tag' ? { tag: node.tags[0] ?? 'default' } : { path: node.path }) : undefined,\n },\n })\n const params = applyParamsCasing(node.parameters, paramsCasing)\n\n function renderSchemaType({\n node: schemaNode,\n name,\n typedName,\n description,\n keysToOmit,\n }: {\n node: SchemaNode | null\n name: string\n typedName: string\n description?: string\n keysToOmit?: Array<string>\n }) {\n if (!schemaNode) {\n return null\n }\n\n const transformedNode = transform(schemaNode, composeTransformers(...transformers))\n\n const imports = adapter.getImports(transformedNode, (schemaName) => ({\n name: resolver.default(schemaName, 'type'),\n path: getFile({ name: schemaName, extname: '.ts', mode }).path,\n }))\n\n return (\n <>\n {mode === 'split' &&\n imports.map((imp) => <File.Import key={[name, imp.path, imp.isTypeOnly].join('-')} root={file.path} path={imp.path} name={imp.name} isTypeOnly />)}\n <Type\n name={name}\n typedName={typedName}\n node={transformedNode}\n description={description}\n enumType={enumType}\n enumKeyCasing={enumKeyCasing}\n optionalType={optionalType}\n arrayType={arrayType}\n syntaxType={syntaxType}\n resolver={resolver}\n keysToOmit={keysToOmit}\n legacy={legacy}\n />\n </>\n )\n }\n\n const responseTypes = legacy\n ? node.responses.map((res) => {\n const responseName = resolver.resolveResponseStatusName(node, res.statusCode)\n const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode)\n\n return renderSchemaType({\n node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,\n name: responseName,\n typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n description: res.description,\n keysToOmit: res.keysToOmit,\n })\n })\n : node.responses.map((res) =>\n renderSchemaType({\n node: res.schema,\n name: resolver.resolveResponseStatusName(node, res.statusCode),\n typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n description: res.description,\n keysToOmit: res.keysToOmit,\n }),\n )\n\n const requestType = node.requestBody?.schema\n ? renderSchemaType({\n node: legacy ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,\n name: resolver.resolveDataName(node),\n typedName: resolver.resolveDataTypedName(node),\n description: node.requestBody.description ?? node.requestBody.schema.description,\n keysToOmit: node.requestBody.keysToOmit,\n })\n : null\n\n if (legacy) {\n const pathParams = params.filter((p) => p.in === 'path')\n const queryParams = params.filter((p) => p.in === 'query')\n const headerParams = params.filter((p) => p.in === 'header')\n\n const legacyParamTypes = [\n pathParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: pathParams, parentName: baseResolver.resolvePathParamsName!(node) }),\n name: resolver.resolvePathParamsName!(node),\n typedName: resolver.resolvePathParamsTypedName!(node),\n })\n : null,\n queryParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: queryParams, parentName: baseResolver.resolveQueryParamsName!(node) }),\n name: resolver.resolveQueryParamsName!(node),\n typedName: resolver.resolveQueryParamsTypedName!(node),\n })\n : null,\n headerParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: headerParams, parentName: baseResolver.resolveHeaderParamsName!(node) }),\n name: resolver.resolveHeaderParamsName!(node),\n typedName: resolver.resolveHeaderParamsTypedName!(node),\n })\n : null,\n ]\n\n const legacyResponsesType = renderSchemaType({\n node: buildLegacyResponsesSchemaNode({ node, resolver }),\n name: resolver.resolveResponsesName(node),\n typedName: resolver.resolveResponsesTypedName(node),\n })\n\n const legacyResponseType = renderSchemaType({\n node: buildLegacyResponseUnionSchemaNode({ node, resolver }),\n name: resolver.resolveResponseName(node),\n typedName: resolver.resolveResponseTypedName(node),\n })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {legacyParamTypes}\n {responseTypes}\n {requestType}\n {legacyResponseType}\n {legacyResponsesType}\n </File>\n )\n }\n\n const paramTypes = params.map((param) =>\n renderSchemaType({\n node: param.schema,\n name: resolver.resolveParamName(node, param),\n typedName: resolver.resolveParamTypedName(node, param),\n }),\n )\n\n const queryParamsList = params.filter((p) => p.in === 'query')\n const queryParamsType =\n queryParamsList.length > 0\n ? renderSchemaType({\n node: buildParamsSchema({ params: queryParamsList, node, resolver }),\n name: resolver.resolveQueryParamsName!(node),\n typedName: resolver.resolveQueryParamsTypedName!(node),\n })\n : null\n\n const dataType = renderSchemaType({\n node: buildDataSchemaNode({ node: { ...node, parameters: params }, resolver }),\n name: resolver.resolveRequestConfigName(node),\n typedName: resolver.resolveRequestConfigTypedName(node),\n })\n\n const responsesType = renderSchemaType({\n node: buildResponsesSchemaNode({ node, resolver }),\n name: resolver.resolveResponsesName(node),\n typedName: resolver.resolveResponsesTypedName(node),\n })\n\n const responseType = renderSchemaType({\n node: buildResponseUnionSchemaNode({ node, resolver }),\n name: resolver.resolveResponseName(node),\n typedName: resolver.resolveResponseTypedName(node),\n description: 'Union of all possible responses',\n })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {paramTypes}\n {queryParamsType}\n {responseTypes}\n {requestType}\n {dataType}\n {responsesType}\n {responseType}\n </File>\n )\n },\n Schema({ node, adapter, options }) {\n const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, legacy, transformers = [] } = options\n const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()\n\n if (!node.name) {\n return\n }\n\n const transformedNode = transform(node, composeTransformers(...transformers))\n\n const imports = adapter.getImports(transformedNode, (schemaName) => ({\n name: resolver.default(schemaName, 'type'),\n path: getFile({ name: schemaName, extname: '.ts', mode }).path,\n }))\n\n const isEnumSchema = node.type === 'enum'\n\n const typedName = ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name)\n\n const type = {\n name: resolver.resolveName(node.name),\n typedName,\n file: getFile({ name: node.name, extname: '.ts', mode }),\n } as const\n\n return (\n <File baseName={type.file.baseName} path={type.file.path} meta={type.file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {mode === 'split' &&\n imports.map((imp) => (\n <File.Import key={[node.name, imp.path, imp.isTypeOnly].join('-')} root={type.file.path} path={imp.path} name={imp.name} isTypeOnly />\n ))}\n <Type\n name={type.name}\n typedName={type.typedName}\n node={transformedNode}\n enumType={enumType}\n enumKeyCasing={enumKeyCasing}\n optionalType={optionalType}\n arrayType={arrayType}\n syntaxType={syntaxType}\n resolver={resolver}\n legacy={legacy}\n />\n </File>\n )\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "./chunk--u3MIqq1.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { n as pascalCase } from "./casing-Cp-jbC_k.js";
|
|
3
|
+
import { r as ENUM_TYPES_WITH_KEY_SUFFIX, t as Type } from "./Type-C8EHVKjc.js";
|
|
4
|
+
import { applyParamsCasing, composeTransformers, createProperty, createSchema, narrowSchema, transform } from "@kubb/ast";
|
|
4
5
|
import { defineGenerator } from "@kubb/core";
|
|
5
6
|
import { useKubb } from "@kubb/core/hooks";
|
|
6
7
|
import { File } from "@kubb/react-fabric";
|
|
@@ -17,10 +18,10 @@ function buildParamsSchema({ params, node, resolver }) {
|
|
|
17
18
|
type: "object",
|
|
18
19
|
properties: params.map((param) => createProperty({
|
|
19
20
|
name: param.name,
|
|
21
|
+
required: param.required,
|
|
20
22
|
schema: createSchema({
|
|
21
23
|
type: "ref",
|
|
22
|
-
name: resolver.resolveParamName(node, param)
|
|
23
|
-
optional: !param.required
|
|
24
|
+
name: resolver.resolveParamName(node, param)
|
|
24
25
|
})
|
|
25
26
|
}))
|
|
26
27
|
});
|
|
@@ -54,14 +55,12 @@ function buildDataSchemaNode({ node, resolver }) {
|
|
|
54
55
|
}),
|
|
55
56
|
createProperty({
|
|
56
57
|
name: "pathParams",
|
|
58
|
+
required: pathParams.length > 0,
|
|
57
59
|
schema: pathParams.length > 0 ? buildParamsSchema({
|
|
58
60
|
params: pathParams,
|
|
59
61
|
node,
|
|
60
62
|
resolver
|
|
61
|
-
}) : createSchema({
|
|
62
|
-
type: "never",
|
|
63
|
-
optional: true
|
|
64
|
-
})
|
|
63
|
+
}) : createSchema({ type: "never" })
|
|
65
64
|
}),
|
|
66
65
|
createProperty({
|
|
67
66
|
name: "queryParams",
|
|
@@ -93,6 +92,7 @@ function buildDataSchemaNode({ node, resolver }) {
|
|
|
93
92
|
}),
|
|
94
93
|
createProperty({
|
|
95
94
|
name: "url",
|
|
95
|
+
required: true,
|
|
96
96
|
schema: createSchema({
|
|
97
97
|
type: "url",
|
|
98
98
|
path: node.path
|
|
@@ -112,6 +112,7 @@ function buildResponsesSchemaNode({ node, resolver }) {
|
|
|
112
112
|
type: "object",
|
|
113
113
|
properties: node.responses.map((res) => createProperty({
|
|
114
114
|
name: String(res.statusCode),
|
|
115
|
+
required: true,
|
|
115
116
|
schema: createSchema({
|
|
116
117
|
type: "ref",
|
|
117
118
|
name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
|
|
@@ -144,10 +145,7 @@ function buildGroupedParamsSchema({ params, parentName }) {
|
|
|
144
145
|
return createSchema({
|
|
145
146
|
type: "object",
|
|
146
147
|
properties: params.map((param) => {
|
|
147
|
-
let schema =
|
|
148
|
-
...param.schema,
|
|
149
|
-
optional: !param.required
|
|
150
|
-
};
|
|
148
|
+
let schema = param.schema;
|
|
151
149
|
if (narrowSchema(schema, "enum") && !schema.name && parentName) schema = {
|
|
152
150
|
...schema,
|
|
153
151
|
name: pascalCase([
|
|
@@ -158,6 +156,7 @@ function buildGroupedParamsSchema({ params, parentName }) {
|
|
|
158
156
|
};
|
|
159
157
|
return createProperty({
|
|
160
158
|
name: param.name,
|
|
159
|
+
required: param.required,
|
|
161
160
|
schema
|
|
162
161
|
});
|
|
163
162
|
})
|
|
@@ -165,7 +164,7 @@ function buildGroupedParamsSchema({ params, parentName }) {
|
|
|
165
164
|
}
|
|
166
165
|
/**
|
|
167
166
|
* Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.
|
|
168
|
-
* Structure: `{ Response, Request
|
|
167
|
+
* Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.
|
|
169
168
|
* Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.
|
|
170
169
|
*
|
|
171
170
|
* @deprecated Legacy only — will be removed in v6.
|
|
@@ -199,17 +198,20 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
199
198
|
}) : createSchema({ type: "any" });
|
|
200
199
|
const properties = [createProperty({
|
|
201
200
|
name: "Response",
|
|
201
|
+
required: true,
|
|
202
202
|
schema: responseSchema
|
|
203
203
|
})];
|
|
204
204
|
if (!isGet && node.requestBody?.schema) properties.push(createProperty({
|
|
205
205
|
name: "Request",
|
|
206
|
+
required: true,
|
|
206
207
|
schema: createSchema({
|
|
207
208
|
type: "ref",
|
|
208
209
|
name: resolver.resolveDataTypedName(node)
|
|
209
210
|
})
|
|
210
211
|
}));
|
|
211
|
-
|
|
212
|
+
if (node.parameters.some((p) => p.in === "query") && resolver.resolveQueryParamsTypedName) properties.push(createProperty({
|
|
212
213
|
name: "QueryParams",
|
|
214
|
+
required: true,
|
|
213
215
|
schema: createSchema({
|
|
214
216
|
type: "ref",
|
|
215
217
|
name: resolver.resolveQueryParamsTypedName(node)
|
|
@@ -217,6 +219,7 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
217
219
|
}));
|
|
218
220
|
if (node.parameters.some((p) => p.in === "path") && resolver.resolvePathParamsTypedName) properties.push(createProperty({
|
|
219
221
|
name: "PathParams",
|
|
222
|
+
required: true,
|
|
220
223
|
schema: createSchema({
|
|
221
224
|
type: "ref",
|
|
222
225
|
name: resolver.resolvePathParamsTypedName(node)
|
|
@@ -224,6 +227,7 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
224
227
|
}));
|
|
225
228
|
if (node.parameters.some((p) => p.in === "header") && resolver.resolveHeaderParamsTypedName) properties.push(createProperty({
|
|
226
229
|
name: "HeaderParams",
|
|
230
|
+
required: true,
|
|
227
231
|
schema: createSchema({
|
|
228
232
|
type: "ref",
|
|
229
233
|
name: resolver.resolveHeaderParamsTypedName(node)
|
|
@@ -231,6 +235,7 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
|
|
|
231
235
|
}));
|
|
232
236
|
properties.push(createProperty({
|
|
233
237
|
name: "Errors",
|
|
238
|
+
required: true,
|
|
234
239
|
schema: errorsSchema
|
|
235
240
|
}));
|
|
236
241
|
return createSchema({
|
|
@@ -299,7 +304,7 @@ const typeGenerator = defineGenerator({
|
|
|
299
304
|
name: "typescript",
|
|
300
305
|
type: "react",
|
|
301
306
|
Operation({ node, adapter, options }) {
|
|
302
|
-
const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, legacy } = options;
|
|
307
|
+
const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, legacy, transformers = [] } = options;
|
|
303
308
|
const { mode, getFile, resolveBanner, resolveFooter } = useKubb();
|
|
304
309
|
const file = getFile({
|
|
305
310
|
name: node.operationId,
|
|
@@ -310,7 +315,8 @@ const typeGenerator = defineGenerator({
|
|
|
310
315
|
const params = applyParamsCasing(node.parameters, paramsCasing);
|
|
311
316
|
function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
|
|
312
317
|
if (!schemaNode) return null;
|
|
313
|
-
const
|
|
318
|
+
const transformedNode = transform(schemaNode, composeTransformers(...transformers));
|
|
319
|
+
const imports = adapter.getImports(transformedNode, (schemaName) => ({
|
|
314
320
|
name: resolver.default(schemaName, "type"),
|
|
315
321
|
path: getFile({
|
|
316
322
|
name: schemaName,
|
|
@@ -330,7 +336,7 @@ const typeGenerator = defineGenerator({
|
|
|
330
336
|
].join("-"))), /* @__PURE__ */ jsx(Type, {
|
|
331
337
|
name,
|
|
332
338
|
typedName,
|
|
333
|
-
node:
|
|
339
|
+
node: transformedNode,
|
|
334
340
|
description,
|
|
335
341
|
enumType,
|
|
336
342
|
enumKeyCasing,
|
|
@@ -338,13 +344,15 @@ const typeGenerator = defineGenerator({
|
|
|
338
344
|
arrayType,
|
|
339
345
|
syntaxType,
|
|
340
346
|
resolver,
|
|
341
|
-
keysToOmit
|
|
347
|
+
keysToOmit,
|
|
348
|
+
legacy
|
|
342
349
|
})] });
|
|
343
350
|
}
|
|
344
351
|
const responseTypes = legacy ? node.responses.map((res) => {
|
|
345
352
|
const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
|
|
353
|
+
const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode);
|
|
346
354
|
return renderSchemaType({
|
|
347
|
-
node: res.schema ? nameUnnamedEnums(res.schema,
|
|
355
|
+
node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
|
|
348
356
|
name: responseName,
|
|
349
357
|
typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
|
|
350
358
|
description: res.description,
|
|
@@ -358,10 +366,10 @@ const typeGenerator = defineGenerator({
|
|
|
358
366
|
keysToOmit: res.keysToOmit
|
|
359
367
|
}));
|
|
360
368
|
const requestType = node.requestBody?.schema ? renderSchemaType({
|
|
361
|
-
node: legacy ? nameUnnamedEnums(node.requestBody.schema,
|
|
369
|
+
node: legacy ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
|
|
362
370
|
name: resolver.resolveDataName(node),
|
|
363
371
|
typedName: resolver.resolveDataTypedName(node),
|
|
364
|
-
description: node.requestBody.schema.description,
|
|
372
|
+
description: node.requestBody.description ?? node.requestBody.schema.description,
|
|
365
373
|
keysToOmit: node.requestBody.keysToOmit
|
|
366
374
|
}) : null;
|
|
367
375
|
if (legacy) {
|
|
@@ -372,7 +380,7 @@ const typeGenerator = defineGenerator({
|
|
|
372
380
|
pathParams.length > 0 ? renderSchemaType({
|
|
373
381
|
node: buildGroupedParamsSchema({
|
|
374
382
|
params: pathParams,
|
|
375
|
-
parentName:
|
|
383
|
+
parentName: baseResolver.resolvePathParamsName(node)
|
|
376
384
|
}),
|
|
377
385
|
name: resolver.resolvePathParamsName(node),
|
|
378
386
|
typedName: resolver.resolvePathParamsTypedName(node)
|
|
@@ -380,7 +388,7 @@ const typeGenerator = defineGenerator({
|
|
|
380
388
|
queryParams.length > 0 ? renderSchemaType({
|
|
381
389
|
node: buildGroupedParamsSchema({
|
|
382
390
|
params: queryParams,
|
|
383
|
-
parentName:
|
|
391
|
+
parentName: baseResolver.resolveQueryParamsName(node)
|
|
384
392
|
}),
|
|
385
393
|
name: resolver.resolveQueryParamsName(node),
|
|
386
394
|
typedName: resolver.resolveQueryParamsTypedName(node)
|
|
@@ -388,7 +396,7 @@ const typeGenerator = defineGenerator({
|
|
|
388
396
|
headerParams.length > 0 ? renderSchemaType({
|
|
389
397
|
node: buildGroupedParamsSchema({
|
|
390
398
|
params: headerParams,
|
|
391
|
-
parentName:
|
|
399
|
+
parentName: baseResolver.resolveHeaderParamsName(node)
|
|
392
400
|
}),
|
|
393
401
|
name: resolver.resolveHeaderParamsName(node),
|
|
394
402
|
typedName: resolver.resolveHeaderParamsTypedName(node)
|
|
@@ -420,8 +428,8 @@ const typeGenerator = defineGenerator({
|
|
|
420
428
|
legacyParamTypes,
|
|
421
429
|
responseTypes,
|
|
422
430
|
requestType,
|
|
423
|
-
|
|
424
|
-
|
|
431
|
+
legacyResponseType,
|
|
432
|
+
legacyResponsesType
|
|
425
433
|
]
|
|
426
434
|
});
|
|
427
435
|
}
|
|
@@ -430,6 +438,16 @@ const typeGenerator = defineGenerator({
|
|
|
430
438
|
name: resolver.resolveParamName(node, param),
|
|
431
439
|
typedName: resolver.resolveParamTypedName(node, param)
|
|
432
440
|
}));
|
|
441
|
+
const queryParamsList = params.filter((p) => p.in === "query");
|
|
442
|
+
const queryParamsType = queryParamsList.length > 0 ? renderSchemaType({
|
|
443
|
+
node: buildParamsSchema({
|
|
444
|
+
params: queryParamsList,
|
|
445
|
+
node,
|
|
446
|
+
resolver
|
|
447
|
+
}),
|
|
448
|
+
name: resolver.resolveQueryParamsName(node),
|
|
449
|
+
typedName: resolver.resolveQueryParamsTypedName(node)
|
|
450
|
+
}) : null;
|
|
433
451
|
const dataType = renderSchemaType({
|
|
434
452
|
node: buildDataSchemaNode({
|
|
435
453
|
node: {
|
|
@@ -466,6 +484,7 @@ const typeGenerator = defineGenerator({
|
|
|
466
484
|
footer: resolveFooter(),
|
|
467
485
|
children: [
|
|
468
486
|
paramTypes,
|
|
487
|
+
queryParamsType,
|
|
469
488
|
responseTypes,
|
|
470
489
|
requestType,
|
|
471
490
|
dataType,
|
|
@@ -475,10 +494,11 @@ const typeGenerator = defineGenerator({
|
|
|
475
494
|
});
|
|
476
495
|
},
|
|
477
496
|
Schema({ node, adapter, options }) {
|
|
478
|
-
const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver } = options;
|
|
497
|
+
const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, legacy, transformers = [] } = options;
|
|
479
498
|
const { mode, getFile, resolveBanner, resolveFooter } = useKubb();
|
|
480
499
|
if (!node.name) return;
|
|
481
|
-
const
|
|
500
|
+
const transformedNode = transform(node, composeTransformers(...transformers));
|
|
501
|
+
const imports = adapter.getImports(transformedNode, (schemaName) => ({
|
|
482
502
|
name: resolver.default(schemaName, "type"),
|
|
483
503
|
path: getFile({
|
|
484
504
|
name: schemaName,
|
|
@@ -515,13 +535,14 @@ const typeGenerator = defineGenerator({
|
|
|
515
535
|
].join("-"))), /* @__PURE__ */ jsx(Type, {
|
|
516
536
|
name: type.name,
|
|
517
537
|
typedName: type.typedName,
|
|
518
|
-
node,
|
|
538
|
+
node: transformedNode,
|
|
519
539
|
enumType,
|
|
520
540
|
enumKeyCasing,
|
|
521
541
|
optionalType,
|
|
522
542
|
arrayType,
|
|
523
543
|
syntaxType,
|
|
524
|
-
resolver
|
|
544
|
+
resolver,
|
|
545
|
+
legacy
|
|
525
546
|
})]
|
|
526
547
|
});
|
|
527
548
|
}
|
|
@@ -529,4 +550,4 @@ const typeGenerator = defineGenerator({
|
|
|
529
550
|
//#endregion
|
|
530
551
|
export { typeGenerator as t };
|
|
531
552
|
|
|
532
|
-
//# sourceMappingURL=generators-
|
|
553
|
+
//# sourceMappingURL=generators-BTTcjgbY.js.map
|