@kubb/swagger-ts 1.1.1 → 1.1.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/index.cjs +14 -13
- package/dist/index.d.ts +5 -1
- package/dist/index.js +14 -13
- package/package.json +4 -4
- package/src/builders/TypeBuilder.ts +5 -5
- package/src/generators/OperationGenerator.ts +8 -8
- package/src/generators/TypeGenerator.ts +2 -1
package/dist/index.cjs
CHANGED
|
@@ -49,7 +49,7 @@ var _TypeGenerator = class extends core.SchemaGenerator {
|
|
|
49
49
|
aliases = [];
|
|
50
50
|
// Keep track of already used type aliases
|
|
51
51
|
usedAliasNames = {};
|
|
52
|
-
build(schema, baseName, description) {
|
|
52
|
+
build({ schema, baseName, description }) {
|
|
53
53
|
const nodes = [];
|
|
54
54
|
const type = this.getTypeFromSchema(schema, baseName);
|
|
55
55
|
if (!type) {
|
|
@@ -121,6 +121,7 @@ var _TypeGenerator = class extends core.SchemaGenerator {
|
|
|
121
121
|
schema.description && `@description ${schema.description}`,
|
|
122
122
|
schema.type && `@type ${schema.type}${isRequired ? "" : " | undefined"} ${schema.format || ""}`,
|
|
123
123
|
schema.example && `@example ${schema.example}`,
|
|
124
|
+
schema.deprecated && `@deprecated`,
|
|
124
125
|
schema.default !== void 0 && typeof schema.default === "string" && `@default '${schema.default}'`,
|
|
125
126
|
schema.default !== void 0 && typeof schema.default !== "string" && `@default ${schema.default}`
|
|
126
127
|
]
|
|
@@ -301,19 +302,19 @@ var TypeBuilder = class extends swagger.OasBuilder {
|
|
|
301
302
|
}
|
|
302
303
|
async print(name) {
|
|
303
304
|
const codes = [];
|
|
304
|
-
const generated = this.items.filter((
|
|
305
|
+
const generated = this.items.filter((operationSchema) => name ? operationSchema.name === name : true).sort(core.nameSorter).map((operationSchema) => {
|
|
305
306
|
const generator = new TypeGenerator(this.oas, {
|
|
306
307
|
withJSDocs: this.config.withJSDocs,
|
|
307
308
|
resolveName: this.config.resolveName,
|
|
308
309
|
enumType: this.config.enumType
|
|
309
310
|
});
|
|
310
|
-
const
|
|
311
|
+
const sources = generator.build({ schema: operationSchema.schema, baseName: operationSchema.name, description: operationSchema.description });
|
|
311
312
|
return {
|
|
312
313
|
import: {
|
|
313
314
|
refs: generator.refs,
|
|
314
|
-
name:
|
|
315
|
+
name: operationSchema.name
|
|
315
316
|
},
|
|
316
|
-
sources
|
|
317
|
+
sources
|
|
317
318
|
};
|
|
318
319
|
}).sort(refsSorter);
|
|
319
320
|
generated.forEach((item) => {
|
|
@@ -358,12 +359,12 @@ var OperationGenerator = class extends swagger.OperationGenerator {
|
|
|
358
359
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
359
360
|
const type = this.resolve(operation);
|
|
360
361
|
const fileResolver = (name) => {
|
|
361
|
-
const
|
|
362
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
362
363
|
const resolvedTypeId = resolvePath({
|
|
363
364
|
fileName: `${name}.ts`,
|
|
364
365
|
pluginName
|
|
365
366
|
});
|
|
366
|
-
return core.getRelativePath(
|
|
367
|
+
return core.getRelativePath(root, resolvedTypeId);
|
|
367
368
|
};
|
|
368
369
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.queryParams).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
369
370
|
return {
|
|
@@ -376,12 +377,12 @@ var OperationGenerator = class extends swagger.OperationGenerator {
|
|
|
376
377
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
377
378
|
const type = this.resolve(operation);
|
|
378
379
|
const fileResolver = (name) => {
|
|
379
|
-
const
|
|
380
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
380
381
|
const resolvedTypeId = resolvePath({
|
|
381
382
|
fileName: `${name}.ts`,
|
|
382
383
|
pluginName
|
|
383
384
|
});
|
|
384
|
-
return core.getRelativePath(
|
|
385
|
+
return core.getRelativePath(root, resolvedTypeId);
|
|
385
386
|
};
|
|
386
387
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.queryParams).add(schemas.request).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
387
388
|
return {
|
|
@@ -394,12 +395,12 @@ var OperationGenerator = class extends swagger.OperationGenerator {
|
|
|
394
395
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
395
396
|
const type = this.resolve(operation);
|
|
396
397
|
const fileResolver = (name) => {
|
|
397
|
-
const
|
|
398
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
398
399
|
const resolvedTypeId = resolvePath({
|
|
399
400
|
fileName: `${name}.ts`,
|
|
400
401
|
pluginName
|
|
401
402
|
});
|
|
402
|
-
return core.getRelativePath(
|
|
403
|
+
return core.getRelativePath(root, resolvedTypeId);
|
|
403
404
|
};
|
|
404
405
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.queryParams).add(schemas.request).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
405
406
|
return {
|
|
@@ -412,12 +413,12 @@ var OperationGenerator = class extends swagger.OperationGenerator {
|
|
|
412
413
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
413
414
|
const type = this.resolve(operation);
|
|
414
415
|
const fileResolver = (name) => {
|
|
415
|
-
const
|
|
416
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
416
417
|
const resolvedTypeId = resolvePath({
|
|
417
418
|
fileName: `${name}.ts`,
|
|
418
419
|
pluginName
|
|
419
420
|
});
|
|
420
|
-
return core.getRelativePath(
|
|
421
|
+
return core.getRelativePath(root, resolvedTypeId);
|
|
421
422
|
};
|
|
422
423
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.request).add(schemas.queryParams).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
423
424
|
return {
|
package/dist/index.d.ts
CHANGED
|
@@ -59,7 +59,11 @@ declare class TypeGenerator extends SchemaGenerator<Options$1, OpenAPIV3.SchemaO
|
|
|
59
59
|
aliases: ts.TypeAliasDeclaration[];
|
|
60
60
|
usedAliasNames: Record<string, number>;
|
|
61
61
|
constructor(oas: Oas, options?: Options$1);
|
|
62
|
-
build(schema
|
|
62
|
+
build({ schema, baseName, description }: {
|
|
63
|
+
schema: OpenAPIV3.SchemaObject;
|
|
64
|
+
baseName: string;
|
|
65
|
+
description?: string;
|
|
66
|
+
}): ts.Node[];
|
|
63
67
|
/**
|
|
64
68
|
* Creates a type node from a given schema.
|
|
65
69
|
* Delegates to getBaseTypeFromSchema internally and
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ var _TypeGenerator = class extends SchemaGenerator {
|
|
|
39
39
|
aliases = [];
|
|
40
40
|
// Keep track of already used type aliases
|
|
41
41
|
usedAliasNames = {};
|
|
42
|
-
build(schema, baseName, description) {
|
|
42
|
+
build({ schema, baseName, description }) {
|
|
43
43
|
const nodes = [];
|
|
44
44
|
const type = this.getTypeFromSchema(schema, baseName);
|
|
45
45
|
if (!type) {
|
|
@@ -111,6 +111,7 @@ var _TypeGenerator = class extends SchemaGenerator {
|
|
|
111
111
|
schema.description && `@description ${schema.description}`,
|
|
112
112
|
schema.type && `@type ${schema.type}${isRequired ? "" : " | undefined"} ${schema.format || ""}`,
|
|
113
113
|
schema.example && `@example ${schema.example}`,
|
|
114
|
+
schema.deprecated && `@deprecated`,
|
|
114
115
|
schema.default !== void 0 && typeof schema.default === "string" && `@default '${schema.default}'`,
|
|
115
116
|
schema.default !== void 0 && typeof schema.default !== "string" && `@default ${schema.default}`
|
|
116
117
|
]
|
|
@@ -291,19 +292,19 @@ var TypeBuilder = class extends OasBuilder {
|
|
|
291
292
|
}
|
|
292
293
|
async print(name) {
|
|
293
294
|
const codes = [];
|
|
294
|
-
const generated = this.items.filter((
|
|
295
|
+
const generated = this.items.filter((operationSchema) => name ? operationSchema.name === name : true).sort(nameSorter).map((operationSchema) => {
|
|
295
296
|
const generator = new TypeGenerator(this.oas, {
|
|
296
297
|
withJSDocs: this.config.withJSDocs,
|
|
297
298
|
resolveName: this.config.resolveName,
|
|
298
299
|
enumType: this.config.enumType
|
|
299
300
|
});
|
|
300
|
-
const
|
|
301
|
+
const sources = generator.build({ schema: operationSchema.schema, baseName: operationSchema.name, description: operationSchema.description });
|
|
301
302
|
return {
|
|
302
303
|
import: {
|
|
303
304
|
refs: generator.refs,
|
|
304
|
-
name:
|
|
305
|
+
name: operationSchema.name
|
|
305
306
|
},
|
|
306
|
-
sources
|
|
307
|
+
sources
|
|
307
308
|
};
|
|
308
309
|
}).sort(refsSorter);
|
|
309
310
|
generated.forEach((item) => {
|
|
@@ -348,12 +349,12 @@ var OperationGenerator = class extends OperationGenerator$1 {
|
|
|
348
349
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
349
350
|
const type = this.resolve(operation);
|
|
350
351
|
const fileResolver = (name) => {
|
|
351
|
-
const
|
|
352
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
352
353
|
const resolvedTypeId = resolvePath({
|
|
353
354
|
fileName: `${name}.ts`,
|
|
354
355
|
pluginName
|
|
355
356
|
});
|
|
356
|
-
return getRelativePath(
|
|
357
|
+
return getRelativePath(root, resolvedTypeId);
|
|
357
358
|
};
|
|
358
359
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.queryParams).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
359
360
|
return {
|
|
@@ -366,12 +367,12 @@ var OperationGenerator = class extends OperationGenerator$1 {
|
|
|
366
367
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
367
368
|
const type = this.resolve(operation);
|
|
368
369
|
const fileResolver = (name) => {
|
|
369
|
-
const
|
|
370
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
370
371
|
const resolvedTypeId = resolvePath({
|
|
371
372
|
fileName: `${name}.ts`,
|
|
372
373
|
pluginName
|
|
373
374
|
});
|
|
374
|
-
return getRelativePath(
|
|
375
|
+
return getRelativePath(root, resolvedTypeId);
|
|
375
376
|
};
|
|
376
377
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.queryParams).add(schemas.request).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
377
378
|
return {
|
|
@@ -384,12 +385,12 @@ var OperationGenerator = class extends OperationGenerator$1 {
|
|
|
384
385
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
385
386
|
const type = this.resolve(operation);
|
|
386
387
|
const fileResolver = (name) => {
|
|
387
|
-
const
|
|
388
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
388
389
|
const resolvedTypeId = resolvePath({
|
|
389
390
|
fileName: `${name}.ts`,
|
|
390
391
|
pluginName
|
|
391
392
|
});
|
|
392
|
-
return getRelativePath(
|
|
393
|
+
return getRelativePath(root, resolvedTypeId);
|
|
393
394
|
};
|
|
394
395
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.queryParams).add(schemas.request).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
395
396
|
return {
|
|
@@ -402,12 +403,12 @@ var OperationGenerator = class extends OperationGenerator$1 {
|
|
|
402
403
|
const { resolvePath, mode, resolveName, oas, enumType } = this.options;
|
|
403
404
|
const type = this.resolve(operation);
|
|
404
405
|
const fileResolver = (name) => {
|
|
405
|
-
const
|
|
406
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } });
|
|
406
407
|
const resolvedTypeId = resolvePath({
|
|
407
408
|
fileName: `${name}.ts`,
|
|
408
409
|
pluginName
|
|
409
410
|
});
|
|
410
|
-
return getRelativePath(
|
|
411
|
+
return getRelativePath(root, resolvedTypeId);
|
|
411
412
|
};
|
|
412
413
|
const source = await new TypeBuilder(oas).add(schemas.pathParams).add(schemas.request).add(schemas.queryParams).add(schemas.response).add(schemas.errors).configure({ fileResolver: mode === "file" ? void 0 : fileResolver, withJSDocs: true, resolveName, enumType }).print();
|
|
413
414
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/swagger-ts",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Generator swagger-ts",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"change-case": "^4.1.2",
|
|
42
42
|
"lodash.uniqueid": "^4.0.1",
|
|
43
43
|
"typescript": "^5.1.3",
|
|
44
|
-
"@kubb/core": "1.1.
|
|
45
|
-
"@kubb/swagger": "1.1.
|
|
46
|
-
"@kubb/ts-codegen": "1.1.
|
|
44
|
+
"@kubb/core": "1.1.2",
|
|
45
|
+
"@kubb/swagger": "1.1.2",
|
|
46
|
+
"@kubb/ts-codegen": "1.1.2"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/lodash.uniqueid": "^4.0.7",
|
|
@@ -43,22 +43,22 @@ export class TypeBuilder extends OasBuilder<Config> {
|
|
|
43
43
|
const codes: string[] = []
|
|
44
44
|
|
|
45
45
|
const generated = this.items
|
|
46
|
-
.filter((
|
|
46
|
+
.filter((operationSchema) => (name ? operationSchema.name === name : true))
|
|
47
47
|
.sort(nameSorter)
|
|
48
|
-
.map((
|
|
48
|
+
.map((operationSchema) => {
|
|
49
49
|
const generator = new TypeGenerator(this.oas, {
|
|
50
50
|
withJSDocs: this.config.withJSDocs,
|
|
51
51
|
resolveName: this.config.resolveName,
|
|
52
52
|
enumType: this.config.enumType,
|
|
53
53
|
})
|
|
54
|
-
const
|
|
54
|
+
const sources = generator.build({ schema: operationSchema.schema, baseName: operationSchema.name, description: operationSchema.description })
|
|
55
55
|
|
|
56
56
|
return {
|
|
57
57
|
import: {
|
|
58
58
|
refs: generator.refs,
|
|
59
|
-
name:
|
|
59
|
+
name: operationSchema.name,
|
|
60
60
|
},
|
|
61
|
-
sources
|
|
61
|
+
sources,
|
|
62
62
|
}
|
|
63
63
|
})
|
|
64
64
|
.sort(refsSorter)
|
|
@@ -44,14 +44,14 @@ export class OperationGenerator extends Generator<Options> {
|
|
|
44
44
|
|
|
45
45
|
const fileResolver: FileResolver = (name) => {
|
|
46
46
|
// Used when a react-query type(request, response, params) has an import of a global type
|
|
47
|
-
const
|
|
47
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } })
|
|
48
48
|
// refs import, will always been created with the SwaggerTS plugin, our global type
|
|
49
49
|
const resolvedTypeId = resolvePath({
|
|
50
50
|
fileName: `${name}.ts`,
|
|
51
51
|
pluginName,
|
|
52
52
|
})
|
|
53
53
|
|
|
54
|
-
return getRelativePath(
|
|
54
|
+
return getRelativePath(root, resolvedTypeId)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
const source = await new TypeBuilder(oas)
|
|
@@ -76,14 +76,14 @@ export class OperationGenerator extends Generator<Options> {
|
|
|
76
76
|
|
|
77
77
|
const fileResolver: FileResolver = (name) => {
|
|
78
78
|
// Used when a react-query type(request, response, params) has an import of a global type
|
|
79
|
-
const
|
|
79
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } })
|
|
80
80
|
// refs import, will always been created with the SwaggerTS plugin, our global type
|
|
81
81
|
const resolvedTypeId = resolvePath({
|
|
82
82
|
fileName: `${name}.ts`,
|
|
83
83
|
pluginName,
|
|
84
84
|
})
|
|
85
85
|
|
|
86
|
-
return getRelativePath(
|
|
86
|
+
return getRelativePath(root, resolvedTypeId)
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
const source = await new TypeBuilder(oas)
|
|
@@ -109,14 +109,14 @@ export class OperationGenerator extends Generator<Options> {
|
|
|
109
109
|
|
|
110
110
|
const fileResolver: FileResolver = (name) => {
|
|
111
111
|
// Used when a react-query type(request, response, params) has an import of a global type
|
|
112
|
-
const
|
|
112
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } })
|
|
113
113
|
// refs import, will always been created with the SwaggerTS plugin, our global type
|
|
114
114
|
const resolvedTypeId = resolvePath({
|
|
115
115
|
fileName: `${name}.ts`,
|
|
116
116
|
pluginName,
|
|
117
117
|
})
|
|
118
118
|
|
|
119
|
-
return getRelativePath(
|
|
119
|
+
return getRelativePath(root, resolvedTypeId)
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
const source = await new TypeBuilder(oas)
|
|
@@ -142,14 +142,14 @@ export class OperationGenerator extends Generator<Options> {
|
|
|
142
142
|
|
|
143
143
|
const fileResolver: FileResolver = (name) => {
|
|
144
144
|
// Used when a react-query type(request, response, params) has an import of a global type
|
|
145
|
-
const
|
|
145
|
+
const root = resolvePath({ fileName: type.fileName, pluginName, options: { tag: operation.getTags()[0]?.name } })
|
|
146
146
|
// refs import, will always been created with the SwaggerTS plugin, our global type
|
|
147
147
|
const resolvedTypeId = resolvePath({
|
|
148
148
|
fileName: `${name}.ts`,
|
|
149
149
|
pluginName,
|
|
150
150
|
})
|
|
151
151
|
|
|
152
|
-
return getRelativePath(
|
|
152
|
+
return getRelativePath(root, resolvedTypeId)
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
const source = await new TypeBuilder(oas)
|
|
@@ -50,7 +50,7 @@ export class TypeGenerator extends SchemaGenerator<Options, OpenAPIV3.SchemaObje
|
|
|
50
50
|
return this
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
build(schema: OpenAPIV3.SchemaObject
|
|
53
|
+
build({ schema, baseName, description }: { schema: OpenAPIV3.SchemaObject; baseName: string; description?: string }) {
|
|
54
54
|
const nodes: ts.Node[] = []
|
|
55
55
|
const type = this.getTypeFromSchema(schema, baseName)
|
|
56
56
|
|
|
@@ -138,6 +138,7 @@ export class TypeGenerator extends SchemaGenerator<Options, OpenAPIV3.SchemaObje
|
|
|
138
138
|
schema.description && `@description ${schema.description}`,
|
|
139
139
|
schema.type && `@type ${schema.type}${isRequired ? '' : ' | undefined'} ${schema.format || ''}`,
|
|
140
140
|
schema.example && `@example ${schema.example}`,
|
|
141
|
+
schema.deprecated && `@deprecated`,
|
|
141
142
|
schema.default !== undefined && typeof schema.default === 'string' && `@default '${schema.default}'`,
|
|
142
143
|
schema.default !== undefined && typeof schema.default !== 'string' && `@default ${schema.default}`,
|
|
143
144
|
],
|