@nestia/sdk 2.3.0-dev.20231019 → 2.3.0
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/assets/config/nestia.config.ts +3 -3
- package/lib/INestiaConfig.d.ts +1 -1
- package/lib/NestiaSdkApplication.js +41 -4
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/ControllerAnalyzer.d.ts +2 -2
- package/lib/analyses/ControllerAnalyzer.js +107 -65
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ExceptionAnalyzer.d.ts +2 -1
- package/lib/analyses/ExceptionAnalyzer.js +23 -9
- package/lib/analyses/ExceptionAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectAnalyzer.d.ts +2 -1
- package/lib/analyses/ReflectAnalyzer.js +51 -37
- package/lib/analyses/ReflectAnalyzer.js.map +1 -1
- package/lib/executable/sdk.js +1 -0
- package/lib/executable/sdk.js.map +1 -1
- package/lib/structures/IErrorReport.d.ts +6 -0
- package/lib/structures/IErrorReport.js +3 -0
- package/lib/structures/IErrorReport.js.map +1 -0
- package/lib/structures/INestiaProject.d.ts +10 -0
- package/lib/structures/INestiaProject.js +3 -0
- package/lib/structures/INestiaProject.js.map +1 -0
- package/package.json +5 -5
- package/src/INestiaConfig.ts +1 -1
- package/src/NestiaSdkApplication.ts +45 -9
- package/src/analyses/ControllerAnalyzer.ts +336 -307
- package/src/analyses/ExceptionAnalyzer.ts +31 -15
- package/src/analyses/ReflectAnalyzer.ts +235 -211
- package/src/executable/sdk.ts +1 -0
- package/src/structures/IErrorReport.ts +6 -0
- package/src/structures/INestiaProject.ts +12 -0
|
@@ -41,40 +41,37 @@ const PathAnalyzer_1 = require("./PathAnalyzer");
|
|
|
41
41
|
const SecurityAnalyzer_1 = require("./SecurityAnalyzer");
|
|
42
42
|
var ReflectAnalyzer;
|
|
43
43
|
(function (ReflectAnalyzer) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return yield Promise.resolve(`${file}`).then(s => __importStar(require(s)));
|
|
49
|
-
}
|
|
50
|
-
catch (exp) {
|
|
51
|
-
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
52
|
-
console.log(`Error on "${file}" file. Check your code.`);
|
|
53
|
-
console.log(exp);
|
|
54
|
-
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
55
|
-
process.exit(-1);
|
|
56
|
-
}
|
|
57
|
-
}))();
|
|
58
|
-
const ret = [];
|
|
59
|
-
for (const [key, value] of Object.entries(module)) {
|
|
60
|
-
if (typeof value !== "function" || unique.has(value))
|
|
61
|
-
continue;
|
|
62
|
-
else if ((target !== null && target !== void 0 ? target : value) !== value)
|
|
63
|
-
continue;
|
|
64
|
-
else
|
|
65
|
-
unique.add(value);
|
|
66
|
-
const result = _Analyze_controller(file, key, value, prefixes);
|
|
67
|
-
if (result !== null)
|
|
68
|
-
ret.push(result);
|
|
44
|
+
ReflectAnalyzer.analyze = (project) => (unique, file, prefixes, target) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const module = yield (() => __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
try {
|
|
47
|
+
return yield Promise.resolve(`${file}`).then(s => __importStar(require(s)));
|
|
69
48
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
49
|
+
catch (exp) {
|
|
50
|
+
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
51
|
+
console.log(`Error on "${file}" file. Check your code.`);
|
|
52
|
+
console.log(exp);
|
|
53
|
+
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
54
|
+
process.exit(-1);
|
|
55
|
+
}
|
|
56
|
+
}))();
|
|
57
|
+
const ret = [];
|
|
58
|
+
for (const [key, value] of Object.entries(module)) {
|
|
59
|
+
if (typeof value !== "function" || unique.has(value))
|
|
60
|
+
continue;
|
|
61
|
+
else if ((target !== null && target !== void 0 ? target : value) !== value)
|
|
62
|
+
continue;
|
|
63
|
+
else
|
|
64
|
+
unique.add(value);
|
|
65
|
+
const result = _Analyze_controller(project)(file, key, value, prefixes);
|
|
66
|
+
if (result !== null)
|
|
67
|
+
ret.push(result);
|
|
68
|
+
}
|
|
69
|
+
return ret;
|
|
70
|
+
});
|
|
74
71
|
/* ---------------------------------------------------------
|
|
75
72
|
CONTROLLER
|
|
76
73
|
--------------------------------------------------------- */
|
|
77
|
-
|
|
74
|
+
const _Analyze_controller = (project) => (file, name, creator, prefixes) => {
|
|
78
75
|
var _a;
|
|
79
76
|
//----
|
|
80
77
|
// VALIDATIONS
|
|
@@ -102,13 +99,13 @@ var ReflectAnalyzer;
|
|
|
102
99
|
};
|
|
103
100
|
// PARSE CHILDREN DATA
|
|
104
101
|
for (const tuple of _Get_prototype_entries(creator)) {
|
|
105
|
-
const child = _Analyze_function(creator.prototype, meta, ...tuple);
|
|
102
|
+
const child = _Analyze_function(project)(creator.prototype, meta, ...tuple);
|
|
106
103
|
if (child !== null)
|
|
107
104
|
meta.functions.push(child);
|
|
108
105
|
}
|
|
109
106
|
// RETURNS
|
|
110
107
|
return meta;
|
|
111
|
-
}
|
|
108
|
+
};
|
|
112
109
|
function _Get_prototype_entries(creator) {
|
|
113
110
|
const keyList = Object.getOwnPropertyNames(creator.prototype);
|
|
114
111
|
const entries = keyList.map((key) => [
|
|
@@ -144,7 +141,7 @@ var ReflectAnalyzer;
|
|
|
144
141
|
/* ---------------------------------------------------------
|
|
145
142
|
FUNCTION
|
|
146
143
|
--------------------------------------------------------- */
|
|
147
|
-
|
|
144
|
+
const _Analyze_function = (project) => (classProto, controller, name, proto) => {
|
|
148
145
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
149
146
|
//----
|
|
150
147
|
// VALIDATIONS
|
|
@@ -155,6 +152,7 @@ var ReflectAnalyzer;
|
|
|
155
152
|
// MUST HAVE THOSE METADATE
|
|
156
153
|
else if (ArrayUtil_1.ArrayUtil.has(Reflect.getMetadataKeys(proto), Constants.PATH_METADATA, Constants.METHOD_METADATA) === false)
|
|
157
154
|
return null;
|
|
155
|
+
const errors = [];
|
|
158
156
|
//----
|
|
159
157
|
// CONSTRUCTION
|
|
160
158
|
//----
|
|
@@ -178,8 +176,15 @@ var ReflectAnalyzer;
|
|
|
178
176
|
})();
|
|
179
177
|
// VALIDATE BODY
|
|
180
178
|
const body = parameters.find((param) => param.category === "body");
|
|
181
|
-
if (body !== undefined && (method === "GET" || method === "HEAD"))
|
|
182
|
-
|
|
179
|
+
if (body !== undefined && (method === "GET" || method === "HEAD")) {
|
|
180
|
+
errors.push({
|
|
181
|
+
file: controller.file,
|
|
182
|
+
controller: controller.name,
|
|
183
|
+
function: name,
|
|
184
|
+
message: `"body" parameter cannot be used in the "${method}" method.`,
|
|
185
|
+
});
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
183
188
|
// DO CONSTRUCT
|
|
184
189
|
const meta = {
|
|
185
190
|
name,
|
|
@@ -218,11 +223,20 @@ var ReflectAnalyzer;
|
|
|
218
223
|
.sort();
|
|
219
224
|
// DO VALIDATE
|
|
220
225
|
if ((0, module_1.equal)(binded, parameters) === false)
|
|
221
|
-
|
|
226
|
+
errors.push({
|
|
227
|
+
file: controller.file,
|
|
228
|
+
controller: controller.name,
|
|
229
|
+
function: name,
|
|
230
|
+
message: `binded arguments in the "path" between function's decorator and parameters' decorators are different (function: [${binded.join(", ")}], parameters: [${parameters.join(", ")}]).`,
|
|
231
|
+
});
|
|
222
232
|
}
|
|
223
233
|
// RETURNS
|
|
234
|
+
if (errors.length) {
|
|
235
|
+
project.errors.push(...errors);
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
224
238
|
return meta;
|
|
225
|
-
}
|
|
239
|
+
};
|
|
226
240
|
/* ---------------------------------------------------------
|
|
227
241
|
PARAMETER
|
|
228
242
|
--------------------------------------------------------- */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AAEtD,4BAA0B;AAC1B,+CAA2C;
|
|
1
|
+
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":"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"}
|
package/lib/executable/sdk.js
CHANGED
|
@@ -63,6 +63,7 @@ function dependencies(argv) {
|
|
|
63
63
|
const prefix = module === "yarn" ? "yarn add" : `${module} install`;
|
|
64
64
|
for (const lib of ["@nestia/fetcher", "typia"]) {
|
|
65
65
|
const command = `${prefix} ${lib}`;
|
|
66
|
+
console.log(`\n$ ${command}`);
|
|
66
67
|
child_process_1.default.execSync(command, { stdio: "inherit" });
|
|
67
68
|
}
|
|
68
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/executable/sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kEAA+B;AAC/B,4CAAoB;AACpB,sDAA8B;AAE9B,4DAAyD;AAGzD,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY;IACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;;IAChC,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAA,6BAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,mCAAI,KAAK,CAAC;IACzD,MAAM,MAAM,GAAW,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,UAAU,CAAC;IAE5E,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAC5C,MAAM,OAAO,GAAW,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;QAC3C,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;KAC9C;AACL,CAAC;AAED,SAAe,UAAU;;QACrB,IAAI,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,IAAI;YAC1C,IAAI,CACA,wFAAwF,CAC3F,CAAC;QACN,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CACtB,GAAG,SAAS,uCAAuC,EACnD,kBAAkB,CACrB,CAAC;IACN,CAAC;CAAA;AAED,SAAe,OAAO,CAClB,OAA8D;;QAE9D,MAAM,MAAM,GAAG,wDAAa,6BAA6B,GAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CAAA;AAED,SAAe,IAAI;;QACf,MAAM,IAAI,GAAuB,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAa,iBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,KAAK,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,CAAC;aAC3C,IAAI,IAAI,KAAK,MAAM;YAAE,MAAM,UAAU,EAAE,CAAC;aACxC,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aAClD,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC1D,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;;YAClD,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CAAA;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/executable/sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kEAA+B;AAC/B,4CAAoB;AACpB,sDAA8B;AAE9B,4DAAyD;AAGzD,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY;IACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;;IAChC,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAA,6BAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,mCAAI,KAAK,CAAC;IACzD,MAAM,MAAM,GAAW,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,UAAU,CAAC;IAE5E,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAC5C,MAAM,OAAO,GAAW,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC9B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;KAC9C;AACL,CAAC;AAED,SAAe,UAAU;;QACrB,IAAI,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,IAAI;YAC1C,IAAI,CACA,wFAAwF,CAC3F,CAAC;QACN,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CACtB,GAAG,SAAS,uCAAuC,EACnD,kBAAkB,CACrB,CAAC;IACN,CAAC;CAAA;AAED,SAAe,OAAO,CAClB,OAA8D;;QAE9D,MAAM,MAAM,GAAG,wDAAa,6BAA6B,GAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CAAA;AAED,SAAe,IAAI;;QACf,MAAM,IAAI,GAAuB,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAa,iBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,KAAK,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,CAAC;aAC3C,IAAI,IAAI,KAAK,MAAM;YAAE,MAAM,UAAU,EAAE,CAAC;aACxC,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aAClD,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC1D,IAAI,IAAI,KAAK,KAAK;YAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;;YAClD,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CAAA;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IErrorReport.js","sourceRoot":"","sources":["../../src/structures/IErrorReport.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { INestiaConfig } from "../INestiaConfig";
|
|
3
|
+
import { IErrorReport } from "./IErrorReport";
|
|
4
|
+
import { INormalizedInput } from "./INormalizedInput";
|
|
5
|
+
export interface INestiaProject {
|
|
6
|
+
config: INestiaConfig;
|
|
7
|
+
input: INormalizedInput;
|
|
8
|
+
checker: ts.TypeChecker;
|
|
9
|
+
errors: IErrorReport[];
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"INestiaProject.js","sourceRoot":"","sources":["../../src/structures/INestiaProject.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/sdk",
|
|
3
|
-
"version": "2.3.0
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Nestia SDK and Swagger generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://nestia.io",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@nestia/fetcher": "^2.3.0
|
|
38
|
+
"@nestia/fetcher": "^2.3.0",
|
|
39
39
|
"cli": "^1.0.1",
|
|
40
40
|
"get-function-location": "^2.0.0",
|
|
41
41
|
"glob": "^7.2.0",
|
|
@@ -45,16 +45,16 @@
|
|
|
45
45
|
"tsconfck": "^2.0.1",
|
|
46
46
|
"tsconfig-paths": "^4.1.1",
|
|
47
47
|
"tstl": "^2.5.13",
|
|
48
|
-
"typia": "^5.2.
|
|
48
|
+
"typia": "^5.2.3"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@nestia/fetcher": ">=2.3.0
|
|
51
|
+
"@nestia/fetcher": ">=2.3.0",
|
|
52
52
|
"@nestjs/common": ">=7.0.1",
|
|
53
53
|
"@nestjs/core": ">=7.0.1",
|
|
54
54
|
"reflect-metadata": ">=0.1.12",
|
|
55
55
|
"ts-node": ">=10.6.0",
|
|
56
56
|
"typescript": ">=4.8.0",
|
|
57
|
-
"typia": ">=5.2.
|
|
57
|
+
"typia": ">=5.2.3 <6.0.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@nestjs/common": ">= 7.0.1",
|
package/src/INestiaConfig.ts
CHANGED
|
@@ -14,7 +14,7 @@ export interface INestiaConfig {
|
|
|
14
14
|
/**
|
|
15
15
|
* Accessor of controller classes.
|
|
16
16
|
*
|
|
17
|
-
* You can specify target controller classes within two ways
|
|
17
|
+
* You can specify target controller classes within two ways.
|
|
18
18
|
*
|
|
19
19
|
* - Asynchronous function returning `INestApplication` instance
|
|
20
20
|
* - Specify the path or directory of controller class files
|
|
@@ -11,7 +11,10 @@ import { E2eGenerator } from "./generates/E2eGenerator";
|
|
|
11
11
|
import { SdkGenerator } from "./generates/SdkGenerator";
|
|
12
12
|
import { SwaggerGenerator } from "./generates/SwaggerGenerator";
|
|
13
13
|
import { IController } from "./structures/IController";
|
|
14
|
+
import { IErrorReport } from "./structures/IErrorReport";
|
|
15
|
+
import { INestiaProject } from "./structures/INestiaProject";
|
|
14
16
|
import { IRoute } from "./structures/IRoute";
|
|
17
|
+
import { MapUtil } from "./utils/MapUtil";
|
|
15
18
|
|
|
16
19
|
export class NestiaSdkApplication {
|
|
17
20
|
public constructor(
|
|
@@ -104,11 +107,17 @@ export class NestiaSdkApplication {
|
|
|
104
107
|
// ANALYZE REFLECTS
|
|
105
108
|
const unique: WeakSet<any> = new WeakSet();
|
|
106
109
|
const controllers: IController[] = [];
|
|
110
|
+
const project: INestiaProject = {
|
|
111
|
+
config: this.config,
|
|
112
|
+
input: await ConfigAnalyzer.input(this.config),
|
|
113
|
+
checker: null!,
|
|
114
|
+
errors: [],
|
|
115
|
+
};
|
|
107
116
|
|
|
108
117
|
console.log("Analyzing reflections");
|
|
109
118
|
for (const include of (await ConfigAnalyzer.input(this.config)).include)
|
|
110
119
|
controllers.push(
|
|
111
|
-
...(await ReflectAnalyzer.analyze(
|
|
120
|
+
...(await ReflectAnalyzer.analyze(project)(
|
|
112
121
|
unique,
|
|
113
122
|
include.file,
|
|
114
123
|
include.paths,
|
|
@@ -146,7 +155,7 @@ export class NestiaSdkApplication {
|
|
|
146
155
|
controllers.map((c) => c.file),
|
|
147
156
|
this.compilerOptions,
|
|
148
157
|
);
|
|
149
|
-
|
|
158
|
+
project.checker = program.getTypeChecker();
|
|
150
159
|
|
|
151
160
|
const routeList: IRoute[] = [];
|
|
152
161
|
for (const c of controllers) {
|
|
@@ -155,15 +164,16 @@ export class NestiaSdkApplication {
|
|
|
155
164
|
);
|
|
156
165
|
if (file === undefined) continue;
|
|
157
166
|
routeList.push(
|
|
158
|
-
...(await ControllerAnalyzer.analyze(
|
|
159
|
-
this.config,
|
|
160
|
-
checker,
|
|
161
|
-
file,
|
|
162
|
-
c,
|
|
163
|
-
)),
|
|
167
|
+
...(await ControllerAnalyzer.analyze(project)(file, c)),
|
|
164
168
|
);
|
|
165
169
|
}
|
|
166
170
|
|
|
171
|
+
// REPORT ERRORS
|
|
172
|
+
if (project.errors.length) {
|
|
173
|
+
report_errors(project.errors);
|
|
174
|
+
process.exit(-1);
|
|
175
|
+
}
|
|
176
|
+
|
|
167
177
|
// FIND IMPLICIT TYPES
|
|
168
178
|
const implicit: IRoute[] = routeList.filter(is_implicit_return_typed);
|
|
169
179
|
if (implicit.length > 0)
|
|
@@ -181,7 +191,7 @@ export class NestiaSdkApplication {
|
|
|
181
191
|
|
|
182
192
|
// DO GENERATE
|
|
183
193
|
AccessorAnalyzer.analyze(routeList);
|
|
184
|
-
await archiver(checker)(config(this.config))(routeList);
|
|
194
|
+
await archiver(project.checker)(config(this.config))(routeList);
|
|
185
195
|
}
|
|
186
196
|
}
|
|
187
197
|
|
|
@@ -207,4 +217,30 @@ const is_implicit_return_typed = (route: IRoute): boolean => {
|
|
|
207
217
|
return true;
|
|
208
218
|
};
|
|
209
219
|
|
|
220
|
+
const report_errors = (errors: IErrorReport[]): void => {
|
|
221
|
+
// key: file
|
|
222
|
+
// key: controller
|
|
223
|
+
// key: function
|
|
224
|
+
// value: message
|
|
225
|
+
const map: Map<string, Map<string, Map<string, Set<string>>>> = new Map();
|
|
226
|
+
for (const e of errors) {
|
|
227
|
+
const file = MapUtil.take(map, e.file, () => new Map());
|
|
228
|
+
const controller = MapUtil.take(file, e.controller, () => new Map());
|
|
229
|
+
const func = MapUtil.take(controller, e.function, () => new Set());
|
|
230
|
+
func.add(e.message);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
console.log("");
|
|
234
|
+
title("Nestia Error Report");
|
|
235
|
+
for (const [file, cMap] of map) {
|
|
236
|
+
for (const [controller, fMap] of cMap)
|
|
237
|
+
for (const [func, messages] of fMap) {
|
|
238
|
+
const location: string = path.relative(process.cwd(), file);
|
|
239
|
+
console.log(`${location} - error on ${controller}.${func}()`);
|
|
240
|
+
for (const msg of messages) console.log(` - ${msg}`);
|
|
241
|
+
console.log("");
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
|
|
210
246
|
const VARIABLE = /[a-zA-Z_$0-9]/;
|