@tsoa-next/cli 8.0.1 → 8.0.2-dev.48.4fd45317
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/api.d.ts +2 -1
- package/dist/api.js +171 -148
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts +1 -2
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/metadataGeneration/controllerGenerator.js +10 -13
- package/dist/metadataGeneration/controllerGenerator.js.map +1 -1
- package/dist/metadataGeneration/exceptions.d.ts +3 -3
- package/dist/metadataGeneration/exceptions.js +5 -12
- package/dist/metadataGeneration/exceptions.js.map +1 -1
- package/dist/metadataGeneration/extension.js +2 -2
- package/dist/metadataGeneration/extension.js.map +1 -1
- package/dist/metadataGeneration/initializer-value.js +90 -80
- package/dist/metadataGeneration/initializer-value.js.map +1 -1
- package/dist/metadataGeneration/metadataGenerator.js +20 -22
- package/dist/metadataGeneration/metadataGenerator.js.map +1 -1
- package/dist/metadataGeneration/methodGenerator.d.ts +1 -0
- package/dist/metadataGeneration/methodGenerator.js +39 -27
- package/dist/metadataGeneration/methodGenerator.js.map +1 -1
- package/dist/metadataGeneration/parameterGenerator.d.ts +5 -0
- package/dist/metadataGeneration/parameterGenerator.js +80 -91
- package/dist/metadataGeneration/parameterGenerator.js.map +1 -1
- package/dist/metadataGeneration/transformer/dateTransformer.js +3 -5
- package/dist/metadataGeneration/transformer/dateTransformer.js.map +1 -1
- package/dist/metadataGeneration/transformer/enumTransformer.d.ts +2 -0
- package/dist/metadataGeneration/transformer/enumTransformer.js +34 -12
- package/dist/metadataGeneration/transformer/enumTransformer.js.map +1 -1
- package/dist/metadataGeneration/transformer/primitiveTransformer.js +2 -4
- package/dist/metadataGeneration/transformer/primitiveTransformer.js.map +1 -1
- package/dist/metadataGeneration/transformer/propertyTransformer.d.ts +1 -0
- package/dist/metadataGeneration/transformer/propertyTransformer.js +14 -19
- package/dist/metadataGeneration/transformer/propertyTransformer.js.map +1 -1
- package/dist/metadataGeneration/transformer/referenceTransformer.d.ts +2 -0
- package/dist/metadataGeneration/transformer/referenceTransformer.js +35 -18
- package/dist/metadataGeneration/transformer/referenceTransformer.js.map +1 -1
- package/dist/metadataGeneration/transformer/transformer.js +3 -4
- package/dist/metadataGeneration/transformer/transformer.js.map +1 -1
- package/dist/metadataGeneration/typeResolver.d.ts +79 -0
- package/dist/metadataGeneration/typeResolver.js +908 -737
- package/dist/metadataGeneration/typeResolver.js.map +1 -1
- package/dist/module/generate-routes.d.ts +1 -2
- package/dist/module/generate-routes.js +18 -17
- package/dist/module/generate-routes.js.map +1 -1
- package/dist/module/generate-spec.js +1 -3
- package/dist/module/generate-spec.js.map +1 -1
- package/dist/routeGeneration/defaultRouteGenerator.js +2 -2
- package/dist/routeGeneration/defaultRouteGenerator.js.map +1 -1
- package/dist/routeGeneration/routeGenerator.d.ts +2 -0
- package/dist/routeGeneration/routeGenerator.js +20 -30
- package/dist/routeGeneration/routeGenerator.js.map +1 -1
- package/dist/swagger/specGenerator.js +1 -1
- package/dist/swagger/specGenerator.js.map +1 -1
- package/dist/swagger/specGenerator2.d.ts +12 -0
- package/dist/swagger/specGenerator2.js +200 -170
- package/dist/swagger/specGenerator2.js.map +1 -1
- package/dist/swagger/specGenerator3.d.ts +17 -87
- package/dist/swagger/specGenerator3.js +178 -172
- package/dist/swagger/specGenerator3.js.map +1 -1
- package/dist/utils/decoratorUtils.js +25 -32
- package/dist/utils/decoratorUtils.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.js +5 -5
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/headerTypeHelpers.js +2 -5
- package/dist/utils/headerTypeHelpers.js.map +1 -1
- package/dist/utils/importClassesFromDirectories.js +2 -2
- package/dist/utils/importClassesFromDirectories.js.map +1 -1
- package/dist/utils/jsDocUtils.d.ts +2 -1
- package/dist/utils/jsDocUtils.js +43 -12
- package/dist/utils/jsDocUtils.js.map +1 -1
- package/dist/utils/pathUtils.js +2 -2
- package/dist/utils/pathUtils.js.map +1 -1
- package/dist/utils/swaggerUtils.js +7 -1
- package/dist/utils/swaggerUtils.js.map +1 -1
- package/dist/utils/validatorUtils.js +60 -97
- package/dist/utils/validatorUtils.js.map +1 -1
- package/package.json +2 -2
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.MethodGenerator = void 0;
|
|
37
37
|
const ts = __importStar(require("typescript"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
39
|
const isVoidType_1 = require("../utils/isVoidType");
|
|
40
40
|
const decoratorUtils_1 = require("./../utils/decoratorUtils");
|
|
41
41
|
const jsDocUtils_1 = require("./../utils/jsDocUtils");
|
|
@@ -44,6 +44,7 @@ const exceptions_1 = require("./exceptions");
|
|
|
44
44
|
const parameterGenerator_1 = require("./parameterGenerator");
|
|
45
45
|
const typeResolver_1 = require("./typeResolver");
|
|
46
46
|
const headerTypeHelpers_1 = require("../utils/headerTypeHelpers");
|
|
47
|
+
const httpMethods = new Set(['options', 'get', 'post', 'put', 'patch', 'delete', 'head']);
|
|
47
48
|
const toExampleLabel = (value) => (typeof value === 'string' ? value : undefined);
|
|
48
49
|
const isResponseName = (value) => typeof value === 'string' || typeof value === 'number';
|
|
49
50
|
const isExampleValue = (value, allowUndefined = false) => {
|
|
@@ -130,8 +131,7 @@ class MethodGenerator {
|
|
|
130
131
|
}
|
|
131
132
|
const fullPath = path.join(this.parentPath || '', this.path);
|
|
132
133
|
const method = this.method;
|
|
133
|
-
const parameters = this.node.parameters
|
|
134
|
-
.map(p => {
|
|
134
|
+
const parameters = this.node.parameters.flatMap(p => {
|
|
135
135
|
try {
|
|
136
136
|
return new parameterGenerator_1.ParameterGenerator(p, method, fullPath, this.current).Generate();
|
|
137
137
|
}
|
|
@@ -141,8 +141,7 @@ class MethodGenerator {
|
|
|
141
141
|
const message = e instanceof Error ? e.message : String(e);
|
|
142
142
|
throw new exceptions_1.GenerateMetadataError(`${message} \n in '${controllerId.text}.${methodId.text}'`);
|
|
143
143
|
}
|
|
144
|
-
})
|
|
145
|
-
.reduce((flattened, params) => [...flattened, ...params], []);
|
|
144
|
+
});
|
|
146
145
|
this.validateBodyParameters(parameters);
|
|
147
146
|
this.validateQueryParameters(parameters);
|
|
148
147
|
return parameters;
|
|
@@ -174,7 +173,7 @@ class MethodGenerator {
|
|
|
174
173
|
}
|
|
175
174
|
getExtensions() {
|
|
176
175
|
const extensionDecorators = this.getDecoratorsByIdentifier(this.node, 'Extension');
|
|
177
|
-
if (!extensionDecorators
|
|
176
|
+
if (!extensionDecorators?.length) {
|
|
178
177
|
return [];
|
|
179
178
|
}
|
|
180
179
|
return (0, extension_1.getExtensions)(extensionDecorators, this.current);
|
|
@@ -186,7 +185,7 @@ class MethodGenerator {
|
|
|
186
185
|
}
|
|
187
186
|
processMethodDecorators() {
|
|
188
187
|
const pathDecorators = (0, decoratorUtils_1.getDecorators)(this.node, (_identifier, canonicalName) => this.supportsPathMethod(canonicalName), this.current.typeChecker);
|
|
189
|
-
if (!pathDecorators
|
|
188
|
+
if (!pathDecorators?.length) {
|
|
190
189
|
return;
|
|
191
190
|
}
|
|
192
191
|
if (pathDecorators.length > 1) {
|
|
@@ -198,9 +197,8 @@ class MethodGenerator {
|
|
|
198
197
|
throw new exceptions_1.GenerateMetadataError(`Unsupported path decorator in '${this.getCurrentLocation()}' method.`);
|
|
199
198
|
}
|
|
200
199
|
this.method = decoratorName.toLowerCase();
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
// we need to throw an error there
|
|
200
|
+
// Methods without an explicit decorator path inherit the controller route.
|
|
201
|
+
// Duplicate signatures are rejected later during metadata validation.
|
|
204
202
|
this.path = (0, decoratorUtils_1.getPath)(decorator, this.current.typeChecker);
|
|
205
203
|
this.produces = this.getProduces();
|
|
206
204
|
this.consumes = this.getConsumes();
|
|
@@ -211,8 +209,8 @@ class MethodGenerator {
|
|
|
211
209
|
}
|
|
212
210
|
getConsumes() {
|
|
213
211
|
const consumesDecorators = this.getDecoratorsByIdentifier(this.node, 'Consumes');
|
|
214
|
-
if (!consumesDecorators
|
|
215
|
-
return;
|
|
212
|
+
if (!consumesDecorators?.length) {
|
|
213
|
+
return undefined;
|
|
216
214
|
}
|
|
217
215
|
if (consumesDecorators.length > 1) {
|
|
218
216
|
throw new exceptions_1.GenerateMetadataError(`Only one Consumes decorator in '${this.getCurrentLocation()}' method, Found: ${consumesDecorators.map(d => d.text).join(', ')}`);
|
|
@@ -224,7 +222,7 @@ class MethodGenerator {
|
|
|
224
222
|
getMethodResponses() {
|
|
225
223
|
const responseExamplesByName = {};
|
|
226
224
|
const decorators = this.getDecoratorsByIdentifier(this.node, 'Response');
|
|
227
|
-
if (!decorators
|
|
225
|
+
if (!decorators?.length) {
|
|
228
226
|
return [];
|
|
229
227
|
}
|
|
230
228
|
return decorators.map(decorator => {
|
|
@@ -249,7 +247,7 @@ class MethodGenerator {
|
|
|
249
247
|
getMethodSuccessResponse(type) {
|
|
250
248
|
const decorators = this.getDecoratorsByIdentifier(this.node, 'SuccessResponse');
|
|
251
249
|
const examplesWithLabels = this.getMethodSuccessExamples();
|
|
252
|
-
if (!decorators
|
|
250
|
+
if (!decorators?.length) {
|
|
253
251
|
const returnsDescription = (0, jsDocUtils_1.getJSDocComment)(this.node, 'returns') || 'Ok';
|
|
254
252
|
return {
|
|
255
253
|
response: {
|
|
@@ -280,7 +278,7 @@ class MethodGenerator {
|
|
|
280
278
|
schema: type,
|
|
281
279
|
headers,
|
|
282
280
|
},
|
|
283
|
-
status:
|
|
281
|
+
status: this.parseResponseStatus(name),
|
|
284
282
|
};
|
|
285
283
|
}
|
|
286
284
|
getHeadersFromDecorator({ parent: expression }, headersIndex) {
|
|
@@ -297,24 +295,29 @@ class MethodGenerator {
|
|
|
297
295
|
}
|
|
298
296
|
getMethodSuccessExamples() {
|
|
299
297
|
const exampleDecorators = this.getDecoratorsByIdentifier(this.node, 'Example');
|
|
300
|
-
if (!exampleDecorators
|
|
298
|
+
if (!exampleDecorators?.length) {
|
|
301
299
|
return undefined;
|
|
302
300
|
}
|
|
303
|
-
const examples = exampleDecorators
|
|
301
|
+
const examples = exampleDecorators
|
|
302
|
+
.map(exampleDecorator => {
|
|
304
303
|
const [example, label] = (0, decoratorUtils_1.getDecoratorValues)(exampleDecorator, this.current.typeChecker);
|
|
305
304
|
return { example, label: toExampleLabel(label) };
|
|
306
|
-
})
|
|
307
|
-
|
|
305
|
+
})
|
|
306
|
+
.filter((entry) => isExampleValue(entry.example));
|
|
307
|
+
return examples.length ? examples : undefined;
|
|
308
308
|
}
|
|
309
309
|
supportsPathMethod(method) {
|
|
310
|
-
|
|
310
|
+
if (!method) {
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
return httpMethods.has(method.toLowerCase());
|
|
311
314
|
}
|
|
312
315
|
getIsDeprecated() {
|
|
313
316
|
if ((0, jsDocUtils_1.isExistJSDocTag)(this.node, tag => tag.tagName.text === 'deprecated')) {
|
|
314
317
|
return true;
|
|
315
318
|
}
|
|
316
319
|
const depDecorators = this.getDecoratorsByIdentifier(this.node, 'Deprecated');
|
|
317
|
-
if (!depDecorators
|
|
320
|
+
if (!depDecorators?.length) {
|
|
318
321
|
return false;
|
|
319
322
|
}
|
|
320
323
|
if (depDecorators.length > 1) {
|
|
@@ -324,7 +327,7 @@ class MethodGenerator {
|
|
|
324
327
|
}
|
|
325
328
|
getOperationId() {
|
|
326
329
|
const opDecorators = this.getDecoratorsByIdentifier(this.node, 'OperationId');
|
|
327
|
-
if (!opDecorators
|
|
330
|
+
if (!opDecorators?.length) {
|
|
328
331
|
return undefined;
|
|
329
332
|
}
|
|
330
333
|
if (opDecorators.length > 1) {
|
|
@@ -335,7 +338,7 @@ class MethodGenerator {
|
|
|
335
338
|
}
|
|
336
339
|
getTags() {
|
|
337
340
|
const tagsDecorators = this.getDecoratorsByIdentifier(this.node, 'Tags');
|
|
338
|
-
if (!tagsDecorators
|
|
341
|
+
if (!tagsDecorators?.length) {
|
|
339
342
|
return this.parentTags;
|
|
340
343
|
}
|
|
341
344
|
if (tagsDecorators.length > 1) {
|
|
@@ -359,14 +362,14 @@ class MethodGenerator {
|
|
|
359
362
|
if (noSecurityDecorators?.length) {
|
|
360
363
|
return [];
|
|
361
364
|
}
|
|
362
|
-
if (!securityDecorators
|
|
365
|
+
if (!securityDecorators?.length) {
|
|
363
366
|
return this.parentSecurity || [];
|
|
364
367
|
}
|
|
365
368
|
return securityDecorators.map(d => (0, decoratorUtils_1.getSecurites)(d, this.current.typeChecker));
|
|
366
369
|
}
|
|
367
370
|
getIsHidden() {
|
|
368
371
|
const hiddenDecorators = this.getDecoratorsByIdentifier(this.node, 'Hidden');
|
|
369
|
-
if (!hiddenDecorators
|
|
372
|
+
if (!hiddenDecorators?.length) {
|
|
370
373
|
return !!this.isParentHidden;
|
|
371
374
|
}
|
|
372
375
|
if (this.isParentHidden) {
|
|
@@ -387,10 +390,10 @@ class MethodGenerator {
|
|
|
387
390
|
if (Array.isArray(produces)) {
|
|
388
391
|
return produces;
|
|
389
392
|
}
|
|
390
|
-
|
|
393
|
+
if (typeof produces === 'string') {
|
|
391
394
|
return [produces];
|
|
392
395
|
}
|
|
393
|
-
return;
|
|
396
|
+
return undefined;
|
|
394
397
|
}
|
|
395
398
|
getProducesValue(value) {
|
|
396
399
|
if (typeof value === 'string') {
|
|
@@ -401,6 +404,15 @@ class MethodGenerator {
|
|
|
401
404
|
}
|
|
402
405
|
return undefined;
|
|
403
406
|
}
|
|
407
|
+
parseResponseStatus(name) {
|
|
408
|
+
if (typeof name === 'number') {
|
|
409
|
+
return name;
|
|
410
|
+
}
|
|
411
|
+
if (typeof name === 'string' && /^\d+$/.test(name)) {
|
|
412
|
+
return Number.parseInt(name, 10);
|
|
413
|
+
}
|
|
414
|
+
return undefined;
|
|
415
|
+
}
|
|
404
416
|
}
|
|
405
417
|
exports.MethodGenerator = MethodGenerator;
|
|
406
418
|
//# sourceMappingURL=methodGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methodGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/methodGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"methodGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/methodGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ export declare class ParameterGenerator {
|
|
|
19
19
|
private getUploadedFileParameter;
|
|
20
20
|
private getFormFieldParameter;
|
|
21
21
|
private getQueriesParameters;
|
|
22
|
+
private getQueriesType;
|
|
23
|
+
private tryResolveQueriesType;
|
|
22
24
|
private validateQueriesProperties;
|
|
23
25
|
private getQueryParameters;
|
|
24
26
|
private getPathParameter;
|
|
@@ -33,4 +35,7 @@ export declare class ParameterGenerator {
|
|
|
33
35
|
private supportPathDataType;
|
|
34
36
|
private getValidatedType;
|
|
35
37
|
private getQueryParameterIsHidden;
|
|
38
|
+
private validateArrayQueriesProperty;
|
|
39
|
+
private validateNestedQueriesProperties;
|
|
40
|
+
private getParameterTypeNode;
|
|
36
41
|
}
|
|
@@ -44,6 +44,10 @@ const typeResolver_1 = require("./typeResolver");
|
|
|
44
44
|
const headerTypeHelpers_1 = require("../utils/headerTypeHelpers");
|
|
45
45
|
const validateDecoratorUtils_1 = require("../utils/validateDecoratorUtils");
|
|
46
46
|
const getDecoratorStringValue = (value, fallback) => (typeof value === 'string' ? value : fallback);
|
|
47
|
+
const bodyMethods = new Set(['post', 'put', 'patch', 'delete']);
|
|
48
|
+
const supportedParameterDecorators = new Set(['header', 'query', 'queries', 'path', 'body', 'bodyprop', 'request', 'requestprop', 'res', 'inject', 'uploadedfile', 'uploadedfiles', 'formfield']);
|
|
49
|
+
const validateDecoratorLocations = new Set(['body', 'bodyprop', 'query', 'queries', 'path', 'header', 'formfield']);
|
|
50
|
+
const supportedPathDataTypes = new Set(['string', 'integer', 'long', 'float', 'double', 'date', 'datetime', 'buffer', 'boolean', 'enum', 'refEnum', 'file', 'any']);
|
|
47
51
|
const isExampleValue = (value, allowUndefined = false) => {
|
|
48
52
|
if (value === null || value instanceof Date) {
|
|
49
53
|
return true;
|
|
@@ -63,6 +67,7 @@ const isExampleValue = (value, allowUndefined = false) => {
|
|
|
63
67
|
return false;
|
|
64
68
|
};
|
|
65
69
|
const toParameterExamples = (values) => values?.filter(value => isExampleValue(value));
|
|
70
|
+
const isQueriesType = (type) => type.dataType === 'refObject' || type.dataType === 'nestedObjectLiteral';
|
|
66
71
|
class ParameterGenerator {
|
|
67
72
|
parameter;
|
|
68
73
|
method;
|
|
@@ -149,7 +154,7 @@ class ParameterGenerator {
|
|
|
149
154
|
return typeNode;
|
|
150
155
|
}
|
|
151
156
|
const symbol = this.current.typeChecker.getTypeAtLocation(typeNode).aliasSymbol;
|
|
152
|
-
if (!symbol
|
|
157
|
+
if (!symbol?.declarations) {
|
|
153
158
|
return undefined;
|
|
154
159
|
}
|
|
155
160
|
const declaration = symbol.declarations[0];
|
|
@@ -168,7 +173,7 @@ class ParameterGenerator {
|
|
|
168
173
|
if (!typeNode) {
|
|
169
174
|
throw new exceptions_1.GenerateMetadataError('@Res() requires the type to be TsoaResponse<HTTPStatusCode, ResBody>', parameter);
|
|
170
175
|
}
|
|
171
|
-
if (!typeNode.typeArguments
|
|
176
|
+
if (!typeNode.typeArguments?.[0]) {
|
|
172
177
|
throw new exceptions_1.GenerateMetadataError('@Res() requires the type to be TsoaResponse<HTTPStatusCode, ResBody>', parameter);
|
|
173
178
|
}
|
|
174
179
|
const statusArgument = typeNode.typeArguments[0];
|
|
@@ -207,12 +212,12 @@ class ParameterGenerator {
|
|
|
207
212
|
}
|
|
208
213
|
getProducesFromResHeaders(headers) {
|
|
209
214
|
const { properties } = headers;
|
|
210
|
-
const
|
|
215
|
+
const contentTypeProp = (properties || []).find(p => p.name.toLowerCase() === 'content-type' && p.type.dataType === 'enum');
|
|
211
216
|
if (contentTypeProp) {
|
|
212
217
|
const type = contentTypeProp.type;
|
|
213
218
|
return type.enums;
|
|
214
219
|
}
|
|
215
|
-
return;
|
|
220
|
+
return undefined;
|
|
216
221
|
}
|
|
217
222
|
getBodyPropParameter(parameter) {
|
|
218
223
|
const parameterName = parameter.name.text;
|
|
@@ -334,55 +339,7 @@ class ParameterGenerator {
|
|
|
334
339
|
}
|
|
335
340
|
getQueriesParameters(parameter) {
|
|
336
341
|
const parameterName = parameter.name.text;
|
|
337
|
-
const type = this.
|
|
338
|
-
// Handle cases where TypeResolver doesn't properly resolve complex types
|
|
339
|
-
// like Zod's z.infer types to refObject or nestedObjectLiteral
|
|
340
|
-
if (type.dataType !== 'refObject' && type.dataType !== 'nestedObjectLiteral') {
|
|
341
|
-
// Try to resolve the type more aggressively for complex types
|
|
342
|
-
let typeNode = parameter.type;
|
|
343
|
-
if (!typeNode) {
|
|
344
|
-
const typeFromChecker = this.current.typeChecker.getTypeAtLocation(parameter);
|
|
345
|
-
typeNode = this.current.typeChecker.typeToTypeNode(typeFromChecker, undefined, ts.NodeBuilderFlags.NoTruncation);
|
|
346
|
-
}
|
|
347
|
-
// If it's a TypeReferenceNode (like z.infer), try to resolve it differently
|
|
348
|
-
if (ts.isTypeReferenceNode(typeNode)) {
|
|
349
|
-
try {
|
|
350
|
-
// Try to get the actual type from the type checker
|
|
351
|
-
const actualType = this.current.typeChecker.getTypeAtLocation(typeNode);
|
|
352
|
-
const typeNodeFromType = this.current.typeChecker.typeToTypeNode(actualType, undefined, ts.NodeBuilderFlags.NoTruncation);
|
|
353
|
-
const resolvedType = new typeResolver_1.TypeResolver(typeNodeFromType, this.current, parameter).resolve();
|
|
354
|
-
// Check if the resolved type is now acceptable
|
|
355
|
-
if (resolvedType.dataType === 'refObject' || resolvedType.dataType === 'nestedObjectLiteral') {
|
|
356
|
-
// Use the resolved type instead
|
|
357
|
-
for (const property of resolvedType.properties) {
|
|
358
|
-
this.validateQueriesProperties(property, parameterName);
|
|
359
|
-
}
|
|
360
|
-
const { examples: example, exampleLabels } = this.getParameterExample(parameter, parameterName);
|
|
361
|
-
return {
|
|
362
|
-
description: this.getParameterDescription(parameter),
|
|
363
|
-
in: 'queries',
|
|
364
|
-
name: parameterName,
|
|
365
|
-
example: toParameterExamples(example),
|
|
366
|
-
exampleLabels,
|
|
367
|
-
parameterName,
|
|
368
|
-
required: !parameter.questionToken && !parameter.initializer,
|
|
369
|
-
type: resolvedType,
|
|
370
|
-
validators: (0, validatorUtils_1.getParameterValidators)(this.parameter, parameterName),
|
|
371
|
-
parameterIndex: this.getParameterIndex(parameter),
|
|
372
|
-
...this.getExternalValidationMetadata(parameter, 'queries'),
|
|
373
|
-
deprecated: this.getParameterDeprecation(parameter),
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
catch (error) {
|
|
378
|
-
// If resolution fails, log the error for debugging but continue with the original error
|
|
379
|
-
// This helps developers understand why the type resolution failed
|
|
380
|
-
console.warn(`Failed to resolve complex type for @Queries('${parameterName}'):`, error);
|
|
381
|
-
// Continue with the original error below
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
throw new exceptions_1.GenerateMetadataError(`@Queries('${parameterName}') only support 'refObject' or 'nestedObjectLiteral' types. If you want only one query parameter, please use the '@Query' decorator.`);
|
|
385
|
-
}
|
|
342
|
+
const type = this.getQueriesType(parameter, parameterName);
|
|
386
343
|
for (const property of type.properties) {
|
|
387
344
|
this.validateQueriesProperties(property, parameterName);
|
|
388
345
|
}
|
|
@@ -402,32 +359,43 @@ class ParameterGenerator {
|
|
|
402
359
|
deprecated: this.getParameterDeprecation(parameter),
|
|
403
360
|
};
|
|
404
361
|
}
|
|
362
|
+
getQueriesType(parameter, parameterName) {
|
|
363
|
+
const type = this.getValidatedType(parameter);
|
|
364
|
+
if (isQueriesType(type)) {
|
|
365
|
+
return type;
|
|
366
|
+
}
|
|
367
|
+
const resolvedType = this.tryResolveQueriesType(parameter, parameterName);
|
|
368
|
+
if (resolvedType) {
|
|
369
|
+
return resolvedType;
|
|
370
|
+
}
|
|
371
|
+
throw new exceptions_1.GenerateMetadataError(`@Queries('${parameterName}') only support 'refObject' or 'nestedObjectLiteral' types. If you want only one query parameter, please use the '@Query' decorator.`);
|
|
372
|
+
}
|
|
373
|
+
tryResolveQueriesType(parameter, parameterName) {
|
|
374
|
+
const typeNode = this.getParameterTypeNode(parameter);
|
|
375
|
+
if (!ts.isTypeReferenceNode(typeNode)) {
|
|
376
|
+
return undefined;
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
const actualType = this.current.typeChecker.getTypeAtLocation(typeNode);
|
|
380
|
+
const typeNodeFromType = this.current.typeChecker.typeToTypeNode(actualType, undefined, ts.NodeBuilderFlags.NoTruncation);
|
|
381
|
+
const resolvedType = new typeResolver_1.TypeResolver(typeNodeFromType, this.current, parameter).resolve();
|
|
382
|
+
return isQueriesType(resolvedType) ? resolvedType : undefined;
|
|
383
|
+
}
|
|
384
|
+
catch (error) {
|
|
385
|
+
console.warn(`Failed to resolve complex type for @Queries('${parameterName}'):`, error);
|
|
386
|
+
return undefined;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
405
389
|
validateQueriesProperties(property, parentName) {
|
|
406
390
|
if (property.type.dataType === 'array') {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
// For arrays of nestedObjectLiteral, validate each property recursively
|
|
410
|
-
const nestedType = arrayType.elementType;
|
|
411
|
-
if (nestedType.properties) {
|
|
412
|
-
for (const nestedProperty of nestedType.properties) {
|
|
413
|
-
this.validateQueriesProperties(nestedProperty, `${parentName}.${property.name}[]`);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
else if (!this.supportPathDataType(arrayType.elementType)) {
|
|
418
|
-
throw new exceptions_1.GenerateMetadataError(`@Queries('${parentName}') property '${property.name}' can't support array '${arrayType.elementType.dataType}' type.`);
|
|
419
|
-
}
|
|
391
|
+
this.validateArrayQueriesProperty(property, parentName);
|
|
392
|
+
return;
|
|
420
393
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
if (nestedType.properties) {
|
|
425
|
-
for (const nestedProperty of nestedType.properties) {
|
|
426
|
-
this.validateQueriesProperties(nestedProperty, `${parentName}.${property.name}`);
|
|
427
|
-
}
|
|
428
|
-
}
|
|
394
|
+
if (property.type.dataType === 'nestedObjectLiteral') {
|
|
395
|
+
this.validateNestedQueriesProperties(property.type.properties, `${parentName}.${property.name}`);
|
|
396
|
+
return;
|
|
429
397
|
}
|
|
430
|
-
|
|
398
|
+
if (!this.supportPathDataType(property.type)) {
|
|
431
399
|
throw new exceptions_1.GenerateMetadataError(`@Queries('${parentName}') nested property '${property.name}' Can't support '${property.type.dataType}' type.`);
|
|
432
400
|
}
|
|
433
401
|
}
|
|
@@ -513,7 +481,7 @@ class ParameterGenerator {
|
|
|
513
481
|
}
|
|
514
482
|
const comments = symbol.getDocumentationComment(this.current.typeChecker);
|
|
515
483
|
if (comments.length) {
|
|
516
|
-
return
|
|
484
|
+
return (0, jsDocUtils_1.symbolDisplayPartsToString)(comments);
|
|
517
485
|
}
|
|
518
486
|
return undefined;
|
|
519
487
|
}
|
|
@@ -531,7 +499,10 @@ class ParameterGenerator {
|
|
|
531
499
|
exampleLabels.push(hasExampleLabel ? comment?.split(' ')[0].split('.').slice(1).join('.') : undefined);
|
|
532
500
|
}
|
|
533
501
|
return isExample ?? false;
|
|
534
|
-
}).map(tag =>
|
|
502
|
+
}).map(tag => {
|
|
503
|
+
const comment = (0, jsDocUtils_1.commentToString)(tag.comment) || '';
|
|
504
|
+
return comment.replace(comment.split(' ')[0] || '', '').replaceAll('\r', '');
|
|
505
|
+
});
|
|
535
506
|
if (examples.length === 0) {
|
|
536
507
|
return {
|
|
537
508
|
examples: undefined,
|
|
@@ -553,7 +524,7 @@ class ParameterGenerator {
|
|
|
553
524
|
}
|
|
554
525
|
}
|
|
555
526
|
supportBodyMethod(method) {
|
|
556
|
-
return
|
|
527
|
+
return bodyMethods.has(method.toLowerCase());
|
|
557
528
|
}
|
|
558
529
|
assertValidateDecoratorCompatibility(decoratorName) {
|
|
559
530
|
const hasValidateDecorator = (0, decoratorUtils_1.getDecorators)(this.parameter, (_identifier, canonicalName) => canonicalName === 'Validate', this.current.typeChecker).length > 0;
|
|
@@ -562,7 +533,7 @@ class ParameterGenerator {
|
|
|
562
533
|
}
|
|
563
534
|
const resolvedLocation = decoratorName ? decoratorName.toLowerCase() : 'path';
|
|
564
535
|
const normalizedLocation = ['uploadedfile', 'uploadedfiles'].includes(resolvedLocation) ? 'formfield' : resolvedLocation;
|
|
565
|
-
if (!
|
|
536
|
+
if (!validateDecoratorLocations.has(normalizedLocation)) {
|
|
566
537
|
throw new exceptions_1.GenerateMetadataError(`@Validate is not supported on '${normalizedLocation}' parameters in this release.`, this.parameter);
|
|
567
538
|
}
|
|
568
539
|
}
|
|
@@ -578,12 +549,13 @@ class ParameterGenerator {
|
|
|
578
549
|
return (0, validateDecoratorUtils_1.getParameterExternalValidator)(parameter, parameterIn, this.current.typeChecker);
|
|
579
550
|
}
|
|
580
551
|
supportParameterDecorator(decoratorName) {
|
|
581
|
-
|
|
582
|
-
|
|
552
|
+
if (!decoratorName) {
|
|
553
|
+
return false;
|
|
554
|
+
}
|
|
555
|
+
return supportedParameterDecorators.has(decoratorName.toLowerCase());
|
|
583
556
|
}
|
|
584
557
|
supportPathDataType(parameterType) {
|
|
585
|
-
|
|
586
|
-
if (supportedPathDataTypes.find(t => t === parameterType.dataType)) {
|
|
558
|
+
if (supportedPathDataTypes.has(parameterType.dataType)) {
|
|
587
559
|
return true;
|
|
588
560
|
}
|
|
589
561
|
if (parameterType.dataType === 'refAlias') {
|
|
@@ -591,21 +563,16 @@ class ParameterGenerator {
|
|
|
591
563
|
}
|
|
592
564
|
if (parameterType.dataType === 'union') {
|
|
593
565
|
// skip undefined inside unions
|
|
594
|
-
return
|
|
566
|
+
return parameterType.types.every(type => type.dataType === 'undefined' || this.supportPathDataType(type));
|
|
595
567
|
}
|
|
596
568
|
return false;
|
|
597
569
|
}
|
|
598
570
|
getValidatedType(parameter) {
|
|
599
|
-
|
|
600
|
-
if (!typeNode) {
|
|
601
|
-
const type = this.current.typeChecker.getTypeAtLocation(parameter);
|
|
602
|
-
typeNode = this.current.typeChecker.typeToTypeNode(type, undefined, ts.NodeBuilderFlags.NoTruncation);
|
|
603
|
-
}
|
|
604
|
-
return new typeResolver_1.TypeResolver(typeNode, this.current, parameter).resolve();
|
|
571
|
+
return new typeResolver_1.TypeResolver(this.getParameterTypeNode(parameter), this.current, parameter).resolve();
|
|
605
572
|
}
|
|
606
573
|
getQueryParameterIsHidden(parameter) {
|
|
607
574
|
const hiddenDecorators = (0, decoratorUtils_1.getDecorators)(parameter, (_identifier, canonicalName) => canonicalName === 'Hidden', this.current.typeChecker);
|
|
608
|
-
if (!hiddenDecorators
|
|
575
|
+
if (!hiddenDecorators?.length) {
|
|
609
576
|
return false;
|
|
610
577
|
}
|
|
611
578
|
if (hiddenDecorators.length > 1) {
|
|
@@ -614,6 +581,28 @@ class ParameterGenerator {
|
|
|
614
581
|
}
|
|
615
582
|
return true;
|
|
616
583
|
}
|
|
584
|
+
validateArrayQueriesProperty(property, parentName) {
|
|
585
|
+
const arrayType = property.type;
|
|
586
|
+
if (arrayType.elementType.dataType === 'nestedObjectLiteral') {
|
|
587
|
+
this.validateNestedQueriesProperties(arrayType.elementType.properties, `${parentName}.${property.name}[]`);
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
if (!this.supportPathDataType(arrayType.elementType)) {
|
|
591
|
+
throw new exceptions_1.GenerateMetadataError(`@Queries('${parentName}') property '${property.name}' can't support array '${arrayType.elementType.dataType}' type.`);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
validateNestedQueriesProperties(properties, parentName) {
|
|
595
|
+
for (const property of properties ?? []) {
|
|
596
|
+
this.validateQueriesProperties(property, parentName);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
getParameterTypeNode(parameter) {
|
|
600
|
+
if (parameter.type) {
|
|
601
|
+
return parameter.type;
|
|
602
|
+
}
|
|
603
|
+
const type = this.current.typeChecker.getTypeAtLocation(parameter);
|
|
604
|
+
return this.current.typeChecker.typeToTypeNode(type, undefined, ts.NodeBuilderFlags.NoTruncation);
|
|
605
|
+
}
|
|
617
606
|
}
|
|
618
607
|
exports.ParameterGenerator = ParameterGenerator;
|
|
619
608
|
//# sourceMappingURL=parameterGenerator.js.map
|