@kubb/swagger-ts 2.18.0 → 2.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-M3A7H6KB.cjs → chunk-WYQP4IDG.cjs} +175 -184
- package/dist/chunk-WYQP4IDG.cjs.map +1 -0
- package/dist/{chunk-2ZUZGZC4.js → chunk-ZOFIJQBL.js} +182 -191
- package/dist/chunk-ZOFIJQBL.js.map +1 -0
- package/dist/components.cjs +2 -2
- package/dist/components.js +1 -1
- package/dist/index.cjs +6 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -17
- package/dist/index.d.ts +13 -17
- package/dist/index.js +10 -7
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
- package/src/OperationGenerator.tsx +3 -3
- package/src/SchemaGenerator.tsx +8 -9
- package/src/components/OasType.tsx +2 -2
- package/src/components/OperationSchema.tsx +5 -5
- package/src/index.ts +9 -5
- package/src/plugin.ts +9 -9
- package/src/typeParser.ts +3 -3
- package/src/types.ts +2 -2
- package/dist/chunk-2ZUZGZC4.js.map +0 -1
- package/dist/chunk-M3A7H6KB.cjs.map +0 -1
- package/dist/index-DOy9O4ye.d.cts +0 -11
- package/dist/index-DOy9O4ye.d.ts +0 -11
@@ -1,15 +1,3 @@
|
|
1
|
-
// src/plugin.ts
|
2
|
-
import path from "path";
|
3
|
-
import { FileManager, PluginManager, createPlugin } from "@kubb/core";
|
4
|
-
import { camelCase, pascalCase } from "@kubb/core/transformers";
|
5
|
-
import { renderTemplate } from "@kubb/core/utils";
|
6
|
-
import { pluginName as swaggerPluginName } from "@kubb/swagger";
|
7
|
-
|
8
|
-
// src/OperationGenerator.tsx
|
9
|
-
import { App as App2, createRoot as createRoot2 } from "@kubb/react";
|
10
|
-
import { OperationGenerator as Generator2 } from "@kubb/swagger";
|
11
|
-
import { Oas as Oas3 } from "@kubb/swagger/components";
|
12
|
-
|
13
1
|
// src/components/OasType.tsx
|
14
2
|
import { Parser, File, Type, useApp } from "@kubb/react";
|
15
3
|
import { useOas } from "@kubb/swagger/hooks";
|
@@ -29,9 +17,9 @@ function OasType({ name, typeName, Template: Template2 = defaultTemplates.defaul
|
|
29
17
|
OasType.File = function({ name, typeName, templates = defaultTemplates }) {
|
30
18
|
const {
|
31
19
|
pluginManager,
|
32
|
-
plugin: { key:
|
20
|
+
plugin: { key: pluginKey }
|
33
21
|
} = useApp();
|
34
|
-
const file = pluginManager.getFile({ name, extName: ".ts", pluginKey
|
22
|
+
const file = pluginManager.getFile({ name, extName: ".ts", pluginKey });
|
35
23
|
const Template2 = templates.default;
|
36
24
|
return /* @__PURE__ */ jsx(Parser, { language: "typescript", children: /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
37
25
|
/* @__PURE__ */ jsx(File.Import, { name: ["Infer"], path: "@kubb/swagger-ts/oas", isTypeOnly: true }),
|
@@ -42,22 +30,175 @@ OasType.templates = defaultTemplates;
|
|
42
30
|
|
43
31
|
// src/components/OperationSchema.tsx
|
44
32
|
import transformers2 from "@kubb/core/transformers";
|
45
|
-
import { print as print2 } from "@kubb/ts
|
46
|
-
import * as factory2 from "@kubb/ts
|
33
|
+
import { print as print2 } from "@kubb/parser-ts";
|
34
|
+
import * as factory2 from "@kubb/parser-ts/factory";
|
47
35
|
import { Parser as Parser2, File as File2, useApp as useApp2 } from "@kubb/react";
|
48
|
-
import { Oas as
|
36
|
+
import { Oas as Oas3 } from "@kubb/swagger/components";
|
49
37
|
import { useOas as useOas2, useOperation, useOperationManager } from "@kubb/swagger/hooks";
|
50
38
|
|
51
39
|
// src/SchemaGenerator.tsx
|
40
|
+
import { App as App2, createRoot as createRoot2 } from "@kubb/react";
|
41
|
+
import { SchemaGenerator as Generator2 } from "@kubb/swagger";
|
42
|
+
import { Oas as Oas2 } from "@kubb/swagger/components";
|
43
|
+
|
44
|
+
// src/plugin.ts
|
45
|
+
import path from "path";
|
46
|
+
import { FileManager, PluginManager, createPlugin } from "@kubb/core";
|
47
|
+
import { camelCase, pascalCase } from "@kubb/core/transformers";
|
48
|
+
import { renderTemplate } from "@kubb/core/utils";
|
49
|
+
import { pluginSwaggerName } from "@kubb/swagger";
|
50
|
+
|
51
|
+
// src/OperationGenerator.tsx
|
52
52
|
import { App, createRoot } from "@kubb/react";
|
53
|
-
import {
|
53
|
+
import { OperationGenerator as Generator } from "@kubb/swagger";
|
54
54
|
import { Oas } from "@kubb/swagger/components";
|
55
|
+
import { jsx as jsx2 } from "@kubb/react/jsx-runtime";
|
56
|
+
var OperationGenerator = class extends Generator {
|
57
|
+
async all(operations) {
|
58
|
+
const { oas, pluginManager, plugin, mode } = this.context;
|
59
|
+
const root = createRoot({
|
60
|
+
logger: pluginManager.logger
|
61
|
+
});
|
62
|
+
root.render(
|
63
|
+
/* @__PURE__ */ jsx2(App, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsx2(Oas, { oas, operations, generator: this, children: plugin.options.oasType && /* @__PURE__ */ jsx2(OasType.File, { name: "oas", typeName: "Oas" }) }) })
|
64
|
+
);
|
65
|
+
return root.files;
|
66
|
+
}
|
67
|
+
async operation(operation, options) {
|
68
|
+
const { oas, pluginManager, plugin, mode } = this.context;
|
69
|
+
const root = createRoot({
|
70
|
+
logger: pluginManager.logger
|
71
|
+
});
|
72
|
+
root.render(
|
73
|
+
/* @__PURE__ */ jsx2(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx2(Oas, { oas, operations: [operation], generator: this, children: /* @__PURE__ */ jsx2(Oas.Operation, { operation, children: /* @__PURE__ */ jsx2(OperationSchema.File, {}) }) }) })
|
74
|
+
);
|
75
|
+
return root.files;
|
76
|
+
}
|
77
|
+
async get() {
|
78
|
+
return null;
|
79
|
+
}
|
80
|
+
async post() {
|
81
|
+
return null;
|
82
|
+
}
|
83
|
+
async put() {
|
84
|
+
return null;
|
85
|
+
}
|
86
|
+
async patch() {
|
87
|
+
return null;
|
88
|
+
}
|
89
|
+
async delete() {
|
90
|
+
return null;
|
91
|
+
}
|
92
|
+
};
|
93
|
+
|
94
|
+
// src/plugin.ts
|
95
|
+
var pluginTsName = "plugin-ts";
|
96
|
+
var pluginTs = createPlugin((options) => {
|
97
|
+
const {
|
98
|
+
output = { path: "types" },
|
99
|
+
group,
|
100
|
+
exclude = [],
|
101
|
+
include,
|
102
|
+
override = [],
|
103
|
+
enumType = "asConst",
|
104
|
+
enumSuffix = "",
|
105
|
+
dateType = "string",
|
106
|
+
unknownType = "any",
|
107
|
+
optionalType = "questionToken",
|
108
|
+
transformers: transformers3 = {},
|
109
|
+
oasType = false
|
110
|
+
} = options;
|
111
|
+
const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`;
|
112
|
+
return {
|
113
|
+
name: pluginTsName,
|
114
|
+
options: {
|
115
|
+
transformers: transformers3,
|
116
|
+
dateType,
|
117
|
+
optionalType,
|
118
|
+
oasType,
|
119
|
+
enumType,
|
120
|
+
enumSuffix,
|
121
|
+
// keep the used enumnames between SchemaGenerator and OperationGenerator per plugin(pluginKey)
|
122
|
+
usedEnumNames: {},
|
123
|
+
unknownType,
|
124
|
+
override
|
125
|
+
},
|
126
|
+
pre: [pluginSwaggerName],
|
127
|
+
resolvePath(baseName, pathMode, options2) {
|
128
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
129
|
+
const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path));
|
130
|
+
if (mode === "single") {
|
131
|
+
return path.resolve(root, output.path);
|
132
|
+
}
|
133
|
+
if (options2?.tag && group?.type === "tag") {
|
134
|
+
const tag = camelCase(options2.tag);
|
135
|
+
return path.resolve(root, renderTemplate(template, { tag }), baseName);
|
136
|
+
}
|
137
|
+
return path.resolve(root, output.path, baseName);
|
138
|
+
},
|
139
|
+
resolveName(name, type) {
|
140
|
+
const resolvedName = pascalCase(name, { isFile: type === "file" });
|
141
|
+
if (type) {
|
142
|
+
return transformers3?.name?.(resolvedName, type) || resolvedName;
|
143
|
+
}
|
144
|
+
return resolvedName;
|
145
|
+
},
|
146
|
+
async writeFile(source, writePath) {
|
147
|
+
if (!writePath.endsWith(".ts") || !source) {
|
148
|
+
return;
|
149
|
+
}
|
150
|
+
return this.fileManager.write(source, writePath, { sanity: false });
|
151
|
+
},
|
152
|
+
async buildStart() {
|
153
|
+
const [swaggerPlugin] = PluginManager.getDependedPlugins(this.plugins, [pluginSwaggerName]);
|
154
|
+
const oas = await swaggerPlugin.api.getOas();
|
155
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
156
|
+
const mode = FileManager.getMode(path.resolve(root, output.path));
|
157
|
+
const schemaGenerator = new SchemaGenerator(this.plugin.options, {
|
158
|
+
oas,
|
159
|
+
pluginManager: this.pluginManager,
|
160
|
+
plugin: this.plugin,
|
161
|
+
contentType: swaggerPlugin.api.contentType,
|
162
|
+
include: void 0,
|
163
|
+
override,
|
164
|
+
mode,
|
165
|
+
output: output.path
|
166
|
+
});
|
167
|
+
const schemaFiles = await schemaGenerator.build();
|
168
|
+
await this.addFile(...schemaFiles);
|
169
|
+
const operationGenerator = new OperationGenerator(this.plugin.options, {
|
170
|
+
oas,
|
171
|
+
pluginManager: this.pluginManager,
|
172
|
+
plugin: this.plugin,
|
173
|
+
contentType: swaggerPlugin.api.contentType,
|
174
|
+
exclude,
|
175
|
+
include,
|
176
|
+
override,
|
177
|
+
mode
|
178
|
+
});
|
179
|
+
const operationFiles = await operationGenerator.build();
|
180
|
+
await this.addFile(...operationFiles);
|
181
|
+
},
|
182
|
+
async buildEnd() {
|
183
|
+
if (this.config.output.write === false) {
|
184
|
+
return;
|
185
|
+
}
|
186
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
187
|
+
await this.fileManager.addIndexes({
|
188
|
+
root,
|
189
|
+
output,
|
190
|
+
meta: { pluginKey: this.plugin.key },
|
191
|
+
logger: this.logger
|
192
|
+
});
|
193
|
+
}
|
194
|
+
};
|
195
|
+
});
|
55
196
|
|
56
197
|
// src/typeParser.ts
|
57
198
|
import transformers from "@kubb/core/transformers";
|
58
|
-
import { print } from "@kubb/ts
|
59
|
-
import * as factory from "@kubb/ts
|
60
|
-
import { SchemaGenerator, isKeyword, schemaKeywords } from "@kubb/swagger";
|
199
|
+
import { print } from "@kubb/parser-ts";
|
200
|
+
import * as factory from "@kubb/parser-ts/factory";
|
201
|
+
import { SchemaGenerator as SchemaGenerator2, isKeyword, schemaKeywords } from "@kubb/swagger";
|
61
202
|
var typeKeywordMapper = {
|
62
203
|
any: () => factory.keywordTypeNodes.any,
|
63
204
|
unknown: () => factory.keywordTypeNodes.unknown,
|
@@ -285,7 +426,7 @@ function typeParser(schemas, options) {
|
|
285
426
|
nonNullable: true
|
286
427
|
}) : type
|
287
428
|
});
|
288
|
-
const enumSchemas =
|
429
|
+
const enumSchemas = SchemaGenerator2.deepSearch(schemas, schemaKeywords.enum);
|
289
430
|
if (enumSchemas) {
|
290
431
|
enumSchemas.forEach((enumSchema) => {
|
291
432
|
extraNodes.push(
|
@@ -313,15 +454,15 @@ function typeParser(schemas, options) {
|
|
313
454
|
}
|
314
455
|
|
315
456
|
// src/SchemaGenerator.tsx
|
316
|
-
import { jsx as
|
317
|
-
var
|
457
|
+
import { jsx as jsx3 } from "@kubb/react/jsx-runtime";
|
458
|
+
var SchemaGenerator = class extends Generator2 {
|
318
459
|
async schema(name, object) {
|
319
460
|
const { oas, pluginManager, mode, plugin, output } = this.context;
|
320
|
-
const root =
|
461
|
+
const root = createRoot2({
|
321
462
|
logger: pluginManager.logger
|
322
463
|
});
|
323
464
|
root.render(
|
324
|
-
/* @__PURE__ */
|
465
|
+
/* @__PURE__ */ jsx3(App2, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsx3(Oas2, { oas, children: /* @__PURE__ */ jsx3(Oas2.Schema, { generator: this, name, object, children: /* @__PURE__ */ jsx3(Oas2.Schema.File, { isTypeOnly: true, output }) }) }) })
|
325
466
|
);
|
326
467
|
return root.files;
|
327
468
|
}
|
@@ -330,17 +471,17 @@ var SchemaGenerator2 = class extends Generator {
|
|
330
471
|
const texts = [];
|
331
472
|
const resolvedName = this.context.pluginManager.resolveName({
|
332
473
|
name,
|
333
|
-
pluginKey,
|
474
|
+
pluginKey: [pluginTsName],
|
334
475
|
type: "function"
|
335
476
|
});
|
336
|
-
const
|
477
|
+
const resolvedTypeName = this.context.pluginManager.resolveName({
|
337
478
|
name,
|
338
|
-
pluginKey,
|
479
|
+
pluginKey: [pluginTsName],
|
339
480
|
type: "type"
|
340
481
|
});
|
341
482
|
const typeOutput = typeParser(schemas, {
|
342
483
|
name: resolvedName,
|
343
|
-
typeName:
|
484
|
+
typeName: resolvedTypeName,
|
344
485
|
description,
|
345
486
|
enumType: this.options.enumType || "asConst",
|
346
487
|
optionalType: this.options.optionalType,
|
@@ -359,7 +500,7 @@ var SchemaGenerator2 = class extends Generator {
|
|
359
500
|
};
|
360
501
|
|
361
502
|
// src/components/OperationSchema.tsx
|
362
|
-
import { Fragment as Fragment2, jsx as
|
503
|
+
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs2 } from "@kubb/react/jsx-runtime";
|
363
504
|
function printCombinedSchema(name, operation, schemas) {
|
364
505
|
const properties = {};
|
365
506
|
if (schemas.response) {
|
@@ -403,7 +544,7 @@ function printCombinedSchema(name, operation, schemas) {
|
|
403
544
|
return print2(namespaceNode);
|
404
545
|
}
|
405
546
|
function OperationSchema({}) {
|
406
|
-
return /* @__PURE__ */
|
547
|
+
return /* @__PURE__ */ jsx4(Fragment2, {});
|
407
548
|
}
|
408
549
|
OperationSchema.File = function({}) {
|
409
550
|
const { pluginManager, plugin, mode, fileManager } = useApp2();
|
@@ -413,7 +554,7 @@ OperationSchema.File = function({}) {
|
|
413
554
|
const file = getFile(operation);
|
414
555
|
const schemas = getSchemas(operation);
|
415
556
|
const factoryName = getName(operation, { type: "type" });
|
416
|
-
const generator = new
|
557
|
+
const generator = new SchemaGenerator(plugin.options, {
|
417
558
|
oas,
|
418
559
|
plugin,
|
419
560
|
pluginManager,
|
@@ -422,171 +563,21 @@ OperationSchema.File = function({}) {
|
|
422
563
|
});
|
423
564
|
const items = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean);
|
424
565
|
const mapItem = ({ name, schema: object, ...options }, i) => {
|
425
|
-
return /* @__PURE__ */ jsxs2(
|
426
|
-
mode === "split" && /* @__PURE__ */
|
427
|
-
/* @__PURE__ */
|
566
|
+
return /* @__PURE__ */ jsxs2(Oas3.Schema, { generator, name, object, children: [
|
567
|
+
mode === "split" && /* @__PURE__ */ jsx4(Oas3.Schema.Imports, { isTypeOnly: true }),
|
568
|
+
/* @__PURE__ */ jsx4(File2.Source, { children: /* @__PURE__ */ jsx4(Oas3.Schema.Source, { options }) })
|
428
569
|
] }, i);
|
429
570
|
};
|
430
|
-
return /* @__PURE__ */
|
571
|
+
return /* @__PURE__ */ jsx4(Parser2, { language: "typescript", children: /* @__PURE__ */ jsxs2(File2, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
431
572
|
items.map(mapItem),
|
432
|
-
/* @__PURE__ */
|
573
|
+
/* @__PURE__ */ jsx4(File2.Source, { children: printCombinedSchema(factoryName, operation, schemas) })
|
433
574
|
] }) });
|
434
575
|
};
|
435
576
|
|
436
|
-
// src/OperationGenerator.tsx
|
437
|
-
import { jsx as jsx4 } from "@kubb/react/jsx-runtime";
|
438
|
-
var OperationGenerator = class extends Generator2 {
|
439
|
-
async all(operations) {
|
440
|
-
const { oas, pluginManager, plugin, mode } = this.context;
|
441
|
-
const root = createRoot2({
|
442
|
-
logger: pluginManager.logger
|
443
|
-
});
|
444
|
-
root.render(
|
445
|
-
/* @__PURE__ */ jsx4(App2, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsx4(Oas3, { oas, operations, generator: this, children: plugin.options.oasType && /* @__PURE__ */ jsx4(OasType.File, { name: "oas", typeName: "Oas" }) }) })
|
446
|
-
);
|
447
|
-
return root.files;
|
448
|
-
}
|
449
|
-
async operation(operation, options) {
|
450
|
-
const { oas, pluginManager, plugin, mode } = this.context;
|
451
|
-
const root = createRoot2({
|
452
|
-
logger: pluginManager.logger
|
453
|
-
});
|
454
|
-
root.render(
|
455
|
-
/* @__PURE__ */ jsx4(App2, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx4(Oas3, { oas, operations: [operation], generator: this, children: /* @__PURE__ */ jsx4(Oas3.Operation, { operation, children: /* @__PURE__ */ jsx4(OperationSchema.File, {}) }) }) })
|
456
|
-
);
|
457
|
-
return root.files;
|
458
|
-
}
|
459
|
-
async get() {
|
460
|
-
return null;
|
461
|
-
}
|
462
|
-
async post() {
|
463
|
-
return null;
|
464
|
-
}
|
465
|
-
async put() {
|
466
|
-
return null;
|
467
|
-
}
|
468
|
-
async patch() {
|
469
|
-
return null;
|
470
|
-
}
|
471
|
-
async delete() {
|
472
|
-
return null;
|
473
|
-
}
|
474
|
-
};
|
475
|
-
|
476
|
-
// src/plugin.ts
|
477
|
-
var pluginName = "swagger-ts";
|
478
|
-
var pluginKey = [pluginName];
|
479
|
-
var definePlugin = createPlugin((options) => {
|
480
|
-
const {
|
481
|
-
output = { path: "types" },
|
482
|
-
group,
|
483
|
-
exclude = [],
|
484
|
-
include,
|
485
|
-
override = [],
|
486
|
-
enumType = "asConst",
|
487
|
-
enumSuffix = "",
|
488
|
-
dateType = "string",
|
489
|
-
unknownType = "any",
|
490
|
-
optionalType = "questionToken",
|
491
|
-
transformers: transformers3 = {},
|
492
|
-
oasType = false
|
493
|
-
} = options;
|
494
|
-
const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`;
|
495
|
-
return {
|
496
|
-
name: pluginName,
|
497
|
-
options: {
|
498
|
-
transformers: transformers3,
|
499
|
-
dateType,
|
500
|
-
optionalType,
|
501
|
-
oasType,
|
502
|
-
enumType,
|
503
|
-
enumSuffix,
|
504
|
-
// keep the used enumnames between SchemaGenerator and OperationGenerator per plugin(pluginKey)
|
505
|
-
usedEnumNames: {},
|
506
|
-
unknownType,
|
507
|
-
override
|
508
|
-
},
|
509
|
-
pre: [swaggerPluginName],
|
510
|
-
resolvePath(baseName, pathMode, options2) {
|
511
|
-
const root = path.resolve(this.config.root, this.config.output.path);
|
512
|
-
const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path));
|
513
|
-
if (mode === "single") {
|
514
|
-
return path.resolve(root, output.path);
|
515
|
-
}
|
516
|
-
if (options2?.tag && group?.type === "tag") {
|
517
|
-
const tag = camelCase(options2.tag);
|
518
|
-
return path.resolve(root, renderTemplate(template, { tag }), baseName);
|
519
|
-
}
|
520
|
-
return path.resolve(root, output.path, baseName);
|
521
|
-
},
|
522
|
-
resolveName(name, type) {
|
523
|
-
const resolvedName = pascalCase(name, { isFile: type === "file" });
|
524
|
-
if (type) {
|
525
|
-
return transformers3?.name?.(resolvedName, type) || resolvedName;
|
526
|
-
}
|
527
|
-
return resolvedName;
|
528
|
-
},
|
529
|
-
async writeFile(source, writePath) {
|
530
|
-
if (!writePath.endsWith(".ts") || !source) {
|
531
|
-
return;
|
532
|
-
}
|
533
|
-
return this.fileManager.write(source, writePath, { sanity: false });
|
534
|
-
},
|
535
|
-
async buildStart() {
|
536
|
-
const [swaggerPlugin] = PluginManager.getDependedPlugins(this.plugins, [swaggerPluginName]);
|
537
|
-
const oas = await swaggerPlugin.api.getOas();
|
538
|
-
const root = path.resolve(this.config.root, this.config.output.path);
|
539
|
-
const mode = FileManager.getMode(path.resolve(root, output.path));
|
540
|
-
const schemaGenerator = new SchemaGenerator2(this.plugin.options, {
|
541
|
-
oas,
|
542
|
-
pluginManager: this.pluginManager,
|
543
|
-
plugin: this.plugin,
|
544
|
-
contentType: swaggerPlugin.api.contentType,
|
545
|
-
include: void 0,
|
546
|
-
override,
|
547
|
-
mode,
|
548
|
-
output: output.path
|
549
|
-
});
|
550
|
-
const schemaFiles = await schemaGenerator.build();
|
551
|
-
await this.addFile(...schemaFiles);
|
552
|
-
const operationGenerator = new OperationGenerator(this.plugin.options, {
|
553
|
-
oas,
|
554
|
-
pluginManager: this.pluginManager,
|
555
|
-
plugin: this.plugin,
|
556
|
-
contentType: swaggerPlugin.api.contentType,
|
557
|
-
exclude,
|
558
|
-
include,
|
559
|
-
override,
|
560
|
-
mode
|
561
|
-
});
|
562
|
-
const operationFiles = await operationGenerator.build();
|
563
|
-
await this.addFile(...operationFiles);
|
564
|
-
},
|
565
|
-
async buildEnd() {
|
566
|
-
if (this.config.output.write === false) {
|
567
|
-
return;
|
568
|
-
}
|
569
|
-
const root = path.resolve(this.config.root, this.config.output.path);
|
570
|
-
await this.fileManager.addIndexes({
|
571
|
-
root,
|
572
|
-
output,
|
573
|
-
meta: { pluginKey: this.plugin.key },
|
574
|
-
logger: this.logger
|
575
|
-
});
|
576
|
-
}
|
577
|
-
};
|
578
|
-
});
|
579
|
-
|
580
|
-
// src/index.ts
|
581
|
-
var definePluginDefault = definePlugin;
|
582
|
-
var src_default = definePluginDefault;
|
583
|
-
|
584
577
|
export {
|
585
578
|
OasType,
|
586
579
|
OperationSchema,
|
587
|
-
|
588
|
-
|
589
|
-
definePlugin,
|
590
|
-
src_default
|
580
|
+
pluginTsName,
|
581
|
+
pluginTs
|
591
582
|
};
|
592
|
-
//# sourceMappingURL=chunk-
|
583
|
+
//# sourceMappingURL=chunk-ZOFIJQBL.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/OasType.tsx","../src/components/OperationSchema.tsx","../src/SchemaGenerator.tsx","../src/plugin.ts","../src/OperationGenerator.tsx","../src/typeParser.ts"],"sourcesContent":["import { Parser, File, Type, useApp } from '@kubb/react'\nimport { useOas } from '@kubb/swagger/hooks'\n\nimport type { OasTypes } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginTs } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n typeName: string\n api: OasTypes.OASDocument\n}\n\nfunction Template({ name, typeName, api }: TemplateProps): ReactNode {\n return (\n <>\n {`export const ${name} = ${JSON.stringify(api, undefined, 2)} as const`}\n <br />\n <Type name={typeName} export>\n {`Infer<typeof ${name}>`}\n </Type>\n </>\n )\n}\n\nconst defaultTemplates = { default: Template } as const\n\ntype Props = {\n name: string\n typeName: string\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<React.ComponentProps<typeof Template>>\n}\n\nexport function OasType({ name, typeName, Template = defaultTemplates.default }: Props): ReactNode {\n const oas = useOas()\n\n return <Template name={name} typeName={typeName} api={oas.api} />\n}\n\ntype FileProps = {\n name: string\n typeName: string\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: typeof defaultTemplates\n}\n\nOasType.File = function ({ name, typeName, templates = defaultTemplates }: FileProps): ReactNode {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginTs>()\n const file = pluginManager.getFile({ name, extName: '.ts', pluginKey })\n\n const Template = templates.default\n\n return (\n <Parser language=\"typescript\">\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={['Infer']} path=\"@kubb/swagger-ts/oas\" isTypeOnly />\n <File.Source>\n <OasType Template={Template} name={name} typeName={typeName} />\n </File.Source>\n </File>\n </Parser>\n )\n}\n\nOasType.templates = defaultTemplates\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser-ts'\nimport * as factory from '@kubb/parser-ts/factory'\nimport { Parser, File, useApp } from '@kubb/react'\nimport { Oas, Schema } from '@kubb/swagger/components'\nimport { useOas, useOperation, useOperationManager } from '@kubb/swagger/hooks'\n\nimport { SchemaGenerator } from '../SchemaGenerator.tsx'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { Operation } from '@kubb/oas'\nimport type { ts } from '@kubb/parser-ts'\nimport type { OperationSchema as OperationSchemaType } from '@kubb/swagger'\nimport type { OperationSchemas } from '@kubb/swagger'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginTs } from '../types.ts'\n\ntype Props = {}\n\nfunction printCombinedSchema(name: string, operation: Operation, schemas: OperationSchemas): string {\n const properties: Record<string, ts.TypeNode> = {}\n\n if (schemas.response) {\n properties['response'] = factory.createTypeReferenceNode(factory.createIdentifier(schemas.response.name), undefined)\n }\n\n if (schemas.request) {\n properties['request'] = factory.createTypeReferenceNode(factory.createIdentifier(schemas.request.name), undefined)\n }\n\n if (schemas.pathParams) {\n properties['pathParams'] = factory.createTypeReferenceNode(factory.createIdentifier(schemas.pathParams.name), undefined)\n }\n\n if (schemas.queryParams) {\n properties['queryParams'] = factory.createTypeReferenceNode(factory.createIdentifier(schemas.queryParams.name), undefined)\n }\n\n if (schemas.headerParams) {\n properties['headerParams'] = factory.createTypeReferenceNode(factory.createIdentifier(schemas.headerParams.name), undefined)\n }\n\n if (schemas.errors) {\n properties['errors'] = factory.createUnionDeclaration({\n nodes: schemas.errors.map((error) => {\n return factory.createTypeReferenceNode(factory.createIdentifier(error.name), undefined)\n }),\n })!\n }\n\n const namespaceNode = factory.createTypeAliasDeclaration({\n name: operation.method === 'get' ? `${name}Query` : `${name}Mutation`,\n type: factory.createTypeLiteralNode(\n Object.keys(properties)\n .map((key) => {\n const type = properties[key]\n if (!type) {\n return undefined\n }\n\n return factory.createPropertySignature({\n name: transformers.pascalCase(key),\n type,\n })\n })\n .filter(Boolean),\n ),\n modifiers: [factory.modifiers.export],\n })\n\n return print(namespaceNode)\n}\n\nexport function OperationSchema({}: Props): ReactNode {\n return <></>\n}\n\ntype FileProps = {}\n\nOperationSchema.File = function ({}: FileProps): ReactNode {\n const { pluginManager, plugin, mode, fileManager } = useApp<PluginTs>()\n const oas = useOas()\n const { getSchemas, getFile, getName } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const factoryName = getName(operation, { type: 'type' })\n const generator = new SchemaGenerator(plugin.options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: plugin.options.override,\n })\n\n const items = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean)\n\n const mapItem = ({ name, schema: object, ...options }: OperationSchemaType, i: number) => {\n return (\n <Oas.Schema key={i} generator={generator} name={name} object={object}>\n {mode === 'split' && <Oas.Schema.Imports isTypeOnly />}\n <File.Source>\n <Oas.Schema.Source options={options} />\n </File.Source>\n </Oas.Schema>\n )\n }\n\n return (\n <Parser language=\"typescript\">\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {items.map(mapItem)}\n\n <File.Source>{printCombinedSchema(factoryName, operation, schemas)}</File.Source>\n </File>\n </Parser>\n )\n}\n","import { App, createRoot } from '@kubb/react'\nimport { SchemaGenerator as Generator } from '@kubb/swagger'\nimport { Oas } from '@kubb/swagger/components'\n\nimport { pluginTsName } from './plugin.ts'\nimport { typeParser } from './typeParser.ts'\n\nimport type { SchemaObject } from '@kubb/oas'\nimport type { SchemaGeneratorBuildOptions, SchemaMethodResult, Schema as SchemaType } from '@kubb/swagger'\nimport type { FileMeta, PluginTs } from './types.ts'\n\nexport class SchemaGenerator extends Generator<PluginTs['resolvedOptions'], PluginTs> {\n async schema(name: string, object: SchemaObject): SchemaMethodResult<FileMeta> {\n const { oas, pluginManager, mode, plugin, output } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas}>\n <Oas.Schema generator={this} name={name} object={object}>\n <Oas.Schema.File isTypeOnly output={output} />\n </Oas.Schema>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n // TODO convert to a react component called `Schema.Parser` with props parser as part of the SchemaContext\n getSource(name: string, schemas: SchemaType[], { keysToOmit, description }: SchemaGeneratorBuildOptions = {}): string[] {\n const texts: string[] = []\n\n const resolvedName = this.context.pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n const resolvedTypeName = this.context.pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n\n const typeOutput = typeParser(schemas, {\n name: resolvedName,\n typeName: resolvedTypeName,\n description,\n enumType: this.options.enumType || 'asConst',\n optionalType: this.options.optionalType,\n keysToOmit,\n })\n\n texts.push(typeOutput)\n\n return texts\n }\n /**\n * @deprecated only used for testing\n */\n\n buildSource(name: string, schema: SchemaObject, options: SchemaGeneratorBuildOptions = {}): string[] {\n const schemas = this.buildSchemas({ schema, name })\n\n return this.getSource(name, schemas, options)\n }\n}\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginSwaggerName } from '@kubb/swagger'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { SchemaGenerator } from './SchemaGenerator.tsx'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginSwagger as SwaggerPluginOptions } from '@kubb/swagger'\nimport type { PluginTs } from './types.ts'\n\nexport const pluginTsName = 'plugin-ts' satisfies PluginTs['name']\n\nexport const pluginTs = createPlugin<PluginTs>((options) => {\n const {\n output = { path: 'types' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumSuffix = '',\n dateType = 'string',\n unknownType = 'any',\n optionalType = 'questionToken',\n transformers = {},\n oasType = false,\n } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginTsName,\n options: {\n transformers,\n dateType,\n optionalType,\n oasType,\n enumType,\n enumSuffix,\n // keep the used enumnames between SchemaGenerator and OperationGenerator per plugin(pluginKey)\n usedEnumNames: {},\n unknownType,\n override,\n },\n pre: [pluginSwaggerName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = pascalCase(name, { isFile: type === 'file' })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async writeFile(source, writePath) {\n if (!writePath.endsWith('.ts') || !source) {\n return\n }\n\n return this.fileManager.write(source, writePath, { sanity: false })\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginSwaggerName])\n\n const oas = await swaggerPlugin.api.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.api.contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build()\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.api.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build()\n await this.addFile(...operationFiles)\n },\n async buildEnd() {\n if (this.config.output.write === false) {\n return\n }\n\n const root = path.resolve(this.config.root, this.config.output.path)\n\n await this.fileManager.addIndexes({\n root,\n output,\n meta: { pluginKey: this.plugin.key },\n logger: this.logger,\n })\n },\n }\n})\n","import { App, createRoot } from '@kubb/react'\nimport { OperationGenerator as Generator } from '@kubb/swagger'\nimport { Oas } from '@kubb/swagger/components'\n\nimport { OasType } from './components/OasType.tsx'\nimport { OperationSchema } from './components/OperationSchema.tsx'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult } from '@kubb/swagger'\nimport type { FileMeta, PluginTs } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginTs['resolvedOptions'], PluginTs> {\n async all(operations: Operation[]): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={this}>\n {plugin.options.oasType && <OasType.File name=\"oas\" typeName=\"Oas\" />}\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async operation(operation: Operation, options: PluginTs['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <OperationSchema.File />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async get(): OperationMethodResult<FileMeta> {\n return null\n }\n\n async post(): OperationMethodResult<FileMeta> {\n return null\n }\n\n async put(): OperationMethodResult<FileMeta> {\n return null\n }\n async patch(): OperationMethodResult<FileMeta> {\n return null\n }\n async delete(): OperationMethodResult<FileMeta> {\n return null\n }\n}\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser-ts'\nimport * as factory from '@kubb/parser-ts/factory'\nimport { SchemaGenerator, isKeyword, schemaKeywords } from '@kubb/swagger'\n\nimport type { ts } from '@kubb/parser-ts'\nimport type { Schema, SchemaKeywordMapper, SchemaMapper } from '@kubb/swagger'\n\nexport const typeKeywordMapper = {\n any: () => factory.keywordTypeNodes.any,\n unknown: () => factory.keywordTypeNodes.unknown,\n number: () => factory.keywordTypeNodes.number,\n integer: () => factory.keywordTypeNodes.number,\n object: (nodes?: ts.TypeElement[]) => {\n if (!nodes) {\n return factory.keywordTypeNodes.object\n }\n\n return factory.createTypeLiteralNode(nodes)\n },\n string: () => factory.keywordTypeNodes.string,\n boolean: () => factory.keywordTypeNodes.boolean,\n undefined: () => factory.keywordTypeNodes.undefined,\n nullable: undefined,\n null: () => factory.keywordTypeNodes.null,\n nullish: undefined,\n array: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createArrayDeclaration({ nodes })\n },\n tuple: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createTupleTypeNode(nodes)\n },\n enum: (name?: string) => {\n if (!name) {\n return undefined\n }\n\n return factory.createTypeReferenceNode(name, undefined)\n },\n union: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createUnionDeclaration({\n withParentheses: true,\n nodes,\n })\n },\n const: (name?: string | number, format?: 'string' | 'number') => {\n if (!name) {\n return undefined\n }\n\n if (format === 'number') {\n return factory.createLiteralTypeNode(factory.createNumericLiteral(name))\n }\n\n return factory.createLiteralTypeNode(factory.createStringLiteral(name.toString()))\n },\n datetime: () => factory.keywordTypeNodes.string,\n date: (type: 'date' | 'string' = 'string') =>\n type === 'string' ? factory.keywordTypeNodes.string : factory.createTypeReferenceNode(factory.createIdentifier('Date')),\n time: (type: 'date' | 'string' = 'string') =>\n type === 'string' ? factory.keywordTypeNodes.string : factory.createTypeReferenceNode(factory.createIdentifier('Date')),\n uuid: undefined,\n url: undefined,\n strict: undefined,\n default: undefined,\n and: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createIntersectionDeclaration({\n withParentheses: true,\n nodes,\n })\n },\n describe: undefined,\n min: undefined,\n max: undefined,\n optional: undefined,\n matches: undefined,\n email: undefined,\n firstName: undefined,\n lastName: undefined,\n password: undefined,\n phone: undefined,\n readOnly: undefined,\n ref: (propertyName?: string) => {\n if (!propertyName) {\n return undefined\n }\n\n return factory.createTypeReferenceNode(propertyName, undefined)\n },\n blob: () => factory.createTypeReferenceNode('Blob', []),\n deprecated: undefined,\n example: undefined,\n schema: undefined,\n catchall: undefined,\n name: undefined,\n} satisfies SchemaMapper<ts.Node | null | undefined>\n\ntype ParserOptions = {\n name: string\n typeName?: string\n description?: string\n /**\n * @default `'questionToken'`\n */\n optionalType: 'questionToken' | 'undefined' | 'questionTokenAndUndefined'\n /**\n * @default `'asConst'`\n */\n enumType: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal'\n keysToOmit?: string[]\n mapper?: SchemaMapper\n}\n\nexport function parseTypeMeta(parent: Schema | undefined, current: Schema, options: ParserOptions): ts.Node | null | undefined {\n const value = typeKeywordMapper[current.keyword as keyof typeof typeKeywordMapper]\n\n if (!value) {\n return undefined\n }\n\n if (isKeyword(current, schemaKeywords.union)) {\n return typeKeywordMapper.union(current.args.map((schema) => parseTypeMeta(current, schema, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(current, schemaKeywords.and)) {\n return typeKeywordMapper.and(current.args.map((schema) => parseTypeMeta(current, schema, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(current, schemaKeywords.array)) {\n return typeKeywordMapper.array(current.args.items.map((schema) => parseTypeMeta(current, schema, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(current, schemaKeywords.enum)) {\n return typeKeywordMapper.enum(current.args.typeName)\n }\n\n if (isKeyword(current, schemaKeywords.ref)) {\n return typeKeywordMapper.ref(current.args.name)\n }\n\n if (isKeyword(current, schemaKeywords.blob)) {\n return value()\n }\n\n if (isKeyword(current, schemaKeywords.tuple)) {\n return typeKeywordMapper.tuple(current.args.map((schema) => parseTypeMeta(current, schema, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(current, schemaKeywords.const)) {\n return typeKeywordMapper.const(current.args.name, current.args.format)\n }\n\n if (isKeyword(current, schemaKeywords.object)) {\n const properties = Object.entries(current.args?.properties || {})\n .filter((item) => {\n const schemas = item[1]\n return schemas && typeof schemas.map === 'function'\n })\n .map(([_name, schemas]) => {\n let name = _name\n const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n\n if (nameSchema) {\n name = nameSchema.args\n }\n\n const isNullish = schemas.some((schema) => schema.keyword === schemaKeywords.nullish)\n const isNullable = schemas.some((schema) => schema.keyword === schemaKeywords.nullable)\n const isOptional = schemas.some((schema) => schema.keyword === schemaKeywords.optional)\n const isReadonly = schemas.some((schema) => schema.keyword === schemaKeywords.readOnly)\n const describeSchema = schemas.find((schema) => schema.keyword === schemaKeywords.describe) as SchemaKeywordMapper['describe'] | undefined\n const deprecatedSchema = schemas.find((schema) => schema.keyword === schemaKeywords.deprecated) as SchemaKeywordMapper['deprecated'] | undefined\n const defaultSchema = schemas.find((schema) => schema.keyword === schemaKeywords.default) as SchemaKeywordMapper['default'] | undefined\n const exampleSchema = schemas.find((schema) => schema.keyword === schemaKeywords.example) as SchemaKeywordMapper['example'] | undefined\n const schemaSchema = schemas.find((schema) => schema.keyword === schemaKeywords.schema) as SchemaKeywordMapper['schema'] | undefined\n\n let type = schemas.map((schema) => parseTypeMeta(current, schema, options)).filter(Boolean)[0] as ts.TypeNode\n\n if (isNullable) {\n type = factory.createUnionDeclaration({\n nodes: [type, factory.keywordTypeNodes.null],\n }) as ts.TypeNode\n }\n\n if (isNullish && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({\n nodes: [type, factory.keywordTypeNodes.undefined],\n }) as ts.TypeNode\n }\n\n if (isOptional && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({\n nodes: [type, factory.keywordTypeNodes.undefined],\n }) as ts.TypeNode\n }\n\n const propertySignature = factory.createPropertySignature({\n questionToken: isOptional || isNullish ? ['questionToken', 'questionTokenAndUndefined'].includes(options.optionalType as string) : false,\n name,\n type,\n readOnly: isReadonly,\n })\n\n return factory.appendJSDocToNode({\n node: propertySignature,\n comments: [\n describeSchema ? `@description ${transformers.jsStringEscape(describeSchema.args)}` : undefined,\n deprecatedSchema ? '@deprecated' : undefined,\n defaultSchema ? `@default ${defaultSchema.args}` : undefined,\n exampleSchema ? `@example ${exampleSchema.args}` : undefined,\n schemaSchema?.args?.type || schemaSchema?.args?.format\n ? [`@type ${schemaSchema?.args?.type || 'unknown'}${!isOptional ? '' : ' | undefined'}`, schemaSchema?.args?.format].filter(Boolean).join(', ')\n : undefined,\n ].filter(Boolean),\n })\n })\n\n const additionalProperties = current.args?.additionalProperties?.length\n ? factory.createIndexSignature(\n current.args.additionalProperties\n .map((schema) => parseTypeMeta(current, schema, options))\n .filter(Boolean)\n .at(0) as ts.TypeNode,\n )\n : undefined\n\n return typeKeywordMapper.object([...properties, additionalProperties].filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.datetime)) {\n return typeKeywordMapper.datetime()\n }\n\n if (isKeyword(current, schemaKeywords.date)) {\n return typeKeywordMapper.date(current.args.type)\n }\n\n if (isKeyword(current, schemaKeywords.time)) {\n return typeKeywordMapper.time(current.args.type)\n }\n\n if (current.keyword in typeKeywordMapper) {\n return value()\n }\n\n return undefined\n}\n\nexport function typeParser(schemas: Schema[], options: ParserOptions): string {\n const nodes: ts.Node[] = []\n const extraNodes: ts.Node[] = []\n\n if (!schemas.length) {\n return ''\n }\n\n const isNullish = schemas.some((item) => item.keyword === schemaKeywords.nullish)\n const isNullable = schemas.some((item) => item.keyword === schemaKeywords.nullable)\n const isOptional = schemas.some((item) => item.keyword === schemaKeywords.optional)\n\n let type =\n (schemas\n .map((schema) => parseTypeMeta(undefined, schema, options))\n .filter(Boolean)\n .at(0) as ts.TypeNode) || typeKeywordMapper.undefined()\n\n if (isNullable) {\n type = factory.createUnionDeclaration({\n nodes: [type, factory.keywordTypeNodes.null],\n }) as ts.TypeNode\n }\n\n if (isNullish && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({\n nodes: [type, factory.keywordTypeNodes.undefined],\n }) as ts.TypeNode\n }\n\n if (isOptional && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({\n nodes: [type, factory.keywordTypeNodes.undefined],\n }) as ts.TypeNode\n }\n\n const node = factory.createTypeAliasDeclaration({\n modifiers: [factory.modifiers.export],\n name: options.name,\n type: options.keysToOmit?.length\n ? factory.createOmitDeclaration({\n keys: options.keysToOmit,\n type,\n nonNullable: true,\n })\n : type,\n })\n\n const enumSchemas = SchemaGenerator.deepSearch(schemas, schemaKeywords.enum)\n if (enumSchemas) {\n enumSchemas.forEach((enumSchema) => {\n extraNodes.push(\n ...factory.createEnumDeclaration({\n name: transformers.camelCase(enumSchema.args.name),\n typeName: enumSchema.args.typeName,\n enums: enumSchema.args.items\n .map((item) => (item.value === undefined ? undefined : [transformers.trimQuotes(item.name?.toString()), item.value]))\n .filter(Boolean) as unknown as [string, string][],\n type: options.enumType,\n }),\n )\n })\n }\n\n nodes.push(\n factory.appendJSDocToNode({\n node,\n comments: [options.description ? `@description ${transformers.jsStringEscape(options.description)}` : undefined].filter(Boolean),\n }),\n )\n\n const filterdNodes = nodes.filter(\n (node: ts.Node) =>\n !extraNodes.some(\n (extraNode: ts.Node) => (extraNode as ts.TypeAliasDeclaration)?.name?.escapedText === (node as ts.TypeAliasDeclaration)?.name?.escapedText,\n ),\n )\n\n return print([...extraNodes, ...filterdNodes])\n}\n"],"mappings":"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","names":["Template","transformers","print","factory","Parser","File","useApp","Oas","useOas","App","createRoot","Generator","Oas","jsx","transformers","options","SchemaGenerator","node","jsx","Generator","createRoot","App","Oas","Fragment","jsx","jsxs","transformers","print","useApp","useOas","Oas","File","Parser"]}
|
package/dist/components.cjs
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
2
2
|
|
3
3
|
|
4
|
-
var
|
4
|
+
var _chunkWYQP4IDGcjs = require('./chunk-WYQP4IDG.cjs');
|
5
5
|
|
6
6
|
|
7
7
|
|
8
|
-
exports.OasType =
|
8
|
+
exports.OasType = _chunkWYQP4IDGcjs.OasType; exports.OperationSchema = _chunkWYQP4IDGcjs.OperationSchema;
|
9
9
|
//# sourceMappingURL=components.cjs.map
|
package/dist/components.js
CHANGED
package/dist/index.cjs
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
2
2
|
|
3
3
|
|
4
|
+
var _chunkWYQP4IDGcjs = require('./chunk-WYQP4IDG.cjs');
|
4
5
|
|
6
|
+
// src/index.ts
|
7
|
+
var definePluginDefault = _chunkWYQP4IDGcjs.pluginTs;
|
8
|
+
var definePlugin = _chunkWYQP4IDGcjs.pluginTs;
|
9
|
+
var src_default = definePluginDefault;
|
5
10
|
|
6
|
-
var _chunkM3A7H6KBcjs = require('./chunk-M3A7H6KB.cjs');
|
7
11
|
|
8
12
|
|
9
13
|
|
10
14
|
|
11
|
-
|
12
|
-
exports.default = _chunkM3A7H6KBcjs.src_default; exports.definePlugin = _chunkM3A7H6KBcjs.definePlugin; exports.pluginKey = _chunkM3A7H6KBcjs.pluginKey; exports.pluginName = _chunkM3A7H6KBcjs.pluginName;
|
15
|
+
exports.default = src_default; exports.definePlugin = definePlugin; exports.pluginTs = _chunkWYQP4IDGcjs.pluginTs; exports.pluginTsName = _chunkWYQP4IDGcjs.pluginTsName;
|
13
16
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAQA,IAAM,sBAAsB;AAIrB,IAAM,eAAe;AAE5B,IAAO,cAAQ","sourcesContent":["import { pluginTs } from './plugin.ts'\n\nexport { pluginTs, pluginTsName } from './plugin.ts'\nexport type { PluginTs } from './types.ts'\n\n/**\n * @deprecated Use `import { pluginTs } from '@kubb/swagger-ts'` instead\n */\nconst definePluginDefault = pluginTs\n/**\n * @deprecated Use `import { pluginTs } from '@kubb/swagger-ts'` instead\n */\nexport const definePlugin = pluginTs\n\nexport default definePluginDefault\n"]}
|