@nestia/sdk 2.3.0-dev.20231019 → 2.3.0-dev.20231020

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.
@@ -6,11 +6,13 @@ export const NESTIA_CONFIG: INestiaConfig = {
6
6
  /**
7
7
  * Accessor of controller classes.
8
8
  *
9
- * You can specify it within two ways
9
+ * You can specify it within two ways.
10
10
  *
11
11
  * - Asynchronous function returning `INestApplication` instance
12
12
  * - Specify the path or directory of controller class files
13
13
  */
14
+ // input: "src/controllers",
15
+ // input: "src/**/*.controller.ts",
14
16
  input: async () => {
15
17
  // change this to your own module
16
18
  @Module({
@@ -25,8 +27,6 @@ export const NESTIA_CONFIG: INestiaConfig = {
25
27
  // })
26
28
  return app;
27
29
  },
28
- // input: "src/controllers",
29
- // input: "src/**/*.controller.ts",
30
30
 
31
31
  /**
32
32
  * Building `swagger.json` is also possible.
@@ -11,7 +11,7 @@ export interface INestiaConfig {
11
11
  /**
12
12
  * Accessor of controller classes.
13
13
  *
14
- * You can specify target controller classes within two ways
14
+ * You can specify target controller classes within two ways.
15
15
  *
16
16
  * - Asynchronous function returning `INestApplication` instance
17
17
  * - Specify the path or directory of controller class files
@@ -23,6 +23,7 @@ const ReflectAnalyzer_1 = require("./analyses/ReflectAnalyzer");
23
23
  const E2eGenerator_1 = require("./generates/E2eGenerator");
24
24
  const SdkGenerator_1 = require("./generates/SdkGenerator");
25
25
  const SwaggerGenerator_1 = require("./generates/SwaggerGenerator");
26
+ const MapUtil_1 = require("./utils/MapUtil");
26
27
  class NestiaSdkApplication {
27
28
  constructor(config, compilerOptions) {
28
29
  this.config = config;
@@ -82,9 +83,15 @@ class NestiaSdkApplication {
82
83
  // ANALYZE REFLECTS
83
84
  const unique = new WeakSet();
84
85
  const controllers = [];
86
+ const project = {
87
+ config: this.config,
88
+ input: yield ConfigAnalyzer_1.ConfigAnalyzer.input(this.config),
89
+ checker: null,
90
+ errors: [],
91
+ };
85
92
  console.log("Analyzing reflections");
86
93
  for (const include of (yield ConfigAnalyzer_1.ConfigAnalyzer.input(this.config)).include)
87
- controllers.push(...(yield ReflectAnalyzer_1.ReflectAnalyzer.analyze(unique, include.file, include.paths, include.controller)));
94
+ controllers.push(...(yield ReflectAnalyzer_1.ReflectAnalyzer.analyze(project)(unique, include.file, include.paths, include.controller)));
88
95
  const agg = (() => {
89
96
  const set = new Set();
90
97
  for (const c of controllers)
@@ -105,13 +112,18 @@ class NestiaSdkApplication {
105
112
  // ANALYZE TYPESCRIPT CODE
106
113
  console.log("Analyzing source codes");
107
114
  const program = typescript_1.default.createProgram(controllers.map((c) => c.file), this.compilerOptions);
108
- const checker = program.getTypeChecker();
115
+ project.checker = program.getTypeChecker();
109
116
  const routeList = [];
110
117
  for (const c of controllers) {
111
118
  const file = program.getSourceFile(c.file);
112
119
  if (file === undefined)
113
120
  continue;
114
- routeList.push(...(yield ControllerAnalyzer_1.ControllerAnalyzer.analyze(this.config, checker, file, c)));
121
+ routeList.push(...(yield ControllerAnalyzer_1.ControllerAnalyzer.analyze(project)(file, c)));
122
+ }
123
+ // REPORT ERRORS
124
+ if (project.errors.length) {
125
+ report_errors(project.errors);
126
+ process.exit(-1);
115
127
  }
116
128
  // FIND IMPLICIT TYPES
117
129
  const implicit = routeList.filter(is_implicit_return_typed);
@@ -124,7 +136,7 @@ class NestiaSdkApplication {
124
136
  .join("\n"));
125
137
  // DO GENERATE
126
138
  AccessorAnalyzer_1.AccessorAnalyzer.analyze(routeList);
127
- yield archiver(checker)(config(this.config))(routeList);
139
+ yield archiver(project.checker)(config(this.config))(routeList);
128
140
  });
129
141
  }
130
142
  }
@@ -152,5 +164,30 @@ const is_implicit_return_typed = (route) => {
152
164
  return false;
153
165
  return true;
154
166
  };
167
+ const report_errors = (errors) => {
168
+ // key: file
169
+ // key: controller
170
+ // key: function
171
+ // value: message
172
+ const map = new Map();
173
+ for (const e of errors) {
174
+ const file = MapUtil_1.MapUtil.take(map, e.file, () => new Map());
175
+ const controller = MapUtil_1.MapUtil.take(file, e.controller, () => new Map());
176
+ const func = MapUtil_1.MapUtil.take(controller, e.function, () => new Set());
177
+ func.add(e.message);
178
+ }
179
+ console.log("");
180
+ title("Nestia Error Report");
181
+ for (const [file, cMap] of map) {
182
+ for (const [controller, fMap] of cMap)
183
+ for (const [func, messages] of fMap) {
184
+ const location = path_1.default.relative(process.cwd(), file);
185
+ console.log(`${location} - error on ${controller}.${func}()`);
186
+ for (const msg of messages)
187
+ console.log(` - ${msg}`);
188
+ console.log("");
189
+ }
190
+ }
191
+ };
155
192
  const VARIABLE = /[a-zA-Z_$0-9]/;
156
193
  //# sourceMappingURL=NestiaSdkApplication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4DAA4B;AAG5B,kEAA+D;AAC/D,8DAA2D;AAC3D,sEAAmE;AACnE,gEAA6D;AAC7D,2DAAwD;AACxD,2DAAwD;AACxD,mEAAgE;AAIhE,MAAa,oBAAoB;IAC7B,YACqB,MAAqB,EACrB,eAAmC;QADnC,WAAM,GAAN,MAAM,CAAe;QACrB,oBAAe,GAAf,eAAe,CAAoB;IACrD,CAAC;IAES,GAAG;;YACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBACnB,MAAM,IAAI,KAAK,CACX,wEAAwE,CAC3E,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;gBACrB,MAAM,IAAI,KAAK,CACX,mFAAmF,CACtF,CAAC;YAEN,MAAM,QAAQ,GACV,CAAC,KAAa,EAAE,EAAE,CAClB,CAAO,QAAgB,EAAiB,EAAE;gBACtC,MAAM,MAAM,GAAW,cAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAa,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK;oBAC7B,MAAM,IAAI,KAAK,CACX,yDAAyD,KAAK,mBAAmB,CACpF,CAAC;YACV,CAAC,CAAA,CAAC;YACN,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEvC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,QAAQ,CACf,KAAK,EACL,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAClB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAO,MAAM,EAAE,EAAE;gBACtC,MAAM,2BAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,2BAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC,CAAA,CACJ,CAAC;QACN,CAAC;KAAA;IAEY,GAAG;;YACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBACnB,MAAM,IAAI,KAAK,CACX,iEAAiE,CACpE,CAAC;YAEN,MAAM,MAAM,GAAW,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAChE,MAAM,KAAK,GAAa,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK;gBAC7B,MAAM,IAAI,KAAK,CACX,qEAAqE,CACxE,CAAC;YAEN,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,2BAAY,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC;KAAA;IAEY,OAAO;;;YAChB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,MAAM,CAAA;gBAC5B,MAAM,IAAI,KAAK,CACX,2FAA2F,CAC9F,CAAC;YAEN,MAAM,MAAM,GAAoB,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,SAAS,GAAW,CAAC,CAAC,MAAM,CAAC,GAAG;gBAClC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YACjC,MAAM,KAAK,GAAa,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK;gBAC7B,MAAM,IAAI,KAAK,CACX,yEAAyE,CAC5E,CAAC;YAEN,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,QAAQ,CACf,SAAS,EACT,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAQ,EAC3B,mCAAgB,CAAC,QAAQ,CAC5B,CAAC;;KACL;IAEa,QAAQ,CAClB,MAAc,EACd,MAAyC,EACzC,QAE4D;;YAE5D,mBAAmB;YACnB,MAAM,MAAM,GAAiB,IAAI,OAAO,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAkB,EAAE,CAAC;YAEtC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,+BAAc,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBACnE,WAAW,CAAC,IAAI,CACZ,GAAG,CAAC,MAAM,iCAAe,CAAC,OAAO,CAC7B,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,UAAU,CACrB,CAAC,CACL,CAAC;YAEN,MAAM,GAAG,GAAW,CAAC,GAAG,EAAE;gBACtB,MAAM,GAAG,GAAgB,IAAI,GAAG,EAAE,CAAC;gBACnC,KAAK,MAAM,CAAC,IAAI,WAAW;oBACvB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,KAAK;wBACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS;4BACvB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,KAAK;gCACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;gBAC1D,OAAO,GAAG,CAAC,IAAI,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC;YAEL,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CACP,gBAAgB,WAAW;iBACtB,GAAG,CACA,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,SAAS;qBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;qBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACtC;iBACA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CACpC,CAAC;YAEF,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,MAAM,OAAO,GAAe,oBAAE,CAAC,aAAa,CACxC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC9B,IAAI,CAAC,eAAe,CACvB,CAAC;YACF,MAAM,OAAO,GAAmB,OAAO,CAAC,cAAc,EAAE,CAAC;YAEzD,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBACzB,MAAM,IAAI,GAA8B,OAAO,CAAC,aAAa,CACzD,CAAC,CAAC,IAAI,CACT,CAAC;gBACF,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBACjC,SAAS,CAAC,IAAI,CACV,GAAG,CAAC,MAAM,uCAAkB,CAAC,OAAO,CAChC,IAAI,CAAC,MAAM,EACX,OAAO,EACP,IAAI,EACJ,CAAC,CACJ,CAAC,CACL,CAAC;aACL;YAED,sBAAsB;YACtB,MAAM,QAAQ,GAAa,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACnB,MAAM,IAAI,KAAK,CACX,qBAAqB,MAAM,4CAA4C;oBACnE,IAAI;oBACJ,yCAAyC;oBACzC,QAAQ;yBACH,GAAG,CACA,CAAC,EAAE,EAAE,EAAE,CACH,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,QAAQ,EAAE,CAAC,QAAQ,GAAG,CACzE;yBACA,IAAI,CAAC,IAAI,CAAC,CACtB,CAAC;YAEN,cAAc;YACd,mCAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;KAAA;CACJ;AA1KD,oDA0KC;AAED,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;IAChC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAW,EAAE;IACxD,MAAM,IAAI,GAAW,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC3C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;SAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,MAAM,GAAW,GAAG,GAAG,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAW,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,SAAS;aAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import ts from "typescript";
2
- import { INestiaConfig } from "../INestiaConfig";
3
2
  import { IController } from "../structures/IController";
3
+ import { INestiaProject } from "../structures/INestiaProject";
4
4
  import { IRoute } from "../structures/IRoute";
5
5
  export declare namespace ControllerAnalyzer {
6
- function analyze(config: INestiaConfig, checker: ts.TypeChecker, sourceFile: ts.SourceFile, controller: IController): Promise<IRoute[]>;
6
+ const analyze: (project: INestiaProject) => (sourceFile: ts.SourceFile, controller: IController) => Promise<IRoute[]>;
7
7
  }
@@ -18,7 +18,6 @@ const HashMap_1 = require("tstl/container/HashMap");
18
18
  const typescript_1 = __importDefault(require("typescript"));
19
19
  const CommentFactory_1 = require("typia/lib/factories/CommentFactory");
20
20
  const PathUtil_1 = require("../utils/PathUtil");
21
- const ConfigAnalyzer_1 = require("./ConfigAnalyzer");
22
21
  const ExceptionAnalyzer_1 = require("./ExceptionAnalyzer");
23
22
  const GenericAnalyzer_1 = require("./GenericAnalyzer");
24
23
  const ImportAnalyzer_1 = require("./ImportAnalyzer");
@@ -26,30 +25,26 @@ const PathAnalyzer_1 = require("./PathAnalyzer");
26
25
  const SecurityAnalyzer_1 = require("./SecurityAnalyzer");
27
26
  var ControllerAnalyzer;
28
27
  (function (ControllerAnalyzer) {
29
- function analyze(config, checker, sourceFile, controller) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- // FIND CONTROLLER CLASS
32
- const input = yield ConfigAnalyzer_1.ConfigAnalyzer.input(config);
33
- const ret = [];
34
- typescript_1.default.forEachChild(sourceFile, (node) => {
35
- var _a;
36
- if (typescript_1.default.isClassDeclaration(node) &&
37
- ((_a = node.name) === null || _a === void 0 ? void 0 : _a.escapedText) === controller.name) {
38
- // ANALYZE THE CONTROLLER
39
- ret.push(..._Analyze_controller(config, input, checker, controller, node));
40
- return;
41
- }
42
- });
43
- return ret;
28
+ ControllerAnalyzer.analyze = (project) => (sourceFile, controller) => __awaiter(this, void 0, void 0, function* () {
29
+ // FIND CONTROLLER CLASS
30
+ const ret = [];
31
+ typescript_1.default.forEachChild(sourceFile, (node) => {
32
+ var _a;
33
+ if (typescript_1.default.isClassDeclaration(node) &&
34
+ ((_a = node.name) === null || _a === void 0 ? void 0 : _a.escapedText) === controller.name) {
35
+ // ANALYZE THE CONTROLLER
36
+ ret.push(..._Analyze_controller(project)(controller, node));
37
+ return;
38
+ }
44
39
  });
45
- }
46
- ControllerAnalyzer.analyze = analyze;
40
+ return ret;
41
+ });
47
42
  /* ---------------------------------------------------------
48
43
  CLASS
49
44
  --------------------------------------------------------- */
50
- function _Analyze_controller(config, input, checker, controller, classNode) {
51
- const classType = checker.getTypeAtLocation(classNode);
52
- const genericDict = GenericAnalyzer_1.GenericAnalyzer.analyze(checker, classNode);
45
+ const _Analyze_controller = (project) => (controller, classNode) => {
46
+ const classType = project.checker.getTypeAtLocation(classNode);
47
+ const genericDict = GenericAnalyzer_1.GenericAnalyzer.analyze(project.checker, classNode);
53
48
  const ret = [];
54
49
  for (const property of classType.getProperties()) {
55
50
  // GET METHOD DECLARATION
@@ -64,32 +59,53 @@ var ControllerAnalyzer;
64
59
  const runtime = controller.functions.find((f) => f.name === identifier.escapedText);
65
60
  if (runtime === undefined)
66
61
  continue;
67
- const routes = _Analyze_function(config, input, checker, controller, genericDict, runtime, declaration, property);
62
+ const routes = _Analyze_function(project)(controller, genericDict, runtime, declaration, property);
68
63
  ret.push(...routes);
69
64
  }
70
65
  return ret;
71
- }
66
+ };
72
67
  /* ---------------------------------------------------------
73
68
  FUNCTION
74
69
  --------------------------------------------------------- */
75
- function _Analyze_function(config, input, checker, controller, genericDict, func, declaration, symbol) {
70
+ const _Analyze_function = (project) => (controller, genericDict, func, declaration, symbol) => {
76
71
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
77
72
  // PREPARE ASSETS
78
- const type = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
79
- const signature = checker.getSignaturesOfType(type, typescript_1.default.SignatureKind.Call)[0];
80
- if (signature === undefined)
81
- throw new Error(`Error on ControllerAnalyzer.analyze(): unable to get the signature from the ${controller.name}.${func.name}().`);
73
+ const type = project.checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
74
+ const signature = project.checker.getSignaturesOfType(type, typescript_1.default.SignatureKind.Call)[0];
75
+ if (signature === undefined) {
76
+ project.errors.push({
77
+ file: controller.file,
78
+ controller: controller.name,
79
+ function: func.name,
80
+ message: "unable to get the type signature.",
81
+ });
82
+ return [];
83
+ }
82
84
  // EXPLORE CHILDREN TYPES
83
85
  const importDict = new HashMap_1.HashMap();
84
- const parameters = func.parameters.map((param) => _Analyze_parameter(checker, genericDict, importDict, controller, func.name, param, signature.getParameters()[param.index]));
85
- const outputType = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, signature.getReturnType());
86
- if (outputType === null)
87
- throw new Error(`Error on ControllerAnalyzer.analyze(): unnamed return type from ${controller.name}.${func.name}().`);
86
+ const parameters = func.parameters.map((param) => _Analyze_parameter(project)(genericDict, importDict, controller, func.name, param, signature.getParameters()[param.index]));
87
+ const outputType = ImportAnalyzer_1.ImportAnalyzer.analyze(project.checker, genericDict, importDict, signature.getReturnType());
88
+ if (outputType === null || outputType.typeName === "__type") {
89
+ project.errors.push({
90
+ file: controller.file,
91
+ controller: controller.name,
92
+ function: func.name,
93
+ message: "implicit (unnamed) return type.",
94
+ });
95
+ return [];
96
+ }
88
97
  else if (func.method === "HEAD" &&
89
98
  outputType.typeName !== "void" &&
90
- outputType.typeName !== "undefined")
91
- throw new Error(`Error on ControllerAnalyzer.analyze(): HEAD method must return void type - ${controller.name}.${func.name}().`);
92
- const exceptions = ExceptionAnalyzer_1.ExceptionAnalyzer.analyze(checker)(genericDict, config.propagate === true ? importDict : new HashMap_1.HashMap())(func)(declaration);
99
+ outputType.typeName !== "undefined") {
100
+ project.errors.push({
101
+ file: controller.file,
102
+ controller: controller.name,
103
+ function: func.name,
104
+ message: `HEAD method must return void type.`,
105
+ });
106
+ return [];
107
+ }
108
+ const exceptions = ExceptionAnalyzer_1.ExceptionAnalyzer.analyze(project)(genericDict, project.config.propagate === true ? importDict : new HashMap_1.HashMap())(controller, func)(declaration);
93
109
  const imports = importDict
94
110
  .toJSON()
95
111
  .map((pair) => [pair.first, pair.second.toJSON()]);
@@ -113,7 +129,7 @@ var ControllerAnalyzer;
113
129
  })
114
130
  .flat());
115
131
  // CONSTRUCT COMMON DATA
116
- const common = Object.assign(Object.assign({}, func), { parameters, output: {
132
+ const common = Object.assign(Object.assign({}, func), { parameters: parameters.filter((p) => p !== null), output: {
117
133
  type: outputType.type,
118
134
  typeName: outputType.typeName,
119
135
  contentType: func.contentType,
@@ -130,7 +146,8 @@ var ControllerAnalyzer;
130
146
  var _a;
131
147
  return ((_a = t.text) === null || _a === void 0 ? void 0 : _a.length) &&
132
148
  t.text[0].text &&
133
- (t.name === "setHeader" || t.name === "assignHeaders");
149
+ (t.name === "setHeader" ||
150
+ t.name === "assignHeaders");
134
151
  })
135
152
  .map((t) => {
136
153
  var _a;
@@ -148,24 +165,25 @@ var ControllerAnalyzer;
148
165
  exceptions });
149
166
  // CONFIGURE PATHS
150
167
  const pathList = new Set();
151
- const versions = _Analyze_versions(input.versioning === undefined
168
+ const versions = _Analyze_versions(project.input.versioning === undefined
152
169
  ? undefined
153
- : (_j = (_d = (_c = func.versions) !== null && _c !== void 0 ? _c : controller.versions) !== null && _d !== void 0 ? _d : (((_e = input.versioning) === null || _e === void 0 ? void 0 : _e.defaultVersion) !== undefined
154
- ? Array.isArray((_f = input.versioning) === null || _f === void 0 ? void 0 : _f.defaultVersion)
155
- ? (_g = input.versioning) === null || _g === void 0 ? void 0 : _g.defaultVersion
156
- : [(_h = input.versioning) === null || _h === void 0 ? void 0 : _h.defaultVersion]
170
+ : (_j = (_d = (_c = func.versions) !== null && _c !== void 0 ? _c : controller.versions) !== null && _d !== void 0 ? _d : (((_e = project.input.versioning) === null || _e === void 0 ? void 0 : _e.defaultVersion) !==
171
+ undefined
172
+ ? Array.isArray((_f = project.input.versioning) === null || _f === void 0 ? void 0 : _f.defaultVersion)
173
+ ? (_g = project.input.versioning) === null || _g === void 0 ? void 0 : _g.defaultVersion
174
+ : [(_h = project.input.versioning) === null || _h === void 0 ? void 0 : _h.defaultVersion]
157
175
  : undefined)) !== null && _j !== void 0 ? _j : undefined);
158
176
  for (const prefix of controller.prefixes)
159
177
  for (const cPath of controller.paths)
160
178
  for (const filePath of func.paths)
161
179
  pathList.add(PathAnalyzer_1.PathAnalyzer.join(prefix, cPath, filePath));
162
180
  return [...pathList]
163
- .map((individual) => PathAnalyzer_1.PathAnalyzer.combinate(input.globalPrefix)([...versions].map((v) => {
181
+ .map((individual) => PathAnalyzer_1.PathAnalyzer.combinate(project.input.globalPrefix)([...versions].map((v) => {
164
182
  var _a, _b;
165
183
  return v === null
166
184
  ? null
167
- : ((_b = (_a = input.versioning) === null || _a === void 0 ? void 0 : _a.prefix) === null || _b === void 0 ? void 0 : _b.length)
168
- ? `${input.versioning.prefix}${v}`
185
+ : ((_b = (_a = project.input.versioning) === null || _a === void 0 ? void 0 : _a.prefix) === null || _b === void 0 ? void 0 : _b.length)
186
+ ? `${project.input.versioning.prefix}${v}`
169
187
  : v;
170
188
  }))({
171
189
  method: func.method,
@@ -173,35 +191,59 @@ var ControllerAnalyzer;
173
191
  }))
174
192
  .flat()
175
193
  .map((path) => (Object.assign(Object.assign({}, common), { path: PathAnalyzer_1.PathAnalyzer.escape(path, () => "ControllerAnalyzer.analyze()"), accessors: [...PathUtil_1.PathUtil.accessors(path), func.name] })));
176
- }
177
- function _Analyze_parameter(checker, genericDict, importDict, controller, funcName, param, symbol) {
194
+ };
195
+ const _Analyze_parameter = (project) => (genericDict, importDict, controller, funcName, param, symbol) => {
178
196
  var _a;
179
- const type = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
197
+ const type = project.checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
180
198
  const name = symbol.getEscapedName().toString();
181
- const method = `${controller.name}.${funcName}()`;
182
- const optional = !!((_a = checker.symbolToParameterDeclaration(symbol, undefined, undefined)) === null || _a === void 0 ? void 0 : _a.questionToken);
199
+ const optional = !!((_a = project.checker.symbolToParameterDeclaration(symbol, undefined, undefined)) === null || _a === void 0 ? void 0 : _a.questionToken);
200
+ const errors = [];
183
201
  // DO NOT SUPPORT BODY PARAMETER
184
202
  if (param.category === "body" && param.field !== undefined)
185
- throw new Error(`Error on ${method}: nestia does not support body field specification. ` +
186
- `Therefore, erase the ${method}#${name} parameter and ` +
187
- `re-define a new body decorator accepting full structured message.`);
188
- else if (optional === true && param.category !== "query")
189
- throw new Error(`Error on ${method}: nestia does not support optional parameter except query parameter. ` +
190
- `Therefore, erase question mark on ${method}#${name} parameter, ` +
191
- `or re-define a new method without the "name" parameter.`);
192
- else if (optional === true &&
203
+ errors.push({
204
+ file: controller.file,
205
+ controller: controller.name,
206
+ function: funcName,
207
+ message: `nestia does not support body field specification. ` +
208
+ `Therefore, erase the "${name}" parameter and ` +
209
+ `re-define a new body decorator accepting full structured message.`,
210
+ });
211
+ if (optional === true && param.category !== "query")
212
+ errors.push({
213
+ file: controller.file,
214
+ controller: controller.name,
215
+ function: funcName,
216
+ message: `nestia does not support optional parameter except query parameter. ` +
217
+ `Therefore, erase question mark on the "${name}" parameter, ` +
218
+ `or re-define a new method without the "${name}" parameter.`,
219
+ });
220
+ if (optional === true &&
193
221
  param.category === "query" &&
194
222
  param.field === undefined)
195
- throw new Error(`Error on ${method}: nestia does not support optional query parameter without field specification. ` +
196
- `Therefore, erase question mark on ${method}#${name} parameter, ` +
197
- `or re-define re-define parameters for each query parameters.`);
223
+ errors.push({
224
+ file: controller.file,
225
+ controller: controller.name,
226
+ function: funcName,
227
+ message: `nestia does not support optional query parameter without field specification. ` +
228
+ `Therefore, erase question mark on the "${name}" parameter, ` +
229
+ `or re-define re-define parameters for each query parameters.`,
230
+ });
198
231
  // GET TYPE NAME
199
- const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, type);
200
- if (tuple === null)
201
- throw new Error(`Error on ${method}: unnamed parameter type from ${method}#${name}.`);
232
+ const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(project.checker, genericDict, importDict, type);
233
+ if (tuple === null || tuple.typeName === "__type")
234
+ errors.push({
235
+ file: controller.file,
236
+ controller: controller.name,
237
+ function: funcName,
238
+ message: `implicit (unnamed) parameter type from "${name}".`,
239
+ });
240
+ if (errors.length) {
241
+ project.errors.push(...errors);
242
+ return null;
243
+ }
202
244
  return Object.assign(Object.assign({}, param), { name,
203
245
  optional, type: tuple.type, typeName: tuple.typeName });
204
- }
246
+ };
205
247
  function _Analyze_versions(value) {
206
248
  if (value === undefined)
207
249
  return [null];
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import ts from "typescript";
2
2
  import { IController } from "../structures/IController";
3
+ import { INestiaProject } from "../structures/INestiaProject";
3
4
  import { IRoute } from "../structures/IRoute";
4
5
  import { GenericAnalyzer } from "./GenericAnalyzer";
5
6
  import { ImportAnalyzer } from "./ImportAnalyzer";
6
7
  export declare namespace ExceptionAnalyzer {
7
- const analyze: (checker: ts.TypeChecker) => (genericDict: GenericAnalyzer.Dictionary, importDict: ImportAnalyzer.Dictionary) => (func: IController.IFunction) => (declaration: ts.MethodDeclaration) => Record<number | "2XX" | "3XX" | "4XX" | "5XX", IRoute.IOutput>;
8
+ const analyze: (project: INestiaProject) => (genericDict: GenericAnalyzer.Dictionary, importDict: ImportAnalyzer.Dictionary) => (controller: IController, func: IController.IFunction) => (declaration: ts.MethodDeclaration) => Record<number | "2XX" | "3XX" | "4XX" | "5XX", IRoute.IOutput>;
8
9
  }
@@ -9,15 +9,15 @@ const typescript_1 = __importDefault(require("typescript"));
9
9
  const ImportAnalyzer_1 = require("./ImportAnalyzer");
10
10
  var ExceptionAnalyzer;
11
11
  (function (ExceptionAnalyzer) {
12
- ExceptionAnalyzer.analyze = (checker) => (genericDict, importDict) => (func) => (declaration) => {
12
+ ExceptionAnalyzer.analyze = (project) => (genericDict, importDict) => (controller, func) => (declaration) => {
13
13
  var _a;
14
14
  const output = {};
15
15
  for (const decorator of (_a = declaration.modifiers) !== null && _a !== void 0 ? _a : [])
16
16
  if (typescript_1.default.isDecorator(decorator))
17
- analyzeTyped(checker)(genericDict, importDict)(func)(output)(decorator);
17
+ analyzeTyped(project)(genericDict, importDict)(controller, func)(output)(decorator);
18
18
  return output;
19
19
  };
20
- const analyzeTyped = (checker) => (genericDict, importDict) => (func) => (output) => (decorator) => {
20
+ const analyzeTyped = (project) => (genericDict, importDict) => (controller, func) => (output) => (decorator) => {
21
21
  var _a;
22
22
  // CHECK DECORATOR
23
23
  if (!typescript_1.default.isCallExpression(decorator.expression))
@@ -25,7 +25,7 @@ var ExceptionAnalyzer;
25
25
  else if (((_a = decorator.expression.typeArguments) !== null && _a !== void 0 ? _a : []).length !== 1)
26
26
  return false;
27
27
  // CHECK SIGNATURE
28
- const signature = checker.getResolvedSignature(decorator.expression);
28
+ const signature = project.checker.getResolvedSignature(decorator.expression);
29
29
  if (!signature || !signature.declaration)
30
30
  return false;
31
31
  else if (path_1.default
@@ -34,12 +34,26 @@ var ExceptionAnalyzer;
34
34
  return false;
35
35
  // GET TYPE INFO
36
36
  const node = decorator.expression.typeArguments[0];
37
- const type = checker.getTypeFromTypeNode(node);
38
- if (type.isTypeParameter())
39
- throw new Error("Error on @nestia.core.TypedException(): non-specified generic argument.");
40
- const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, type);
41
- if (tuple === null)
37
+ const type = project.checker.getTypeFromTypeNode(node);
38
+ if (type.isTypeParameter()) {
39
+ project.errors.push({
40
+ file: controller.file,
41
+ controller: controller.name,
42
+ function: func.name,
43
+ message: "TypedException() without generic argument specification.",
44
+ });
42
45
  return false;
46
+ }
47
+ const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(project.checker, genericDict, importDict, type);
48
+ if (tuple === null || tuple.typeName === "__type") {
49
+ project.errors.push({
50
+ file: controller.file,
51
+ controller: controller.name,
52
+ function: func.name,
53
+ message: "TypeException() with implicit (unnamed) type.",
54
+ });
55
+ return false;
56
+ }
43
57
  // DO ASSIGN
44
58
  const matched = Object.entries(func.exceptions)
45
59
  .filter(([_key, value]) => value.type === tuple.typeName)
@@ -1 +1 @@
1
- {"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import "reflect-metadata";
2
2
  import { IController } from "../structures/IController";
3
+ import { INestiaProject } from "../structures/INestiaProject";
3
4
  export declare namespace ReflectAnalyzer {
4
- function analyze(unique: WeakSet<any>, file: string, prefixes: string[], target?: Function): Promise<IController[]>;
5
+ const analyze: (project: INestiaProject) => (unique: WeakSet<any>, file: string, prefixes: string[], target?: Function) => Promise<IController[]>;
5
6
  }