@kubb/plugin-ts 5.0.0-alpha.21 → 5.0.0-alpha.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/index.cjs +1698 -42
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.ts +485 -4
  4. package/dist/index.js +1667 -41
  5. package/dist/index.js.map +1 -1
  6. package/package.json +3 -42
  7. package/src/components/Enum.tsx +15 -11
  8. package/src/components/Type.tsx +18 -7
  9. package/src/generators/typeGenerator.tsx +12 -21
  10. package/src/generators/typeGeneratorLegacy.tsx +30 -37
  11. package/src/index.ts +13 -1
  12. package/src/plugin.ts +62 -22
  13. package/src/presets.ts +22 -23
  14. package/src/printers/functionPrinter.ts +194 -0
  15. package/src/printers/printerTs.ts +16 -8
  16. package/src/resolvers/resolverTs.ts +10 -47
  17. package/src/resolvers/resolverTsLegacy.ts +4 -31
  18. package/src/types.ts +95 -205
  19. package/src/utils.ts +103 -0
  20. package/dist/Type-B6fo0gSk.js +0 -120
  21. package/dist/Type-B6fo0gSk.js.map +0 -1
  22. package/dist/Type-oFwUfkZv.cjs +0 -131
  23. package/dist/Type-oFwUfkZv.cjs.map +0 -1
  24. package/dist/builderTs-Cd3juc2G.cjs +0 -120
  25. package/dist/builderTs-Cd3juc2G.cjs.map +0 -1
  26. package/dist/builderTs-DausqHpc.js +0 -116
  27. package/dist/builderTs-DausqHpc.js.map +0 -1
  28. package/dist/builders.cjs +0 -3
  29. package/dist/builders.d.ts +0 -8
  30. package/dist/builders.js +0 -2
  31. package/dist/casing-BJHFg-zZ.js +0 -84
  32. package/dist/casing-BJHFg-zZ.js.map +0 -1
  33. package/dist/casing-DHfdqpLi.cjs +0 -107
  34. package/dist/casing-DHfdqpLi.cjs.map +0 -1
  35. package/dist/chunk-ByKO4r7w.cjs +0 -38
  36. package/dist/components.cjs +0 -4
  37. package/dist/components.d.ts +0 -67
  38. package/dist/components.js +0 -2
  39. package/dist/generators-ByK18qUn.js +0 -551
  40. package/dist/generators-ByK18qUn.js.map +0 -1
  41. package/dist/generators-aSsiTfUO.cjs +0 -563
  42. package/dist/generators-aSsiTfUO.cjs.map +0 -1
  43. package/dist/generators.cjs +0 -4
  44. package/dist/generators.d.ts +0 -12
  45. package/dist/generators.js +0 -2
  46. package/dist/printerTs-BgZucv4T.js +0 -559
  47. package/dist/printerTs-BgZucv4T.js.map +0 -1
  48. package/dist/printerTs-CFXc_LpP.cjs +0 -595
  49. package/dist/printerTs-CFXc_LpP.cjs.map +0 -1
  50. package/dist/printers.cjs +0 -3
  51. package/dist/printers.d.ts +0 -75
  52. package/dist/printers.js +0 -2
  53. package/dist/resolverTsLegacy-DLl854-P.js +0 -185
  54. package/dist/resolverTsLegacy-DLl854-P.js.map +0 -1
  55. package/dist/resolverTsLegacy-sJ16Iqrl.cjs +0 -196
  56. package/dist/resolverTsLegacy-sJ16Iqrl.cjs.map +0 -1
  57. package/dist/resolvers.cjs +0 -4
  58. package/dist/resolvers.d.ts +0 -52
  59. package/dist/resolvers.js +0 -2
  60. package/dist/types-BcyuFDn9.d.ts +0 -344
  61. package/src/builders/builderTs.ts +0 -92
  62. package/src/builders/index.ts +0 -1
  63. package/src/components/index.ts +0 -2
  64. package/src/generators/index.ts +0 -2
  65. package/src/printers/index.ts +0 -1
  66. package/src/resolvers/index.ts +0 -2
