@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
|
@@ -3,9 +3,9 @@ export declare class GenerateMetadataError extends Error {
|
|
|
3
3
|
constructor(message?: string, node?: Node | TypeNode, onlyCurrent?: boolean);
|
|
4
4
|
}
|
|
5
5
|
export declare class GenerateMetaDataWarning {
|
|
6
|
-
private message;
|
|
7
|
-
private node;
|
|
8
|
-
private onlyCurrent;
|
|
6
|
+
private readonly message;
|
|
7
|
+
private readonly node;
|
|
8
|
+
private readonly onlyCurrent;
|
|
9
9
|
constructor(message: string, node: Node | TypeNode, onlyCurrent?: boolean);
|
|
10
10
|
toString(): string;
|
|
11
11
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GenerateMetaDataWarning = exports.GenerateMetadataError = void 0;
|
|
4
4
|
exports.prettyLocationOfNode = prettyLocationOfNode;
|
|
5
5
|
exports.prettyTroubleCause = prettyTroubleCause;
|
|
6
|
-
const
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
7
|
const typescript_1 = require("typescript");
|
|
8
8
|
class GenerateMetadataError extends Error {
|
|
9
9
|
constructor(message, node, onlyCurrent = false) {
|
|
@@ -34,21 +34,14 @@ function prettyLocationOfNode(node) {
|
|
|
34
34
|
const token = node.getFirstToken() || node.parent.getFirstToken();
|
|
35
35
|
const start = token ? `:${sourceFile.getLineAndCharacterOfPosition(token.getStart()).line + 1}` : '';
|
|
36
36
|
const end = token ? `:${sourceFile.getLineAndCharacterOfPosition(token.getEnd()).line + 1}` : '';
|
|
37
|
-
const normalizedPath = (0,
|
|
37
|
+
const normalizedPath = (0, node_path_1.normalize)(`${sourceFile.fileName}${start}${end}`);
|
|
38
38
|
return `At: ${normalizedPath}.`;
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
return `At unknown position...`;
|
|
42
|
-
}
|
|
40
|
+
return `At unknown position...`;
|
|
43
41
|
}
|
|
44
42
|
function prettyTroubleCause(node, onlyCurrent = false) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
name = node.pos !== -1 && node.parent ? node.getText() : getNamedNodeText(node) || '<unknown name>';
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
name = node.parent.pos !== -1 ? node.parent.getText() : getNamedNodeText(node.parent) || '<unknown name>';
|
|
51
|
-
}
|
|
43
|
+
const targetNode = !onlyCurrent && node.parent ? node.parent : node;
|
|
44
|
+
const name = targetNode.pos === -1 ? getNamedNodeText(targetNode) || '<unknown name>' : targetNode.getText();
|
|
52
45
|
return `This was caused by '${name}'`;
|
|
53
46
|
}
|
|
54
47
|
function getNamedNodeText(node) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/metadataGeneration/exceptions.ts"],"names":[],"mappings":";;;AAwBA,oDAWC;AAED,
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/metadataGeneration/exceptions.ts"],"names":[],"mappings":";;;AAwBA,oDAWC;AAED,gDAKC;AA1CD,yCAAqC;AACrC,2CAAyD;AAEzD,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAgB,EAAE,IAAsB,EAAE,WAAW,GAAG,KAAK;QACvE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,GAAG,OAAQ,KAAK,oBAAoB,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAA;QACvG,CAAC;IACH,CAAC;CACF;AAPD,sDAOC;AAED,MAAa,uBAAuB;IAEf;IACA;IACA;IAHnB,YACmB,OAAe,EACf,IAAqB,EACrB,cAAc,KAAK;QAFnB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAiB;QACrB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,QAAQ;QACN,OAAO,YAAY,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAA;IAC3H,CAAC;CACF;AAVD,0DAUC;AAED,SAAgB,oBAAoB,CAAC,IAAqB;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;QACjE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACpG,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAChG,MAAM,cAAc,GAAG,IAAA,qBAAS,EAAC,GAAG,UAAU,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC,CAAA;QACxE,OAAO,OAAO,cAAc,GAAG,CAAA;IACjC,CAAC;IAED,OAAO,wBAAwB,CAAA;AACjC,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAqB,EAAE,WAAW,GAAG,KAAK;IAC3E,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;IAE5G,OAAO,uBAAuB,IAAI,GAAG,CAAA;AACvC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAqB;IAC7C,MAAM,cAAc,GAAG,IAA8B,CAAA;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAA;IACpC,OAAO,QAAQ,IAAI,IAAA,yBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACvE,CAAC"}
|
|
@@ -41,7 +41,7 @@ const jsonUtils_1 = require("../utils/jsonUtils");
|
|
|
41
41
|
function getExtensions(decorators, metadataGenerator) {
|
|
42
42
|
const extensions = decorators.map(extensionDecorator => {
|
|
43
43
|
if (!ts.isCallExpression(extensionDecorator.parent)) {
|
|
44
|
-
throw new
|
|
44
|
+
throw new TypeError('The parent of the @Extension is not a CallExpression. Are you using it in the right place?');
|
|
45
45
|
}
|
|
46
46
|
const [decoratorKeyArg, decoratorValueArg] = extensionDecorator.parent.arguments;
|
|
47
47
|
if (!ts.isStringLiteral(decoratorKeyArg) && !ts.isIdentifier(decoratorKeyArg)) {
|
|
@@ -49,7 +49,7 @@ function getExtensions(decorators, metadataGenerator) {
|
|
|
49
49
|
}
|
|
50
50
|
const attributeKey = ts.isIdentifier(decoratorKeyArg) ? (0, initializer_value_1.getInitializerValue)(decoratorKeyArg, metadataGenerator.typeChecker) : decoratorKeyArg.text;
|
|
51
51
|
if (typeof attributeKey !== 'string') {
|
|
52
|
-
throw new
|
|
52
|
+
throw new TypeError('The first argument of @Extension must be a string');
|
|
53
53
|
}
|
|
54
54
|
if (!decoratorValueArg) {
|
|
55
55
|
throw new Error(`Extension '${attributeKey}' must contain a value`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/metadataGeneration/extension.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,sCAmCC;AAED,wEAcC;AAzDD,+CAAgC;AAChC,2DAAyF;AAGzF,kDAAiD;AAEjD,SAAgB,aAAa,CAAC,UAA2B,EAAE,iBAAoC;IAC7F,MAAM,UAAU,GAAqB,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;QACvE,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/metadataGeneration/extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,14 +36,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.isNonUndefinedInitializerValue = isNonUndefinedInitializerValue;
|
|
37
37
|
exports.getInitializerValue = getInitializerValue;
|
|
38
38
|
const ts = __importStar(require("typescript"));
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const
|
|
39
|
+
const objectHasOwn = Object.hasOwn;
|
|
40
|
+
const hasInitializer = (node) => objectHasOwn(node, 'initializer');
|
|
41
|
+
const extractInitializer = (decl) => (decl && hasInitializer(decl) ? decl.initializer : undefined);
|
|
42
|
+
const extractImportSpecifier = (symbol) => {
|
|
43
|
+
const declaration = symbol?.declarations?.[0];
|
|
44
|
+
return declaration && ts.isImportSpecifier(declaration) ? declaration : undefined;
|
|
45
|
+
};
|
|
42
46
|
const isIterable = (obj) => obj != null && typeof obj[Symbol.iterator] === 'function';
|
|
43
|
-
const toSpreadableObject = (value) =>
|
|
44
|
-
|
|
45
|
-
return
|
|
46
|
-
}
|
|
47
|
+
const toSpreadableObject = (value) => {
|
|
48
|
+
const spreadableValue = Object(value);
|
|
49
|
+
return { ...spreadableValue };
|
|
50
|
+
};
|
|
47
51
|
function isNonUndefinedInitializerValue(value) {
|
|
48
52
|
if (Array.isArray(value)) {
|
|
49
53
|
return value.every(isNonUndefinedInitializerValue);
|
|
@@ -57,26 +61,11 @@ function isNonUndefinedInitializerValue(value) {
|
|
|
57
61
|
}
|
|
58
62
|
function getInitializerValue(initializer, typeChecker, type) {
|
|
59
63
|
if (!initializer || !typeChecker) {
|
|
60
|
-
return;
|
|
64
|
+
return undefined;
|
|
61
65
|
}
|
|
62
66
|
switch (initializer.kind) {
|
|
63
67
|
case ts.SyntaxKind.ArrayLiteralExpression: {
|
|
64
|
-
|
|
65
|
-
return arrayLiteral.elements.reduce((acc, element) => {
|
|
66
|
-
if (ts.isSpreadElement(element)) {
|
|
67
|
-
const spreadValue = getInitializerValue(element.expression, typeChecker);
|
|
68
|
-
if (spreadValue && isIterable(spreadValue)) {
|
|
69
|
-
return acc.concat(...spreadValue);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
throw new Error(`${typeof spreadValue} is not iterable`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
acc.push(getInitializerValue(element, typeChecker));
|
|
77
|
-
}
|
|
78
|
-
return acc;
|
|
79
|
-
}, []);
|
|
68
|
+
return getArrayLiteralValue(initializer, typeChecker);
|
|
80
69
|
}
|
|
81
70
|
case ts.SyntaxKind.StringLiteral:
|
|
82
71
|
case ts.SyntaxKind.NoSubstitutionTemplateLiteral:
|
|
@@ -86,73 +75,21 @@ function getInitializerValue(initializer, typeChecker, type) {
|
|
|
86
75
|
case ts.SyntaxKind.FalseKeyword:
|
|
87
76
|
return false;
|
|
88
77
|
case ts.SyntaxKind.PrefixUnaryExpression: {
|
|
89
|
-
|
|
90
|
-
switch (prefixUnary.operator) {
|
|
91
|
-
case ts.SyntaxKind.PlusToken:
|
|
92
|
-
return Number(prefixUnary.operand.text);
|
|
93
|
-
case ts.SyntaxKind.MinusToken:
|
|
94
|
-
return Number(`-${prefixUnary.operand.text}`);
|
|
95
|
-
default:
|
|
96
|
-
throw new Error(`Unsupport prefix operator token: ${prefixUnary.operator}`);
|
|
97
|
-
}
|
|
78
|
+
return getPrefixUnaryValue(initializer);
|
|
98
79
|
}
|
|
99
80
|
case ts.SyntaxKind.NumberKeyword:
|
|
100
81
|
case ts.SyntaxKind.FirstLiteralToken:
|
|
101
82
|
return Number(initializer.text);
|
|
102
83
|
case ts.SyntaxKind.NewExpression: {
|
|
103
|
-
|
|
104
|
-
const ident = newExpression.expression;
|
|
105
|
-
if (ident.text === 'Date') {
|
|
106
|
-
let date = new Date();
|
|
107
|
-
if (newExpression.arguments) {
|
|
108
|
-
const newArguments = newExpression.arguments.filter(args => args.kind !== undefined);
|
|
109
|
-
const argsValue = newArguments.map(args => getInitializerValue(args, typeChecker));
|
|
110
|
-
if (argsValue.length > 0) {
|
|
111
|
-
date = new Date(argsValue);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
const dateString = date.toISOString();
|
|
115
|
-
if (type && type.dataType === 'date') {
|
|
116
|
-
return dateString.split('T')[0];
|
|
117
|
-
}
|
|
118
|
-
return dateString;
|
|
119
|
-
}
|
|
120
|
-
return;
|
|
84
|
+
return getNewExpressionValue(initializer, typeChecker, type);
|
|
121
85
|
}
|
|
122
86
|
case ts.SyntaxKind.NullKeyword:
|
|
123
87
|
return null;
|
|
124
88
|
case ts.SyntaxKind.ObjectLiteralExpression: {
|
|
125
|
-
|
|
126
|
-
const nestedObject = {};
|
|
127
|
-
objectLiteral.properties.forEach(p => {
|
|
128
|
-
if (ts.isSpreadAssignment(p)) {
|
|
129
|
-
const spreadValue = getInitializerValue(p.expression, typeChecker);
|
|
130
|
-
if (spreadValue) {
|
|
131
|
-
Object.assign(nestedObject, toSpreadableObject(spreadValue));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else if (ts.isPropertyAssignment(p)) {
|
|
135
|
-
nestedObject[p.name.getText()] = getInitializerValue(p.initializer, typeChecker);
|
|
136
|
-
}
|
|
137
|
-
else if (ts.isShorthandPropertyAssignment(p)) {
|
|
138
|
-
const shorthandSymbol = typeChecker.getShorthandAssignmentValueSymbol(p);
|
|
139
|
-
nestedObject[p.name.getText()] = getInitializerValue(extractInitializer(shorthandSymbol?.valueDeclaration) || extractImportSpecifier(shorthandSymbol), typeChecker);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
throw new Error(`Unsupported object literal property kind: ${ts.SyntaxKind[p.kind]}`);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
return nestedObject;
|
|
89
|
+
return getObjectLiteralValue(initializer, typeChecker);
|
|
146
90
|
}
|
|
147
91
|
case ts.SyntaxKind.ImportSpecifier: {
|
|
148
|
-
|
|
149
|
-
const importSymbol = typeChecker.getSymbolAtLocation(importSpecifier.name);
|
|
150
|
-
if (!importSymbol)
|
|
151
|
-
return;
|
|
152
|
-
const aliasedSymbol = typeChecker.getAliasedSymbol(importSymbol);
|
|
153
|
-
const declarations = aliasedSymbol.getDeclarations();
|
|
154
|
-
const declaration = declarations && declarations.length > 0 ? declarations[0] : undefined;
|
|
155
|
-
return getInitializerValue(extractInitializer(declaration), typeChecker);
|
|
92
|
+
return getImportSpecifierValue(initializer, typeChecker);
|
|
156
93
|
}
|
|
157
94
|
default: {
|
|
158
95
|
const symbol = typeChecker.getSymbolAtLocation(initializer);
|
|
@@ -160,4 +97,77 @@ function getInitializerValue(initializer, typeChecker, type) {
|
|
|
160
97
|
}
|
|
161
98
|
}
|
|
162
99
|
}
|
|
100
|
+
function getArrayLiteralValue(arrayLiteral, typeChecker) {
|
|
101
|
+
return arrayLiteral.elements.reduce((acc, element) => {
|
|
102
|
+
if (ts.isSpreadElement(element)) {
|
|
103
|
+
const spreadValue = getInitializerValue(element.expression, typeChecker);
|
|
104
|
+
if (spreadValue && isIterable(spreadValue)) {
|
|
105
|
+
return acc.concat(...spreadValue);
|
|
106
|
+
}
|
|
107
|
+
throw new Error(`${typeof spreadValue} is not iterable`);
|
|
108
|
+
}
|
|
109
|
+
acc.push(getInitializerValue(element, typeChecker));
|
|
110
|
+
return acc;
|
|
111
|
+
}, []);
|
|
112
|
+
}
|
|
113
|
+
function getPrefixUnaryValue(prefixUnary) {
|
|
114
|
+
switch (prefixUnary.operator) {
|
|
115
|
+
case ts.SyntaxKind.PlusToken:
|
|
116
|
+
return Number(prefixUnary.operand.text);
|
|
117
|
+
case ts.SyntaxKind.MinusToken:
|
|
118
|
+
return Number(`-${prefixUnary.operand.text}`);
|
|
119
|
+
default:
|
|
120
|
+
throw new Error(`Unsupport prefix operator token: ${prefixUnary.operator}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function getNewExpressionValue(newExpression, typeChecker, type) {
|
|
124
|
+
const ident = newExpression.expression;
|
|
125
|
+
if (ident.text !== 'Date') {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
let date = new Date();
|
|
129
|
+
if (newExpression.arguments) {
|
|
130
|
+
const argsValue = newExpression.arguments.filter(args => args.kind !== undefined).map(args => getInitializerValue(args, typeChecker));
|
|
131
|
+
if (argsValue.length > 0) {
|
|
132
|
+
date = new Date(argsValue);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const dateString = date.toISOString();
|
|
136
|
+
if (type?.dataType === 'date') {
|
|
137
|
+
return dateString.split('T')[0];
|
|
138
|
+
}
|
|
139
|
+
return dateString;
|
|
140
|
+
}
|
|
141
|
+
function getObjectLiteralValue(objectLiteral, typeChecker) {
|
|
142
|
+
const nestedObject = {};
|
|
143
|
+
objectLiteral.properties.forEach(property => {
|
|
144
|
+
if (ts.isSpreadAssignment(property)) {
|
|
145
|
+
const spreadValue = getInitializerValue(property.expression, typeChecker);
|
|
146
|
+
if (spreadValue) {
|
|
147
|
+
Object.assign(nestedObject, toSpreadableObject(spreadValue));
|
|
148
|
+
}
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (ts.isPropertyAssignment(property)) {
|
|
152
|
+
nestedObject[property.name.getText()] = getInitializerValue(property.initializer, typeChecker);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (ts.isShorthandPropertyAssignment(property)) {
|
|
156
|
+
const shorthandSymbol = typeChecker.getShorthandAssignmentValueSymbol(property);
|
|
157
|
+
nestedObject[property.name.getText()] = getInitializerValue(extractInitializer(shorthandSymbol?.valueDeclaration) || extractImportSpecifier(shorthandSymbol), typeChecker);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
throw new Error(`Unsupported object literal property kind: ${ts.SyntaxKind[property.kind]}`);
|
|
161
|
+
});
|
|
162
|
+
return nestedObject;
|
|
163
|
+
}
|
|
164
|
+
function getImportSpecifierValue(importSpecifier, typeChecker) {
|
|
165
|
+
const importSymbol = typeChecker.getSymbolAtLocation(importSpecifier.name);
|
|
166
|
+
if (!importSymbol) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
const aliasedSymbol = typeChecker.getAliasedSymbol(importSymbol);
|
|
170
|
+
const declaration = aliasedSymbol.getDeclarations()?.[0];
|
|
171
|
+
return getInitializerValue(extractInitializer(declaration), typeChecker);
|
|
172
|
+
}
|
|
163
173
|
//# sourceMappingURL=initializer-value.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initializer-value.js","sourceRoot":"","sources":["../../src/metadataGeneration/initializer-value.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"initializer-value.js","sourceRoot":"","sources":["../../src/metadataGeneration/initializer-value.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ class MetadataGenerator {
|
|
|
49
49
|
}
|
|
50
50
|
extractNodeFromProgramSourceFiles() {
|
|
51
51
|
this.program.getSourceFiles().forEach(sf => {
|
|
52
|
-
if (this.ignorePaths
|
|
52
|
+
if (this.ignorePaths?.length) {
|
|
53
53
|
for (const path of this.ignorePaths) {
|
|
54
54
|
if ((0, minimatch_1.minimatch)(sf.fileName, path)) {
|
|
55
55
|
return;
|
|
@@ -63,7 +63,7 @@ class MetadataGenerator {
|
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
|
-
checkForMethodSignatureDuplicates
|
|
66
|
+
checkForMethodSignatureDuplicates(controllers) {
|
|
67
67
|
const map = {};
|
|
68
68
|
controllers.forEach(controller => {
|
|
69
69
|
controller.methods.forEach(method => {
|
|
@@ -87,9 +87,9 @@ class MetadataGenerator {
|
|
|
87
87
|
if (message) {
|
|
88
88
|
throw new exceptions_1.GenerateMetadataError(message);
|
|
89
89
|
}
|
|
90
|
-
}
|
|
91
|
-
checkForPathParamSignatureDuplicates
|
|
92
|
-
const paramRegExp =
|
|
90
|
+
}
|
|
91
|
+
checkForPathParamSignatureDuplicates(controllers) {
|
|
92
|
+
const paramRegExp = /\{(\w*)}|:(\w+)/g;
|
|
93
93
|
let PathDuplicationType;
|
|
94
94
|
(function (PathDuplicationType) {
|
|
95
95
|
PathDuplicationType[PathDuplicationType["FULL"] = 0] = "FULL";
|
|
@@ -113,11 +113,9 @@ class MetadataGenerator {
|
|
|
113
113
|
const methodRouteGroup = {};
|
|
114
114
|
// Group all ts methods with HTTP method decorator into same object in same controller.
|
|
115
115
|
controller.methods.forEach(method => {
|
|
116
|
-
|
|
117
|
-
methodRouteGroup[method.method] = [];
|
|
118
|
-
}
|
|
116
|
+
const routesForMethod = (methodRouteGroup[method.method] ??= []);
|
|
119
117
|
const params = method.path.match(paramRegExp);
|
|
120
|
-
|
|
118
|
+
routesForMethod.push({
|
|
121
119
|
method, // method.name + ": " + method.path) as any,
|
|
122
120
|
path: params?.reduce((s, a) => {
|
|
123
121
|
// replace all params with {} placeholder for comparison
|
|
@@ -136,7 +134,7 @@ class MetadataGenerator {
|
|
|
136
134
|
}
|
|
137
135
|
else if (methodRoutes[i].path.split('/').length === methodRoutes[j].path.split('/').length &&
|
|
138
136
|
methodRoutes[j].path
|
|
139
|
-
.
|
|
137
|
+
.substring(methodRoutes[j].path.lastIndexOf('/')) // compare only the "last" part of the path
|
|
140
138
|
.split('/')
|
|
141
139
|
.some(v => !!v) && // ensure the comparison path has a value
|
|
142
140
|
methodRoutes[i].path.split('/').every((v, index) => {
|
|
@@ -174,7 +172,7 @@ class MetadataGenerator {
|
|
|
174
172
|
message += '\n';
|
|
175
173
|
console.warn(message);
|
|
176
174
|
});
|
|
177
|
-
}
|
|
175
|
+
}
|
|
178
176
|
TypeChecker() {
|
|
179
177
|
return this.typeChecker;
|
|
180
178
|
}
|
|
@@ -188,24 +186,24 @@ class MetadataGenerator {
|
|
|
188
186
|
return this.referenceTypeMap[refName];
|
|
189
187
|
}
|
|
190
188
|
CheckModelUnicity(refName, positions) {
|
|
191
|
-
|
|
189
|
+
const originalPositions = this.modelDefinitionPosMap[refName];
|
|
190
|
+
if (originalPositions === undefined) {
|
|
192
191
|
this.modelDefinitionPosMap[refName] = positions;
|
|
192
|
+
return;
|
|
193
193
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
throw new Error(`Found 2 different model definitions for model ${refName}: orig: ${JSON.stringify(origPositions)}, act: ${JSON.stringify(positions)}`);
|
|
198
|
-
}
|
|
194
|
+
const hasSamePositions = originalPositions.length === positions.length && positions.every(pos => originalPositions.find(origPos => pos.pos === origPos.pos && pos.fileName === origPos.fileName));
|
|
195
|
+
if (!hasSamePositions) {
|
|
196
|
+
throw new Error(`Found 2 different model definitions for model ${refName}: orig: ${JSON.stringify(originalPositions)}, act: ${JSON.stringify(positions)}`);
|
|
199
197
|
}
|
|
200
198
|
}
|
|
201
199
|
CheckExpressionUnicity(formattedRefName, refName) {
|
|
202
|
-
|
|
200
|
+
const originalRefName = this.expressionOrigNameMap[formattedRefName];
|
|
201
|
+
if (originalRefName === undefined) {
|
|
203
202
|
this.expressionOrigNameMap[formattedRefName] = refName;
|
|
203
|
+
return;
|
|
204
204
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
throw new Error(`Found 2 different type expressions for formatted name "${formattedRefName}": orig: "${this.expressionOrigNameMap[formattedRefName]}", act: "${refName}"`);
|
|
208
|
-
}
|
|
205
|
+
if (originalRefName !== refName) {
|
|
206
|
+
throw new Error(`Found 2 different type expressions for formatted name "${formattedRefName}": orig: "${originalRefName}", act: "${refName}"`);
|
|
209
207
|
}
|
|
210
208
|
}
|
|
211
209
|
buildControllers() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/metadataGenerator.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AACrC,2CAAyJ;AACzJ,4DAAuD;AACvD,wFAAoF;AACpF,4EAAgF;AAChF,+DAA2D;AAC3D,6CAAoD;AACpD,iDAA6C;AAE7C,MAAa,iBAAiB;IAUT;IACA;IAEA;IACD;IAbF,eAAe,GAAG,IAAI,KAAK,EAAoB,CAAA;IAC/C,WAAW,CAAa;IACvB,OAAO,CAAS;IACzB,gBAAgB,GAA0B,EAAE,CAAA;IAC5C,qBAAqB,GAAiE,EAAE,CAAA;IACxF,qBAAqB,GAA2B,EAAE,CAAA;IAE1D,YACE,SAAiB,EACA,eAAiC,EACjC,WAAsB,EACvC,WAAsB,EACL,eAAgC,EAAE,EACnC,oBAA8D,QAAQ,EACtF,GAAG,GAAG,KAAK;QALM,oBAAe,GAAf,eAAe,CAAkB;QACjC,gBAAW,GAAX,WAAW,CAAW;QAEtB,iBAAY,GAAZ,YAAY,CAAsB;QACnC,sBAAiB,GAAjB,iBAAiB,CAAqD;QAGtF,2BAAY,CAAC,UAAU,EAAE,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAa,EAAC,CAAC,SAAS,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC,CAAA;QAC3I,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;IAClD,CAAC;IAEM,QAAQ;QACb,IAAA,uDAA8B,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAC9D,IAAI,CAAC,iCAAiC,EAAE,CAAA;QAExC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAE3C,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAA;QACnD,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,CAAA;QAEtD,OAAO;YACL,WAAW;YACX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAA;IACH,CAAC;IAEO,mCAAmC,CAAC,WAAqB,EAAE,GAAY;QAC7E,MAAM,YAAY,GAAG,IAAA,2DAA4B,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QACvG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,kCAAqB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC3F,CAAC;QAED,OAAO,IAAA,0BAAa,EAAC,YAAY,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;IAChE,CAAC;IAEO,iCAAiC;QACvC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACzC,IAAI,IAAI,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"metadataGenerator.js","sourceRoot":"","sources":["../../src/metadataGeneration/metadataGenerator.ts"],"names":[],"mappings":"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"}
|