@kubb/swagger-ts 2.18.4 → 2.18.5
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-H35DL3CM.cjs → chunk-L3VGPEJS.cjs} +213 -180
- package/dist/chunk-L3VGPEJS.cjs.map +1 -0
- package/dist/{chunk-NOXQZTV4.js → chunk-THUX7LK4.js} +216 -183
- package/dist/chunk-THUX7LK4.js.map +1 -0
- package/dist/components.cjs +2 -2
- package/dist/components.js +1 -1
- package/dist/index.cjs +3 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/package.json +13 -12
- package/src/OperationGenerator.tsx +1 -19
- package/src/SchemaGenerator.tsx +10 -5
- package/src/components/OperationSchema.tsx +54 -17
- package/src/components/__snapshots__/Schema/pets.ts +0 -4
- package/src/components/__snapshots__/Schema/showPetById.ts +0 -4
- package/src/plugin.ts +3 -3
- package/src/types.ts +2 -1
- package/dist/chunk-H35DL3CM.cjs.map +0 -1
- package/dist/chunk-NOXQZTV4.js.map +0 -1
@@ -1,3 +1,15 @@
|
|
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 { pluginOasName } from "@kubb/plugin-oas";
|
7
|
+
|
8
|
+
// src/OperationGenerator.tsx
|
9
|
+
import { OperationGenerator as Generator2 } from "@kubb/plugin-oas";
|
10
|
+
import { Oas as Oas3 } from "@kubb/plugin-oas/components";
|
11
|
+
import { App as App2, createRoot as createRoot2 } from "@kubb/react";
|
12
|
+
|
1
13
|
// src/components/OasType.tsx
|
2
14
|
import { Parser, File, Type, useApp } from "@kubb/react";
|
3
15
|
import { useOas } from "@kubb/plugin-oas/hooks";
|
@@ -32,173 +44,20 @@ OasType.templates = defaultTemplates;
|
|
32
44
|
import transformers2 from "@kubb/core/transformers";
|
33
45
|
import { print as print2 } from "@kubb/parser-ts";
|
34
46
|
import * as factory2 from "@kubb/parser-ts/factory";
|
35
|
-
import {
|
36
|
-
import { Oas as Oas3 } from "@kubb/plugin-oas/components";
|
47
|
+
import { Oas as Oas2 } from "@kubb/plugin-oas/components";
|
37
48
|
import { useOas as useOas2, useOperation, useOperationManager } from "@kubb/plugin-oas/hooks";
|
49
|
+
import { File as File2, Parser as Parser2, useApp as useApp2 } from "@kubb/react";
|
38
50
|
|
39
51
|
// src/SchemaGenerator.tsx
|
40
|
-
import {
|
41
|
-
import { SchemaGenerator as Generator2 } from "@kubb/plugin-oas";
|
42
|
-
import { Oas as Oas2 } from "@kubb/plugin-oas/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 { pluginOasName } from "@kubb/plugin-oas";
|
50
|
-
|
51
|
-
// src/OperationGenerator.tsx
|
52
|
-
import { App, createRoot } from "@kubb/react";
|
53
|
-
import { OperationGenerator as Generator } from "@kubb/plugin-oas";
|
52
|
+
import { SchemaGenerator as Generator } from "@kubb/plugin-oas";
|
54
53
|
import { Oas } from "@kubb/plugin-oas/components";
|
55
|
-
import {
|
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: [pluginOasName],
|
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, [pluginOasName]);
|
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
|
-
});
|
54
|
+
import { App, createRoot } from "@kubb/react";
|
196
55
|
|
197
56
|
// src/typeParser.ts
|
198
57
|
import transformers from "@kubb/core/transformers";
|
199
58
|
import { print } from "@kubb/parser-ts";
|
200
59
|
import * as factory from "@kubb/parser-ts/factory";
|
201
|
-
import { SchemaGenerator
|
60
|
+
import { SchemaGenerator, isKeyword, schemaKeywords } from "@kubb/plugin-oas";
|
202
61
|
var typeKeywordMapper = {
|
203
62
|
any: () => factory.keywordTypeNodes.any,
|
204
63
|
unknown: () => factory.keywordTypeNodes.unknown,
|
@@ -426,7 +285,7 @@ function typeParser(schemas, options) {
|
|
426
285
|
nonNullable: true
|
427
286
|
}) : type
|
428
287
|
});
|
429
|
-
const enumSchemas =
|
288
|
+
const enumSchemas = SchemaGenerator.deepSearch(schemas, schemaKeywords.enum);
|
430
289
|
if (enumSchemas) {
|
431
290
|
enumSchemas.forEach((enumSchema) => {
|
432
291
|
extraNodes.push(
|
@@ -454,15 +313,17 @@ function typeParser(schemas, options) {
|
|
454
313
|
}
|
455
314
|
|
456
315
|
// src/SchemaGenerator.tsx
|
457
|
-
import { jsx as
|
458
|
-
var
|
459
|
-
async schema(name,
|
316
|
+
import { jsx as jsx2 } from "@kubb/react/jsx-runtime";
|
317
|
+
var SchemaGenerator2 = class extends Generator {
|
318
|
+
async schema(name, schema) {
|
460
319
|
const { oas, pluginManager, mode, plugin, output } = this.context;
|
461
|
-
const root =
|
320
|
+
const root = createRoot({
|
462
321
|
logger: pluginManager.logger
|
463
322
|
});
|
323
|
+
const tree = this.parse({ schema, name });
|
324
|
+
const source = this.getSource(name, tree);
|
464
325
|
root.render(
|
465
|
-
/* @__PURE__ */
|
326
|
+
/* @__PURE__ */ jsx2(App, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsx2(Oas, { oas, children: /* @__PURE__ */ jsx2(Oas.Schema, { name, value: schema, tree, children: /* @__PURE__ */ jsx2(Oas.Schema.File, { isTypeOnly: true, output, children: source.join("\n") }) }) }) })
|
466
327
|
);
|
467
328
|
return root.files;
|
468
329
|
}
|
@@ -494,34 +355,69 @@ var SchemaGenerator = class extends Generator2 {
|
|
494
355
|
* @deprecated only used for testing
|
495
356
|
*/
|
496
357
|
buildSource(name, schema, options = {}) {
|
497
|
-
const schemas = this.
|
358
|
+
const schemas = this.parse({ schema, name });
|
498
359
|
return this.getSource(name, schemas, options);
|
499
360
|
}
|
500
361
|
};
|
501
362
|
|
502
363
|
// src/components/OperationSchema.tsx
|
503
|
-
import { Fragment as Fragment2, jsx as
|
504
|
-
function printCombinedSchema(
|
364
|
+
import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "@kubb/react/jsx-runtime";
|
365
|
+
function printCombinedSchema({
|
366
|
+
name,
|
367
|
+
operation,
|
368
|
+
schemas,
|
369
|
+
pluginManager
|
370
|
+
}) {
|
505
371
|
const properties = {};
|
506
372
|
if (schemas.response) {
|
507
|
-
|
373
|
+
const identifier = pluginManager.resolveName({
|
374
|
+
name: schemas.response.name,
|
375
|
+
pluginKey: [pluginTsName],
|
376
|
+
type: "function"
|
377
|
+
});
|
378
|
+
properties["response"] = factory2.createTypeReferenceNode(factory2.createIdentifier(identifier), void 0);
|
508
379
|
}
|
509
380
|
if (schemas.request) {
|
510
|
-
|
381
|
+
const identifier = pluginManager.resolveName({
|
382
|
+
name: schemas.request.name,
|
383
|
+
pluginKey: [pluginTsName],
|
384
|
+
type: "function"
|
385
|
+
});
|
386
|
+
properties["request"] = factory2.createTypeReferenceNode(factory2.createIdentifier(identifier), void 0);
|
511
387
|
}
|
512
388
|
if (schemas.pathParams) {
|
513
|
-
|
389
|
+
const identifier = pluginManager.resolveName({
|
390
|
+
name: schemas.pathParams.name,
|
391
|
+
pluginKey: [pluginTsName],
|
392
|
+
type: "function"
|
393
|
+
});
|
394
|
+
properties["pathParams"] = factory2.createTypeReferenceNode(factory2.createIdentifier(identifier), void 0);
|
514
395
|
}
|
515
396
|
if (schemas.queryParams) {
|
516
|
-
|
397
|
+
const identifier = pluginManager.resolveName({
|
398
|
+
name: schemas.queryParams.name,
|
399
|
+
pluginKey: [pluginTsName],
|
400
|
+
type: "function"
|
401
|
+
});
|
402
|
+
properties["queryParams"] = factory2.createTypeReferenceNode(factory2.createIdentifier(identifier), void 0);
|
517
403
|
}
|
518
404
|
if (schemas.headerParams) {
|
519
|
-
|
405
|
+
const identifier = pluginManager.resolveName({
|
406
|
+
name: schemas.headerParams.name,
|
407
|
+
pluginKey: [pluginTsName],
|
408
|
+
type: "function"
|
409
|
+
});
|
410
|
+
properties["headerParams"] = factory2.createTypeReferenceNode(factory2.createIdentifier(identifier), void 0);
|
520
411
|
}
|
521
412
|
if (schemas.errors) {
|
522
413
|
properties["errors"] = factory2.createUnionDeclaration({
|
523
414
|
nodes: schemas.errors.map((error) => {
|
524
|
-
|
415
|
+
const identifier = pluginManager.resolveName({
|
416
|
+
name: error.name,
|
417
|
+
pluginKey: [pluginTsName],
|
418
|
+
type: "function"
|
419
|
+
});
|
420
|
+
return factory2.createTypeReferenceNode(factory2.createIdentifier(identifier), void 0);
|
525
421
|
})
|
526
422
|
});
|
527
423
|
}
|
@@ -544,7 +440,7 @@ function printCombinedSchema(name, operation, schemas) {
|
|
544
440
|
return print2(namespaceNode);
|
545
441
|
}
|
546
442
|
function OperationSchema({}) {
|
547
|
-
return /* @__PURE__ */
|
443
|
+
return /* @__PURE__ */ jsx3(Fragment2, {});
|
548
444
|
}
|
549
445
|
OperationSchema.File = function({}) {
|
550
446
|
const { pluginManager, plugin, mode, fileManager } = useApp2();
|
@@ -554,7 +450,7 @@ OperationSchema.File = function({}) {
|
|
554
450
|
const file = getFile(operation);
|
555
451
|
const schemas = getSchemas(operation);
|
556
452
|
const factoryName = getName(operation, { type: "type" });
|
557
|
-
const generator = new
|
453
|
+
const generator = new SchemaGenerator2(plugin.options, {
|
558
454
|
oas,
|
559
455
|
plugin,
|
560
456
|
pluginManager,
|
@@ -562,22 +458,159 @@ OperationSchema.File = function({}) {
|
|
562
458
|
override: plugin.options.override
|
563
459
|
});
|
564
460
|
const items = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean);
|
565
|
-
const mapItem = ({ name, schema
|
566
|
-
|
567
|
-
|
568
|
-
|
461
|
+
const mapItem = ({ name, schema, ...options }, i) => {
|
462
|
+
const tree = generator.parse({ schema, name });
|
463
|
+
const source = generator.getSource(name, tree, options);
|
464
|
+
return /* @__PURE__ */ jsxs2(Oas2.Schema, { name, value: schema, tree, children: [
|
465
|
+
mode === "split" && /* @__PURE__ */ jsx3(Oas2.Schema.Imports, { isTypeOnly: true }),
|
466
|
+
/* @__PURE__ */ jsx3(File2.Source, { children: source.join("\n") })
|
569
467
|
] }, i);
|
570
468
|
};
|
571
|
-
return /* @__PURE__ */
|
469
|
+
return /* @__PURE__ */ jsx3(Parser2, { language: "typescript", children: /* @__PURE__ */ jsxs2(File2, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
572
470
|
items.map(mapItem),
|
573
|
-
/* @__PURE__ */
|
471
|
+
/* @__PURE__ */ jsx3(File2.Source, { children: printCombinedSchema({ name: factoryName, operation, schemas, pluginManager }) })
|
574
472
|
] }) });
|
575
473
|
};
|
576
474
|
|
475
|
+
// src/OperationGenerator.tsx
|
476
|
+
import { jsx as jsx4 } from "@kubb/react/jsx-runtime";
|
477
|
+
var OperationGenerator = class extends Generator2 {
|
478
|
+
async all(operations) {
|
479
|
+
const { oas, pluginManager, plugin, mode } = this.context;
|
480
|
+
const root = createRoot2({
|
481
|
+
logger: pluginManager.logger
|
482
|
+
});
|
483
|
+
root.render(
|
484
|
+
/* @__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" }) }) })
|
485
|
+
);
|
486
|
+
return root.files;
|
487
|
+
}
|
488
|
+
async operation(operation, options) {
|
489
|
+
const { oas, pluginManager, plugin, mode } = this.context;
|
490
|
+
const root = createRoot2({
|
491
|
+
logger: pluginManager.logger
|
492
|
+
});
|
493
|
+
root.render(
|
494
|
+
/* @__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, {}) }) }) })
|
495
|
+
);
|
496
|
+
return root.files;
|
497
|
+
}
|
498
|
+
};
|
499
|
+
|
500
|
+
// src/plugin.ts
|
501
|
+
var pluginTsName = "plugin-ts";
|
502
|
+
var pluginTs = createPlugin((options) => {
|
503
|
+
const {
|
504
|
+
output = { path: "types" },
|
505
|
+
group,
|
506
|
+
exclude = [],
|
507
|
+
include,
|
508
|
+
override = [],
|
509
|
+
enumType = "asConst",
|
510
|
+
enumSuffix = "",
|
511
|
+
dateType = "string",
|
512
|
+
unknownType = "any",
|
513
|
+
optionalType = "questionToken",
|
514
|
+
transformers: transformers3 = {},
|
515
|
+
oasType = false
|
516
|
+
} = options;
|
517
|
+
const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`;
|
518
|
+
return {
|
519
|
+
name: pluginTsName,
|
520
|
+
options: {
|
521
|
+
transformers: transformers3,
|
522
|
+
dateType,
|
523
|
+
optionalType,
|
524
|
+
oasType,
|
525
|
+
enumType,
|
526
|
+
enumSuffix,
|
527
|
+
// keep the used enumnames between SchemaGenerator and OperationGenerator per plugin(pluginKey)
|
528
|
+
usedEnumNames: {},
|
529
|
+
unknownType,
|
530
|
+
override
|
531
|
+
},
|
532
|
+
pre: [pluginOasName],
|
533
|
+
resolvePath(baseName, pathMode, options2) {
|
534
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
535
|
+
const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path));
|
536
|
+
if (mode === "single") {
|
537
|
+
return path.resolve(root, output.path);
|
538
|
+
}
|
539
|
+
if (options2?.tag && group?.type === "tag") {
|
540
|
+
const tag = camelCase(options2.tag);
|
541
|
+
return path.resolve(root, renderTemplate(template, { tag }), baseName);
|
542
|
+
}
|
543
|
+
return path.resolve(root, output.path, baseName);
|
544
|
+
},
|
545
|
+
resolveName(name, type) {
|
546
|
+
const resolvedName = pascalCase(name, { isFile: type === "file" });
|
547
|
+
if (type) {
|
548
|
+
return transformers3?.name?.(resolvedName, type) || resolvedName;
|
549
|
+
}
|
550
|
+
return resolvedName;
|
551
|
+
},
|
552
|
+
async writeFile(path2, source) {
|
553
|
+
if (!path2.endsWith(".ts") || !source) {
|
554
|
+
return;
|
555
|
+
}
|
556
|
+
return this.fileManager.write(path2, source, { sanity: false });
|
557
|
+
},
|
558
|
+
async buildStart() {
|
559
|
+
const [swaggerPlugin] = PluginManager.getDependedPlugins(this.plugins, [pluginOasName]);
|
560
|
+
const oas = await swaggerPlugin.api.getOas();
|
561
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
562
|
+
const mode = FileManager.getMode(path.resolve(root, output.path));
|
563
|
+
const schemaGenerator = new SchemaGenerator2(this.plugin.options, {
|
564
|
+
oas,
|
565
|
+
pluginManager: this.pluginManager,
|
566
|
+
plugin: this.plugin,
|
567
|
+
contentType: swaggerPlugin.api.contentType,
|
568
|
+
include: void 0,
|
569
|
+
override,
|
570
|
+
mode,
|
571
|
+
output: output.path
|
572
|
+
});
|
573
|
+
const schemaFiles = await schemaGenerator.build();
|
574
|
+
await this.addFile(...schemaFiles);
|
575
|
+
const operationGenerator = new OperationGenerator(this.plugin.options, {
|
576
|
+
oas,
|
577
|
+
pluginManager: this.pluginManager,
|
578
|
+
plugin: this.plugin,
|
579
|
+
contentType: swaggerPlugin.api.contentType,
|
580
|
+
exclude,
|
581
|
+
include,
|
582
|
+
override,
|
583
|
+
mode
|
584
|
+
});
|
585
|
+
const operationFiles = await operationGenerator.build();
|
586
|
+
await this.addFile(...operationFiles);
|
587
|
+
},
|
588
|
+
async buildEnd() {
|
589
|
+
if (this.config.output.write === false) {
|
590
|
+
return;
|
591
|
+
}
|
592
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
593
|
+
await this.fileManager.addIndexes({
|
594
|
+
root,
|
595
|
+
output,
|
596
|
+
meta: { pluginKey: this.plugin.key },
|
597
|
+
logger: this.logger
|
598
|
+
});
|
599
|
+
}
|
600
|
+
};
|
601
|
+
});
|
602
|
+
|
603
|
+
// src/index.ts
|
604
|
+
var definePluginDefault = pluginTs;
|
605
|
+
var definePlugin = pluginTs;
|
606
|
+
var src_default = definePluginDefault;
|
607
|
+
|
577
608
|
export {
|
578
609
|
OasType,
|
579
610
|
OperationSchema,
|
580
611
|
pluginTsName,
|
581
|
-
pluginTs
|
612
|
+
pluginTs,
|
613
|
+
definePlugin,
|
614
|
+
src_default
|
582
615
|
};
|
583
|
-
//# sourceMappingURL=chunk-
|
616
|
+
//# sourceMappingURL=chunk-THUX7LK4.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts","../src/OperationGenerator.tsx","../src/components/OasType.tsx","../src/components/OperationSchema.tsx","../src/SchemaGenerator.tsx","../src/typeParser.ts","../src/index.ts"],"sourcesContent":["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 { pluginOasName } from '@kubb/plugin-oas'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { SchemaGenerator } from './SchemaGenerator.tsx'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\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: [pluginOasName],\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(path, source) {\n if (!path.endsWith('.ts') || !source) {\n return\n }\n\n return this.fileManager.write(path, source, { sanity: false })\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\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 { OperationGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\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/plugin-oas'\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","import { Parser, File, Type, useApp } from '@kubb/react'\nimport { useOas } from '@kubb/plugin-oas/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 { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, Parser, useApp } from '@kubb/react'\n\nimport { SchemaGenerator } from '../SchemaGenerator.tsx'\n\nimport type { PluginManager } from '@kubb/core'\nimport type { Operation } from '@kubb/oas'\nimport type { ts } from '@kubb/parser-ts'\nimport type { OperationSchema as OperationSchemaType } from '@kubb/plugin-oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/swagger-ts'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginTs } from '../types.ts'\n\ntype Props = {}\n\nfunction printCombinedSchema({\n name,\n operation,\n schemas,\n pluginManager,\n}: { name: string; operation: Operation; schemas: OperationSchemas; pluginManager: PluginManager }): string {\n const properties: Record<string, ts.TypeNode> = {}\n\n if (schemas.response) {\n const identifier = pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['response'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.request) {\n const identifier = pluginManager.resolveName({\n name: schemas.request.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['request'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.pathParams) {\n const identifier = pluginManager.resolveName({\n name: schemas.pathParams.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['pathParams'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.queryParams) {\n const identifier = pluginManager.resolveName({\n name: schemas.queryParams.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['queryParams'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.headerParams) {\n const identifier = pluginManager.resolveName({\n name: schemas.headerParams.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['headerParams'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.errors) {\n properties['errors'] = factory.createUnionDeclaration({\n nodes: schemas.errors.map((error) => {\n const identifier = pluginManager.resolveName({\n name: error.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n\n return factory.createTypeReferenceNode(factory.createIdentifier(identifier), 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 const items = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean)\n\n const mapItem = ({ name, schema, ...options }: OperationSchemaType, i: number) => {\n const tree = generator.parse({ schema, name })\n const source = generator.getSource(name, tree, options)\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {mode === 'split' && <Oas.Schema.Imports isTypeOnly />}\n <File.Source>{source.join('\\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({ name: factoryName, operation, schemas, pluginManager })}</File.Source>\n </File>\n </Parser>\n )\n}\n","import { SchemaGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\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/plugin-oas'\nimport type { FileMeta, PluginTs } from './types.ts'\n\nexport class SchemaGenerator extends Generator<PluginTs['resolvedOptions'], PluginTs> {\n async schema(name: string, schema: SchemaObject): SchemaMethodResult<FileMeta> {\n const { oas, pluginManager, mode, plugin, output } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const tree = this.parse({ schema, name })\n const source = this.getSource(name, tree)\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas}>\n <Oas.Schema name={name} value={schema} tree={tree}>\n <Oas.Schema.File isTypeOnly output={output}>\n {source.join('\\n')}\n </Oas.Schema.File>\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.parse({ schema, name })\n\n return this.getSource(name, schemas, options)\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/plugin-oas'\n\nimport type { ts } from '@kubb/parser-ts'\nimport type { Schema, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\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","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"],"mappings":"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","names":["Generator","Oas","App","createRoot","Template","transformers","print","factory","Oas","useOas","File","Parser","useApp","node","jsx","SchemaGenerator","Fragment","jsx","jsxs","transformers","print","useApp","useOas","SchemaGenerator","Oas","File","Parser","jsx","Generator","createRoot","App","Oas","transformers","options","path","SchemaGenerator"]}
|
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 _chunkL3VGPEJScjs = require('./chunk-L3VGPEJS.cjs');
|
5
5
|
|
6
6
|
|
7
7
|
|
8
|
-
exports.OasType =
|
8
|
+
exports.OasType = _chunkL3VGPEJScjs.OasType; exports.OperationSchema = _chunkL3VGPEJScjs.OperationSchema;
|
9
9
|
//# sourceMappingURL=components.cjs.map
|
package/dist/components.js
CHANGED
package/dist/index.cjs
CHANGED
@@ -1,16 +1,13 @@
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
2
2
|
|
3
3
|
|
4
|
-
var _chunkH35DL3CMcjs = require('./chunk-H35DL3CM.cjs');
|
5
4
|
|
6
|
-
// src/index.ts
|
7
|
-
var definePluginDefault = _chunkH35DL3CMcjs.pluginTs;
|
8
|
-
var definePlugin = _chunkH35DL3CMcjs.pluginTs;
|
9
|
-
var src_default = definePluginDefault;
|
10
5
|
|
6
|
+
var _chunkL3VGPEJScjs = require('./chunk-L3VGPEJS.cjs');
|
11
7
|
|
12
8
|
|
13
9
|
|
14
10
|
|
15
|
-
|
11
|
+
|
12
|
+
exports.default = _chunkL3VGPEJScjs.src_default; exports.definePlugin = _chunkL3VGPEJScjs.definePlugin; exports.pluginTs = _chunkL3VGPEJScjs.pluginTs; exports.pluginTsName = _chunkL3VGPEJScjs.pluginTsName;
|
16
13
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/index.d.cts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
2
|
-
import { PluginFactoryOptions,
|
2
|
+
import { PluginFactoryOptions, ResolveNameParams } from '@kubb/core';
|
3
|
+
import * as KubbFile from '@kubb/fs/types';
|
3
4
|
import { ResolvePathOptions, Exclude, Include, Override } from '@kubb/plugin-oas';
|
4
5
|
|
5
6
|
type Options = {
|