@@ -1,38 +0,0 @@
1
- //#region \0rolldown/runtime.js
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __name = (target, value) => __defProp(target, "name", {
5
- value,
6
- configurable: true
7
- });
8
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
- var __getOwnPropNames = Object.getOwnPropertyNames;
10
- var __getProtoOf = Object.getPrototypeOf;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
14
- key = keys[i];
15
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: ((k) => from[k]).bind(null, key),
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
- value: mod,
24
- enumerable: true
25
- }) : target, mod));
26
- //#endregion
27
- Object.defineProperty(exports, "__name", {
28
- enumerable: true,
29
- get: function() {
30
- return __name;
31
- }
32
- });
33
- Object.defineProperty(exports, "__toESM", {
34
- enumerable: true,
35
- get: function() {
36
- return __toESM;
37
- }
38
- });
@@ -1,4 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_Type = require("./Type-oFwUfkZv.cjs");
3
- exports.Enum = require_Type.Enum;
4
- exports.Type = require_Type.Type;
@@ -1,67 +0,0 @@
1
- import { t as __name } from "./chunk--u3MIqq1.js";
2
- import { i as ResolverTs, r as PluginTs } from "./types-BcyuFDn9.js";
3
- import { EnumSchemaNode, SchemaNode } from "@kubb/ast/types";
4
- import { FabricReactNode } from "@kubb/react-fabric/types";
5
-
6
- //#region src/components/Enum.d.ts
7
- type Props$1 = {
8
- node: EnumSchemaNode;
9
- enumType: PluginTs['resolvedOptions']['enumType'];
10
- enumKeyCasing: PluginTs['resolvedOptions']['enumKeyCasing'];
11
- resolver: ResolverTs;
12
- };
13
- /**
14
- * Resolves the runtime identifier name and the TypeScript type name for an enum schema node.
15
- *
16
- * The raw `node.name` may be a YAML key such as `"enumNames.Type"` which is not a
17
- * valid TypeScript identifier. The resolver normalizes it; for inline enum
18
- * properties the adapter already emits a PascalCase+suffix name so resolution is typically a no-op.
19
- */
20
- /**
21
- * Renders the enum declaration(s) for a single named `EnumSchemaNode`.
22
- *
23
- * Depending on `enumType` this may emit:
24
- * - A runtime object (`asConst` / `asPascalConst`) plus a `typeof` type alias
25
- * - A `const enum` or plain `enum` declaration (`constEnum` / `enum`)
26
- * - A union literal type alias (`literal`)
27
- *
28
- * The emitted `File.Source` nodes carry the resolved names so that the barrel
29
- * index picks up the correct export identifiers.
30
- */
31
- declare function Enum({
32
- node,
33
- enumType,
34
- enumKeyCasing,
35
- resolver
36
- }: Props$1): FabricReactNode;
37
- //#endregion
38
- //#region src/components/Type.d.ts
39
- type Props = {
40
- name: string;
41
- typedName: string;
42
- node: SchemaNode;
43
- optionalType: PluginTs['resolvedOptions']['optionalType'];
44
- arrayType: PluginTs['resolvedOptions']['arrayType'];
45
- enumType: PluginTs['resolvedOptions']['enumType'];
46
- enumKeyCasing: PluginTs['resolvedOptions']['enumKeyCasing'];
47
- syntaxType: PluginTs['resolvedOptions']['syntaxType'];
48
- resolver: PluginTs['resolvedOptions']['resolver'];
49
- description?: string;
50
- keysToOmit?: string[];
51
- };
52
- declare function Type({
53
- name,
54
- typedName,
55
- node,
56
- keysToOmit,
57
- optionalType,
58
- arrayType,
59
- syntaxType,
60
- enumType,
61
- enumKeyCasing,
62
- description,
63
- resolver
64
- }: Props): FabricReactNode;
65
- //#endregion
66
- export { Enum, Type };
67
- //# sourceMappingURL=components.d.ts.map
@@ -1,2 +0,0 @@
1
- import { n as Enum, t as Type } from "./Type-B6fo0gSk.js";
2
- export { Enum, Type };
@@ -1,551 +0,0 @@
1
- import "./chunk--u3MIqq1.js";
2
- import { t as builderTs } from "./builderTs-DausqHpc.js";
3
- import { n as pascalCase } from "./casing-BJHFg-zZ.js";
4
- import { r as ENUM_TYPES_WITH_KEY_SUFFIX } from "./printerTs-BgZucv4T.js";
5
- import { t as Type } from "./Type-B6fo0gSk.js";
6
- import { t as resolverTsLegacy } from "./resolverTsLegacy-DLl854-P.js";
7
- import path from "node:path";
8
- import { caseParams, composeTransformers, createProperty, createSchema, narrowSchema, schemaTypes, transform } from "@kubb/ast";
9
- import { defineGenerator, getMode } from "@kubb/core";
10
- import { File } from "@kubb/react-fabric";
11
- import { Fragment, jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
12
- //#region src/generators/typeGenerator.tsx
13
- const typeGenerator = defineGenerator({
14
- name: "typescript",
15
- type: "react",
16
- Operation({ node, adapter, options, config }) {
17
- const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, resolver, transformers = [] } = options;
18
- const root = path.resolve(config.root, config.output.path);
19
- const mode = getMode(path.resolve(root, output.path));
20
- const file = resolver.resolveFile({
21
- name: node.operationId,
22
- extname: ".ts",
23
- tag: node.tags[0] ?? "default",
24
- path: node.path
25
- }, {
26
- root,
27
- output,
28
- group
29
- });
30
- const params = caseParams(node.parameters, paramsCasing);
31
- function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
32
- if (!schemaNode) return null;
33
- const transformedNode = transform(schemaNode, composeTransformers(...transformers));
34
- const imports = adapter.getImports(transformedNode, (schemaName) => ({
35
- name: resolver.default(schemaName, "type"),
36
- path: resolver.resolveFile({
37
- name: schemaName,
38
- extname: ".ts"
39
- }, {
40
- root,
41
- output,
42
- group
43
- }).path
44
- }));
45
- return /* @__PURE__ */ jsxs(Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
46
- root: file.path,
47
- path: imp.path,
48
- name: imp.name,
49
- isTypeOnly: true
50
- }, [
51
- name,
52
- imp.path,
53
- imp.isTypeOnly
54
- ].join("-"))), /* @__PURE__ */ jsx(Type, {
55
- name,
56
- typedName,
57
- node: transformedNode,
58
- description,
59
- enumType,
60
- enumKeyCasing,
61
- optionalType,
62
- arrayType,
63
- syntaxType,
64
- resolver,
65
- keysToOmit
66
- })] });
67
- }
68
- const paramTypes = params.map((param) => renderSchemaType({
69
- node: param.schema,
70
- name: resolver.resolveParamName(node, param),
71
- typedName: resolver.resolveParamTypedName(node, param)
72
- }));
73
- const requestType = node.requestBody?.schema ? renderSchemaType({
74
- node: node.requestBody.schema,
75
- name: resolver.resolveDataName(node),
76
- typedName: resolver.resolveDataTypedName(node),
77
- description: node.requestBody.description ?? node.requestBody.schema.description,
78
- keysToOmit: node.requestBody.keysToOmit
79
- }) : null;
80
- const responseTypes = node.responses.map((res) => renderSchemaType({
81
- node: res.schema,
82
- name: resolver.resolveResponseStatusName(node, res.statusCode),
83
- typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
84
- description: res.description,
85
- keysToOmit: res.keysToOmit
86
- }));
87
- const dataType = renderSchemaType({
88
- node: builderTs.buildData({
89
- node: {
90
- ...node,
91
- parameters: params
92
- },
93
- resolver
94
- }),
95
- name: resolver.resolveRequestConfigName(node),
96
- typedName: resolver.resolveRequestConfigTypedName(node)
97
- });
98
- const responsesType = renderSchemaType({
99
- node: builderTs.buildResponses({
100
- node,
101
- resolver
102
- }),
103
- name: resolver.resolveResponsesName(node),
104
- typedName: resolver.resolveResponsesTypedName(node)
105
- });
106
- const responseType = renderSchemaType({
107
- node: builderTs.buildResponseUnion({
108
- node,
109
- resolver
110
- }),
111
- name: resolver.resolveResponseName(node),
112
- typedName: resolver.resolveResponseTypedName(node),
113
- description: "Union of all possible responses"
114
- });
115
- return /* @__PURE__ */ jsxs(File, {
116
- baseName: file.baseName,
117
- path: file.path,
118
- meta: file.meta,
119
- banner: resolver.resolveBanner(adapter.rootNode, {
120
- output,
121
- config
122
- }),
123
- footer: resolver.resolveFooter(adapter.rootNode, {
124
- output,
125
- config
126
- }),
127
- children: [
128
- paramTypes,
129
- responseTypes,
130
- requestType,
131
- dataType,
132
- responsesType,
133
- responseType
134
- ]
135
- });
136
- },
137
- Schema({ node, adapter, options, config }) {
138
- const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, resolver, transformers = [] } = options;
139
- const root = path.resolve(config.root, config.output.path);
140
- const mode = getMode(path.resolve(root, output.path));
141
- if (!node.name) return;
142
- const transformedNode = transform(node, composeTransformers(...transformers));
143
- const imports = adapter.getImports(transformedNode, (schemaName) => ({
144
- name: resolver.default(schemaName, "type"),
145
- path: resolver.resolveFile({
146
- name: schemaName,
147
- extname: ".ts"
148
- }, {
149
- root,
150
- output,
151
- group
152
- }).path
153
- }));
154
- const isEnumSchema = !!narrowSchema(node, schemaTypes.enum);
155
- const typedName = ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name);
156
- const type = {
157
- name: resolver.resolveName(node.name),
158
- typedName,
159
- file: resolver.resolveFile({
160
- name: node.name,
161
- extname: ".ts"
162
- }, {
163
- root,
164
- output,
165
- group
166
- })
167
- };
168
- return /* @__PURE__ */ jsxs(File, {
169
- baseName: type.file.baseName,
170
- path: type.file.path,
171
- meta: type.file.meta,
172
- banner: resolver.resolveBanner(adapter.rootNode, {
173
- output,
174
- config
175
- }),
176
- footer: resolver.resolveFooter(adapter.rootNode, {
177
- output,
178
- config
179
- }),
180
- children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
181
- root: type.file.path,
182
- path: imp.path,
183
- name: imp.name,
184
- isTypeOnly: true
185
- }, [
186
- node.name,
187
- imp.path,
188
- imp.isTypeOnly
189
- ].join("-"))), /* @__PURE__ */ jsx(Type, {
190
- name: type.name,
191
- typedName: type.typedName,
192
- node: transformedNode,
193
- enumType,
194
- enumKeyCasing,
195
- optionalType,
196
- arrayType,
197
- syntaxType,
198
- resolver
199
- })]
200
- });
201
- }
202
- });
203
- //#endregion
204
- //#region src/generators/typeGeneratorLegacy.tsx
205
- function buildGroupedParamsSchema({ params, parentName }) {
206
- return createSchema({
207
- type: "object",
208
- properties: params.map((param) => {
209
- let schema = param.schema;
210
- if (narrowSchema(schema, "enum") && !schema.name && parentName) schema = {
211
- ...schema,
212
- name: pascalCase([
213
- parentName,
214
- param.name,
215
- "enum"
216
- ].join(" "))
217
- };
218
- return createProperty({
219
- name: param.name,
220
- required: param.required,
221
- schema
222
- });
223
- })
224
- });
225
- }
226
- function buildLegacyResponsesSchemaNode({ node, resolver }) {
227
- const isGet = node.method.toLowerCase() === "get";
228
- const successResponses = node.responses.filter((res) => {
229
- const code = Number(res.statusCode);
230
- return !Number.isNaN(code) && code >= 200 && code < 300;
231
- });
232
- const errorResponses = node.responses.filter((res) => res.statusCode === "default" || Number(res.statusCode) >= 400);
233
- const responseSchema = successResponses.length > 0 ? successResponses.length === 1 ? createSchema({
234
- type: "ref",
235
- name: resolver.resolveResponseStatusTypedName(node, successResponses[0].statusCode)
236
- }) : createSchema({
237
- type: "union",
238
- members: successResponses.map((res) => createSchema({
239
- type: "ref",
240
- name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
241
- }))
242
- }) : createSchema({ type: "any" });
243
- const errorsSchema = errorResponses.length > 0 ? errorResponses.length === 1 ? createSchema({
244
- type: "ref",
245
- name: resolver.resolveResponseStatusTypedName(node, errorResponses[0].statusCode)
246
- }) : createSchema({
247
- type: "union",
248
- members: errorResponses.map((res) => createSchema({
249
- type: "ref",
250
- name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
251
- }))
252
- }) : createSchema({ type: "any" });
253
- const properties = [createProperty({
254
- name: "Response",
255
- required: true,
256
- schema: responseSchema
257
- })];
258
- if (!isGet && node.requestBody?.schema) properties.push(createProperty({
259
- name: "Request",
260
- required: true,
261
- schema: createSchema({
262
- type: "ref",
263
- name: resolver.resolveDataTypedName(node)
264
- })
265
- }));
266
- if (node.parameters.some((p) => p.in === "query") && resolver.resolveQueryParamsTypedName) properties.push(createProperty({
267
- name: "QueryParams",
268
- required: true,
269
- schema: createSchema({
270
- type: "ref",
271
- name: resolver.resolveQueryParamsTypedName(node)
272
- })
273
- }));
274
- if (node.parameters.some((p) => p.in === "path") && resolver.resolvePathParamsTypedName) properties.push(createProperty({
275
- name: "PathParams",
276
- required: true,
277
- schema: createSchema({
278
- type: "ref",
279
- name: resolver.resolvePathParamsTypedName(node)
280
- })
281
- }));
282
- if (node.parameters.some((p) => p.in === "header") && resolver.resolveHeaderParamsTypedName) properties.push(createProperty({
283
- name: "HeaderParams",
284
- required: true,
285
- schema: createSchema({
286
- type: "ref",
287
- name: resolver.resolveHeaderParamsTypedName(node)
288
- })
289
- }));
290
- properties.push(createProperty({
291
- name: "Errors",
292
- required: true,
293
- schema: errorsSchema
294
- }));
295
- return createSchema({
296
- type: "object",
297
- properties
298
- });
299
- }
300
- function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
301
- const successResponses = node.responses.filter((res) => {
302
- const code = Number(res.statusCode);
303
- return !Number.isNaN(code) && code >= 200 && code < 300;
304
- });
305
- if (successResponses.length === 0) return createSchema({ type: "any" });
306
- if (successResponses.length === 1) return createSchema({
307
- type: "ref",
308
- name: resolver.resolveResponseStatusTypedName(node, successResponses[0].statusCode)
309
- });
310
- return createSchema({
311
- type: "union",
312
- members: successResponses.map((res) => createSchema({
313
- type: "ref",
314
- name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
315
- }))
316
- });
317
- }
318
- function nameUnnamedEnums(node, parentName) {
319
- return transform(node, {
320
- schema(n) {
321
- const enumNode = narrowSchema(n, "enum");
322
- if (enumNode && !enumNode.name) return {
323
- ...enumNode,
324
- name: pascalCase([parentName, "enum"].join(" "))
325
- };
326
- },
327
- property(p) {
328
- const enumNode = narrowSchema(p.schema, "enum");
329
- if (enumNode && !enumNode.name) return {
330
- ...p,
331
- schema: {
332
- ...enumNode,
333
- name: pascalCase([
334
- parentName,
335
- p.name,
336
- "enum"
337
- ].join(" "))
338
- }
339
- };
340
- }
341
- });
342
- }
343
- const typeGeneratorLegacy = defineGenerator({
344
- name: "typescript-legacy",
345
- type: "react",
346
- Operation({ node, adapter, options, config }) {
347
- const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, resolver, transformers = [] } = options;
348
- const root = path.resolve(config.root, config.output.path);
349
- const mode = getMode(path.resolve(root, output.path));
350
- const file = resolver.resolveFile({
351
- name: node.operationId,
352
- extname: ".ts",
353
- tag: node.tags[0] ?? "default",
354
- path: node.path
355
- }, {
356
- root,
357
- output,
358
- group
359
- });
360
- const params = caseParams(node.parameters, paramsCasing);
361
- function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
362
- if (!schemaNode) return null;
363
- const transformedNode = transform(schemaNode, composeTransformers(...transformers));
364
- const imports = adapter.getImports(transformedNode, (schemaName) => ({
365
- name: resolver.default(schemaName, "type"),
366
- path: resolver.resolveFile({
367
- name: schemaName,
368
- extname: ".ts"
369
- }, {
370
- root,
371
- output,
372
- group
373
- }).path
374
- }));
375
- return /* @__PURE__ */ jsxs(Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
376
- root: file.path,
377
- path: imp.path,
378
- name: imp.name,
379
- isTypeOnly: true
380
- }, [
381
- name,
382
- imp.path,
383
- imp.isTypeOnly
384
- ].join("-"))), /* @__PURE__ */ jsx(Type, {
385
- name,
386
- typedName,
387
- node: transformedNode,
388
- description,
389
- enumType,
390
- enumKeyCasing,
391
- optionalType,
392
- arrayType,
393
- syntaxType,
394
- resolver,
395
- keysToOmit
396
- })] });
397
- }
398
- const pathParams = params.filter((p) => p.in === "path");
399
- const queryParams = params.filter((p) => p.in === "query");
400
- const headerParams = params.filter((p) => p.in === "header");
401
- const responseTypes = node.responses.map((res) => {
402
- const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
403
- const baseResponseName = resolverTsLegacy.resolveResponseStatusName(node, res.statusCode);
404
- return renderSchemaType({
405
- node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
406
- name: responseName,
407
- typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
408
- description: res.description,
409
- keysToOmit: res.keysToOmit
410
- });
411
- });
412
- const requestType = node.requestBody?.schema ? renderSchemaType({
413
- node: nameUnnamedEnums(node.requestBody.schema, resolverTsLegacy.resolveDataName(node)),
414
- name: resolver.resolveDataName(node),
415
- typedName: resolver.resolveDataTypedName(node),
416
- description: node.requestBody.description ?? node.requestBody.schema.description,
417
- keysToOmit: node.requestBody.keysToOmit
418
- }) : null;
419
- const legacyParamTypes = [
420
- pathParams.length > 0 ? renderSchemaType({
421
- node: buildGroupedParamsSchema({
422
- params: pathParams,
423
- parentName: resolverTsLegacy.resolvePathParamsName(node)
424
- }),
425
- name: resolver.resolvePathParamsName(node),
426
- typedName: resolver.resolvePathParamsTypedName(node)
427
- }) : null,
428
- queryParams.length > 0 ? renderSchemaType({
429
- node: buildGroupedParamsSchema({
430
- params: queryParams,
431
- parentName: resolverTsLegacy.resolveQueryParamsName(node)
432
- }),
433
- name: resolver.resolveQueryParamsName(node),
434
- typedName: resolver.resolveQueryParamsTypedName(node)
435
- }) : null,
436
- headerParams.length > 0 ? renderSchemaType({
437
- node: buildGroupedParamsSchema({
438
- params: headerParams,
439
- parentName: resolverTsLegacy.resolveHeaderParamsName(node)
440
- }),
441
- name: resolver.resolveHeaderParamsName(node),
442
- typedName: resolver.resolveHeaderParamsTypedName(node)
443
- }) : null
444
- ];
445
- const legacyResponsesType = renderSchemaType({
446
- node: buildLegacyResponsesSchemaNode({
447
- node,
448
- resolver
449
- }),
450
- name: resolver.resolveResponsesName(node),
451
- typedName: resolver.resolveResponsesTypedName(node)
452
- });
453
- const legacyResponseType = renderSchemaType({
454
- node: buildLegacyResponseUnionSchemaNode({
455
- node,
456
- resolver
457
- }),
458
- name: resolver.resolveResponseName(node),
459
- typedName: resolver.resolveResponseTypedName(node)
460
- });
461
- return /* @__PURE__ */ jsxs(File, {
462
- baseName: file.baseName,
463
- path: file.path,
464
- meta: file.meta,
465
- banner: resolver.resolveBanner(adapter.rootNode, {
466
- output,
467
- config
468
- }),
469
- footer: resolver.resolveFooter(adapter.rootNode, {
470
- output,
471
- config
472
- }),
473
- children: [
474
- legacyParamTypes,
475
- responseTypes,
476
- requestType,
477
- legacyResponseType,
478
- legacyResponsesType
479
- ]
480
- });
481
- },
482
- Schema({ node, adapter, options, config }) {
483
- const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, resolver, transformers = [] } = options;
484
- const root = path.resolve(config.root, config.output.path);
485
- const mode = getMode(path.resolve(root, output.path));
486
- if (!node.name) return;
487
- const transformedNode = transform(node, composeTransformers(...transformers));
488
- const imports = adapter.getImports(transformedNode, (schemaName) => ({
489
- name: resolver.default(schemaName, "type"),
490
- path: resolver.resolveFile({
491
- name: schemaName,
492
- extname: ".ts"
493
- }, {
494
- root,
495
- output,
496
- group
497
- }).path
498
- }));
499
- const isEnumSchema = !!narrowSchema(node, schemaTypes.enum);
500
- const typedName = ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name);
501
- const type = {
502
- name: resolver.resolveName(node.name),
503
- typedName,
504
- file: resolver.resolveFile({
505
- name: node.name,
506
- extname: ".ts"
507
- }, {
508
- root,
509
- output,
510
- group
511
- })
512
- };
513
- return /* @__PURE__ */ jsxs(File, {
514
- baseName: type.file.baseName,
515
- path: type.file.path,
516
- meta: type.file.meta,
517
- banner: resolver.resolveBanner(adapter.rootNode, {
518
- output,
519
- config
520
- }),
521
- footer: resolver.resolveFooter(adapter.rootNode, {
522
- output,
523
- config
524
- }),
525
- children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
526
- root: type.file.path,
527
- path: imp.path,
528
- name: imp.name,
529
- isTypeOnly: true
530
- }, [
531
- node.name,
532
- imp.path,
533
- imp.isTypeOnly
534
- ].join("-"))), /* @__PURE__ */ jsx(Type, {
535
- name: type.name,
536
- typedName: type.typedName,
537
- node: transformedNode,
538
- enumType,
539
- enumKeyCasing,
540
- optionalType,
541
- arrayType,
542
- syntaxType,
543
- resolver
544
- })]
545
- });
546
- }
547
- });
548
- //#endregion
549
- export { typeGenerator as n, typeGeneratorLegacy as t };
550
-
551
- //# sourceMappingURL=generators-ByK18qUn.js.map