@nestia/sdk 2.3.0-dev.20231018-4 → 2.3.0-dev.20231019
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 +13 -7
- package/lib/INestiaConfig.d.ts +8 -8
- package/lib/NestiaSdkApplication.d.ts +0 -2
- package/lib/NestiaSdkApplication.js +3 -42
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/ConfigAnalyzer.d.ts +2 -1
- package/lib/analyses/ConfigAnalyzer.js +97 -42
- package/lib/analyses/ConfigAnalyzer.js.map +1 -1
- package/lib/analyses/ControllerAnalyzer.d.ts +1 -1
- package/lib/analyses/ControllerAnalyzer.js +39 -24
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/analyses/PathAnalyzer.d.ts +2 -2
- package/lib/analyses/PathAnalyzer.js +19 -1
- package/lib/analyses/PathAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectAnalyzer.js +8 -5
- package/lib/analyses/ReflectAnalyzer.js.map +1 -1
- package/lib/executable/internal/NestiaConfigLoader.js +97 -97
- package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
- package/lib/generates/E2eGenerator.js +1 -1
- package/lib/generates/E2eGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.js +1 -2
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/structures/IController.d.ts +1 -0
- package/lib/structures/INormalizedInput.d.ts +19 -0
- package/lib/structures/INormalizedInput.js +3 -0
- package/lib/structures/INormalizedInput.js.map +1 -0
- package/lib/utils/SourceFinder.d.ts +7 -7
- package/lib/utils/SourceFinder.js +2 -2
- package/lib/utils/SourceFinder.js.map +1 -1
- package/package.json +4 -4
- package/src/INestiaConfig.ts +17 -36
- package/src/NestiaSdkApplication.ts +15 -67
- package/src/analyses/ConfigAnalyzer.ts +131 -46
- package/src/analyses/ControllerAnalyzer.ts +32 -19
- package/src/analyses/PathAnalyzer.ts +22 -3
- package/src/analyses/ReflectAnalyzer.ts +8 -2
- package/src/executable/internal/NestiaConfigLoader.ts +3 -1
- package/src/generates/E2eGenerator.ts +1 -1
- package/src/generates/SwaggerGenerator.ts +4 -8
- package/src/structures/IController.ts +1 -0
- package/src/structures/INormalizedInput.ts +20 -0
- package/src/utils/SourceFinder.ts +11 -10
|
@@ -18,16 +18,15 @@ export const NESTIA_CONFIG: INestiaConfig = {
|
|
|
18
18
|
})
|
|
19
19
|
class MyModule {}
|
|
20
20
|
const app = await NestFactory.create(MyModule);
|
|
21
|
+
// app.setGlobalPrefix("api");
|
|
22
|
+
// app.enableVersioning({
|
|
23
|
+
// type: VersioningType.URI,
|
|
24
|
+
// prefix: "v",
|
|
25
|
+
// })
|
|
21
26
|
return app;
|
|
22
27
|
},
|
|
23
28
|
// input: "src/controllers",
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Output directory that SDK would be placed in.
|
|
27
|
-
*
|
|
28
|
-
* If not configured, you can't build the SDK library.
|
|
29
|
-
*/
|
|
30
|
-
output: "src/api",
|
|
29
|
+
// input: "src/**/*.controller.ts",
|
|
31
30
|
|
|
32
31
|
/**
|
|
33
32
|
* Building `swagger.json` is also possible.
|
|
@@ -45,6 +44,13 @@ export const NESTIA_CONFIG: INestiaConfig = {
|
|
|
45
44
|
output: "dist/swagger.json",
|
|
46
45
|
},
|
|
47
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Output directory that SDK would be placed in.
|
|
49
|
+
*
|
|
50
|
+
* If not configured, you can't build the SDK library.
|
|
51
|
+
*/
|
|
52
|
+
output: "src/api",
|
|
53
|
+
|
|
48
54
|
/**
|
|
49
55
|
* Target directory that SDK distribution files would be placed in.
|
|
50
56
|
*
|
package/lib/INestiaConfig.d.ts
CHANGED
|
@@ -8,21 +8,21 @@ import type { ISwaggerSecurityScheme } from "./structures/ISwaggerSecurityScheme
|
|
|
8
8
|
* @author Jeongho Nam - https://github.com/samchon
|
|
9
9
|
*/
|
|
10
10
|
export interface INestiaConfig {
|
|
11
|
-
/**
|
|
12
|
-
* Building `swagger.json` is also possible.
|
|
13
|
-
*
|
|
14
|
-
* If not specified, you can't build the `swagger.json`.
|
|
15
|
-
*/
|
|
16
|
-
swagger?: INestiaConfig.ISwaggerConfig;
|
|
17
11
|
/**
|
|
18
12
|
* Accessor of controller classes.
|
|
19
13
|
*
|
|
20
|
-
* You can specify
|
|
14
|
+
* You can specify target controller classes within two ways
|
|
21
15
|
*
|
|
22
16
|
* - Asynchronous function returning `INestApplication` instance
|
|
23
17
|
* - Specify the path or directory of controller class files
|
|
24
18
|
*/
|
|
25
|
-
input:
|
|
19
|
+
input: (() => Promise<INestApplication>) | INestiaConfig.IInput | string[] | string;
|
|
20
|
+
/**
|
|
21
|
+
* Building `swagger.json` is also possible.
|
|
22
|
+
*
|
|
23
|
+
* If not specified, you can't build the `swagger.json`.
|
|
24
|
+
*/
|
|
25
|
+
swagger?: INestiaConfig.ISwaggerConfig;
|
|
26
26
|
/**
|
|
27
27
|
* Output directory that SDK would be placed in.
|
|
28
28
|
*
|
|
@@ -3,9 +3,7 @@ import { INestiaConfig } from "./INestiaConfig";
|
|
|
3
3
|
export declare class NestiaSdkApplication {
|
|
4
4
|
private readonly config;
|
|
5
5
|
private readonly compilerOptions;
|
|
6
|
-
private readonly bundler_;
|
|
7
6
|
constructor(config: INestiaConfig, compilerOptions: ts.CompilerOptions);
|
|
8
|
-
private is_not_excluded;
|
|
9
7
|
e2e(): Promise<void>;
|
|
10
8
|
sdk(): Promise<void>;
|
|
11
9
|
swagger(): Promise<void>;
|
|
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.NestiaSdkApplication = void 0;
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
|
-
const tstl_1 = require("tstl");
|
|
19
18
|
const typescript_1 = __importDefault(require("typescript"));
|
|
20
19
|
const AccessorAnalyzer_1 = require("./analyses/AccessorAnalyzer");
|
|
21
20
|
const ConfigAnalyzer_1 = require("./analyses/ConfigAnalyzer");
|
|
@@ -24,40 +23,10 @@ const ReflectAnalyzer_1 = require("./analyses/ReflectAnalyzer");
|
|
|
24
23
|
const E2eGenerator_1 = require("./generates/E2eGenerator");
|
|
25
24
|
const SdkGenerator_1 = require("./generates/SdkGenerator");
|
|
26
25
|
const SwaggerGenerator_1 = require("./generates/SwaggerGenerator");
|
|
27
|
-
const ArrayUtil_1 = require("./utils/ArrayUtil");
|
|
28
|
-
const SourceFinder_1 = require("./utils/SourceFinder");
|
|
29
26
|
class NestiaSdkApplication {
|
|
30
27
|
constructor(config, compilerOptions) {
|
|
31
28
|
this.config = config;
|
|
32
29
|
this.compilerOptions = compilerOptions;
|
|
33
|
-
this.bundler_ = new tstl_1.Singleton(() => __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
if (!this.config)
|
|
35
|
-
return () => false;
|
|
36
|
-
const bundles = yield fs_1.default.promises.readdir(SdkGenerator_1.SdkGenerator.BUNDLE_PATH);
|
|
37
|
-
const tuples = yield ArrayUtil_1.ArrayUtil.asyncMap(bundles, (file) => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
const relative = path_1.default.join(this.config.output, file);
|
|
39
|
-
const location = path_1.default.join(SdkGenerator_1.SdkGenerator.BUNDLE_PATH, file);
|
|
40
|
-
const stats = yield fs_1.default.promises.stat(location);
|
|
41
|
-
return new tstl_1.Pair(relative, stats.isDirectory());
|
|
42
|
-
}));
|
|
43
|
-
return (file) => {
|
|
44
|
-
for (const it of tuples)
|
|
45
|
-
if (it.second === false && file === it.first)
|
|
46
|
-
return true;
|
|
47
|
-
else if (it.second === true && file.indexOf(it.first) === 0)
|
|
48
|
-
return true;
|
|
49
|
-
return false;
|
|
50
|
-
};
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
is_not_excluded(file) {
|
|
54
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
if (this.config.output)
|
|
56
|
-
return (file.indexOf(path_1.default.join(this.config.output, "functional")) ===
|
|
57
|
-
-1 && (yield this.bundler_.get())(file) === false);
|
|
58
|
-
const content = yield fs_1.default.promises.readFile(file, "utf8");
|
|
59
|
-
return (content.indexOf(" * @nestia Generated by Nestia - https://github.com/samchon/nestia") === -1);
|
|
60
|
-
});
|
|
61
30
|
}
|
|
62
31
|
e2e() {
|
|
63
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -110,20 +79,12 @@ class NestiaSdkApplication {
|
|
|
110
79
|
}
|
|
111
80
|
generate(method, config, archiver) {
|
|
112
81
|
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
// LOAD CONTROLLER FILES
|
|
114
|
-
this.config.input = yield ConfigAnalyzer_1.ConfigAnalyzer.input(this.config.input);
|
|
115
|
-
const fileList = yield ArrayUtil_1.ArrayUtil.asyncFilter(yield SourceFinder_1.SourceFinder.find({
|
|
116
|
-
include: this.config.input.include,
|
|
117
|
-
exclude: this.config.input.exclude,
|
|
118
|
-
filter: (file) => file.substring(file.length - 3) === ".ts" &&
|
|
119
|
-
file.substring(file.length - 5) !== ".d.ts",
|
|
120
|
-
}), (file) => this.is_not_excluded(file));
|
|
121
82
|
// ANALYZE REFLECTS
|
|
122
83
|
const unique = new WeakSet();
|
|
123
84
|
const controllers = [];
|
|
124
85
|
console.log("Analyzing reflections");
|
|
125
|
-
for (const
|
|
126
|
-
controllers.push(...(yield ReflectAnalyzer_1.ReflectAnalyzer.analyze(unique, file)));
|
|
86
|
+
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)));
|
|
127
88
|
const agg = (() => {
|
|
128
89
|
const set = new Set();
|
|
129
90
|
for (const c of controllers)
|
|
@@ -150,7 +111,7 @@ class NestiaSdkApplication {
|
|
|
150
111
|
const file = program.getSourceFile(c.file);
|
|
151
112
|
if (file === undefined)
|
|
152
113
|
continue;
|
|
153
|
-
routeList.push(...ControllerAnalyzer_1.ControllerAnalyzer.analyze(this.config, checker, file, c));
|
|
114
|
+
routeList.push(...(yield ControllerAnalyzer_1.ControllerAnalyzer.analyze(this.config, checker, file, c)));
|
|
154
115
|
}
|
|
155
116
|
// FIND IMPLICIT TYPES
|
|
156
117
|
const implicit = routeList.filter(is_implicit_return_typed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB
|
|
1
|
+
{"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { INestiaConfig } from "../INestiaConfig";
|
|
2
|
+
import { INormalizedInput } from "../structures/INormalizedInput";
|
|
2
3
|
export declare namespace ConfigAnalyzer {
|
|
3
|
-
const input: (config: INestiaConfig
|
|
4
|
+
const input: (config: INestiaConfig) => Promise<INormalizedInput>;
|
|
4
5
|
}
|
|
@@ -8,59 +8,68 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.ConfigAnalyzer = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const constants_1 = require("@nestjs/common/constants");
|
|
18
|
+
const fs_1 = __importDefault(require("fs"));
|
|
19
|
+
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const tstl_1 = require("tstl");
|
|
21
|
+
const SdkGenerator_1 = require("../generates/SdkGenerator");
|
|
22
|
+
const ArrayUtil_1 = require("../utils/ArrayUtil");
|
|
23
|
+
const MapUtil_1 = require("../utils/MapUtil");
|
|
24
|
+
const SourceFinder_1 = require("../utils/SourceFinder");
|
|
14
25
|
var ConfigAnalyzer;
|
|
15
26
|
(function (ConfigAnalyzer) {
|
|
16
|
-
ConfigAnalyzer.input = (config) => __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
else if (typeof
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (config === null)
|
|
26
|
-
throw new Error("Invalid input config.");
|
|
27
|
+
ConfigAnalyzer.input = (config) => MapUtil_1.MapUtil.take(memory, config, () => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const input = config.input;
|
|
29
|
+
if (Array.isArray(input))
|
|
30
|
+
return transform_input(config)(input);
|
|
31
|
+
else if (typeof input === "function")
|
|
32
|
+
return analyze_application(yield input());
|
|
33
|
+
else if (typeof input === "object")
|
|
34
|
+
if (input === null)
|
|
35
|
+
throw new Error("Invalid input config. It can't be null.");
|
|
27
36
|
else
|
|
28
|
-
return config;
|
|
29
|
-
else if (typeof
|
|
30
|
-
return
|
|
31
|
-
include: [config],
|
|
32
|
-
exclude: [],
|
|
33
|
-
};
|
|
37
|
+
return transform_input(config)(input.include, input.exclude);
|
|
38
|
+
else if (typeof input === "string")
|
|
39
|
+
return transform_input(config)([input]);
|
|
34
40
|
else
|
|
35
41
|
throw new Error("Invalid input config.");
|
|
36
|
-
});
|
|
37
|
-
const
|
|
38
|
-
var _a, _b, _c, _d;
|
|
39
|
-
const files =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
const versioning = (
|
|
42
|
+
}));
|
|
43
|
+
const analyze_application = (app) => __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
45
|
+
const files = new tstl_1.HashMap();
|
|
46
|
+
const container = app
|
|
47
|
+
.container;
|
|
48
|
+
const modules = [...container.getModules().values()].filter((m) => !!m.controllers.size);
|
|
49
|
+
for (const m of modules) {
|
|
50
|
+
const path = (_b = (_a = Reflect.getMetadata(constants_1.MODULE_PATH + container.getModules().applicationId, m.metatype)) !== null && _a !== void 0 ? _a : Reflect.getMetadata(constants_1.MODULE_PATH, m.metatype)) !== null && _b !== void 0 ? _b : "";
|
|
51
|
+
for (const controller of [...m.controllers.keys()]) {
|
|
52
|
+
const file = (_d = (_c = (yield require("get-function-location")(controller))) === null || _c === void 0 ? void 0 : _c.source) !== null && _d !== void 0 ? _d : null;
|
|
53
|
+
if (file === null)
|
|
54
|
+
continue;
|
|
55
|
+
const location = normalize_file(file);
|
|
56
|
+
if (location.length === 0)
|
|
57
|
+
continue;
|
|
58
|
+
const key = new tstl_1.Pair(controller, location);
|
|
59
|
+
files.take(key, () => new Set([])).add(path);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const versioning = (_e = app.config) === null || _e === void 0 ? void 0 : _e.versioningOptions;
|
|
57
63
|
return {
|
|
58
|
-
include: files
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
include: files.toJSON().map((pair) => ({
|
|
65
|
+
controller: pair.first.first,
|
|
66
|
+
file: pair.first.second,
|
|
67
|
+
paths: [...pair.second.values()],
|
|
68
|
+
})),
|
|
69
|
+
globalPrefix: typeof ((_f = app.config) === null || _f === void 0 ? void 0 : _f.globalPrefix) === "string"
|
|
61
70
|
? {
|
|
62
71
|
prefix: app.config.globalPrefix,
|
|
63
|
-
exclude: (
|
|
72
|
+
exclude: (_h = (_g = app.config.globalPrefixOptions) === null || _g === void 0 ? void 0 : _g.exclude) !== null && _h !== void 0 ? _h : {},
|
|
64
73
|
}
|
|
65
74
|
: undefined,
|
|
66
75
|
versioning: versioning === undefined ||
|
|
@@ -71,8 +80,54 @@ var ConfigAnalyzer;
|
|
|
71
80
|
versioning.prefix === false
|
|
72
81
|
? "v"
|
|
73
82
|
: versioning.prefix,
|
|
83
|
+
defaultVersion: versioning.defaultVersion,
|
|
74
84
|
},
|
|
75
85
|
};
|
|
76
86
|
});
|
|
87
|
+
const normalize_file = (str) => str.substring(str.startsWith("file:///")
|
|
88
|
+
? process.cwd()[0] === "/"
|
|
89
|
+
? 7
|
|
90
|
+
: 8
|
|
91
|
+
: str.startsWith("file://")
|
|
92
|
+
? 7
|
|
93
|
+
: 0);
|
|
94
|
+
const transform_input = (config) => (include, exclude) => __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
return ({
|
|
96
|
+
include: (yield SourceFinder_1.SourceFinder.find({
|
|
97
|
+
include,
|
|
98
|
+
exclude,
|
|
99
|
+
filter: filter(config),
|
|
100
|
+
})).map((file) => ({
|
|
101
|
+
paths: [""],
|
|
102
|
+
file,
|
|
103
|
+
})),
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
const filter = (config) => (location) => __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
return location.endsWith(".ts") &&
|
|
108
|
+
!location.endsWith(".d.ts") &&
|
|
109
|
+
(config.output === undefined ||
|
|
110
|
+
(location.indexOf(path_1.default.join(config.output, "functional")) ===
|
|
111
|
+
-1 &&
|
|
112
|
+
(yield (yield bundler.get(config.output))(location))) === false);
|
|
113
|
+
});
|
|
77
114
|
})(ConfigAnalyzer || (exports.ConfigAnalyzer = ConfigAnalyzer = {}));
|
|
115
|
+
const memory = new Map();
|
|
116
|
+
const bundler = new tstl_1.Singleton((output) => __awaiter(void 0, void 0, void 0, function* () {
|
|
117
|
+
const assets = yield fs_1.default.promises.readdir(SdkGenerator_1.SdkGenerator.BUNDLE_PATH);
|
|
118
|
+
const tuples = yield ArrayUtil_1.ArrayUtil.asyncMap(assets, (file) => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
|
+
const relative = path_1.default.join(output, file);
|
|
120
|
+
const location = path_1.default.join(SdkGenerator_1.SdkGenerator.BUNDLE_PATH, file);
|
|
121
|
+
const stats = yield fs_1.default.promises.stat(location);
|
|
122
|
+
return new tstl_1.Pair(relative, stats.isDirectory());
|
|
123
|
+
}));
|
|
124
|
+
return (file) => __awaiter(void 0, void 0, void 0, function* () {
|
|
125
|
+
for (const it of tuples)
|
|
126
|
+
if (it.second === false && file === it.first)
|
|
127
|
+
return true;
|
|
128
|
+
else if (it.second === true && file.indexOf(it.first) === 0)
|
|
129
|
+
return true;
|
|
130
|
+
return false;
|
|
131
|
+
});
|
|
132
|
+
}));
|
|
78
133
|
//# sourceMappingURL=ConfigAnalyzer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ConfigAnalyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ConfigAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import { INestiaConfig } from "../INestiaConfig";
|
|
|
3
3
|
import { IController } from "../structures/IController";
|
|
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): IRoute[]
|
|
6
|
+
function analyze(config: INestiaConfig, checker: ts.TypeChecker, sourceFile: ts.SourceFile, controller: IController): Promise<IRoute[]>;
|
|
7
7
|
}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -9,6 +18,7 @@ const HashMap_1 = require("tstl/container/HashMap");
|
|
|
9
18
|
const typescript_1 = __importDefault(require("typescript"));
|
|
10
19
|
const CommentFactory_1 = require("typia/lib/factories/CommentFactory");
|
|
11
20
|
const PathUtil_1 = require("../utils/PathUtil");
|
|
21
|
+
const ConfigAnalyzer_1 = require("./ConfigAnalyzer");
|
|
12
22
|
const ExceptionAnalyzer_1 = require("./ExceptionAnalyzer");
|
|
13
23
|
const GenericAnalyzer_1 = require("./GenericAnalyzer");
|
|
14
24
|
const ImportAnalyzer_1 = require("./ImportAnalyzer");
|
|
@@ -17,24 +27,27 @@ const SecurityAnalyzer_1 = require("./SecurityAnalyzer");
|
|
|
17
27
|
var ControllerAnalyzer;
|
|
18
28
|
(function (ControllerAnalyzer) {
|
|
19
29
|
function analyze(config, checker, sourceFile, controller) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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;
|
|
30
44
|
});
|
|
31
|
-
return ret;
|
|
32
45
|
}
|
|
33
46
|
ControllerAnalyzer.analyze = analyze;
|
|
34
47
|
/* ---------------------------------------------------------
|
|
35
48
|
CLASS
|
|
36
49
|
--------------------------------------------------------- */
|
|
37
|
-
function _Analyze_controller(config, checker, controller, classNode) {
|
|
50
|
+
function _Analyze_controller(config, input, checker, controller, classNode) {
|
|
38
51
|
const classType = checker.getTypeAtLocation(classNode);
|
|
39
52
|
const genericDict = GenericAnalyzer_1.GenericAnalyzer.analyze(checker, classNode);
|
|
40
53
|
const ret = [];
|
|
@@ -51,7 +64,7 @@ var ControllerAnalyzer;
|
|
|
51
64
|
const runtime = controller.functions.find((f) => f.name === identifier.escapedText);
|
|
52
65
|
if (runtime === undefined)
|
|
53
66
|
continue;
|
|
54
|
-
const routes = _Analyze_function(config, checker, controller, genericDict, runtime, declaration, property);
|
|
67
|
+
const routes = _Analyze_function(config, input, checker, controller, genericDict, runtime, declaration, property);
|
|
55
68
|
ret.push(...routes);
|
|
56
69
|
}
|
|
57
70
|
return ret;
|
|
@@ -59,15 +72,15 @@ var ControllerAnalyzer;
|
|
|
59
72
|
/* ---------------------------------------------------------
|
|
60
73
|
FUNCTION
|
|
61
74
|
--------------------------------------------------------- */
|
|
62
|
-
function _Analyze_function(config, checker, controller, genericDict, func, declaration, symbol) {
|
|
75
|
+
function _Analyze_function(config, input, checker, controller, genericDict, func, declaration, symbol) {
|
|
63
76
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
64
77
|
// PREPARE ASSETS
|
|
65
78
|
const type = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
|
|
66
79
|
const signature = checker.getSignaturesOfType(type, typescript_1.default.SignatureKind.Call)[0];
|
|
67
80
|
if (signature === undefined)
|
|
68
81
|
throw new Error(`Error on ControllerAnalyzer.analyze(): unable to get the signature from the ${controller.name}.${func.name}().`);
|
|
69
|
-
const importDict = new HashMap_1.HashMap();
|
|
70
82
|
// EXPLORE CHILDREN TYPES
|
|
83
|
+
const importDict = new HashMap_1.HashMap();
|
|
71
84
|
const parameters = func.parameters.map((param) => _Analyze_parameter(checker, genericDict, importDict, controller, func.name, param, signature.getParameters()[param.index]));
|
|
72
85
|
const outputType = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, signature.getReturnType());
|
|
73
86
|
if (outputType === null)
|
|
@@ -134,16 +147,18 @@ var ControllerAnalyzer;
|
|
|
134
147
|
}), security,
|
|
135
148
|
exceptions });
|
|
136
149
|
// CONFIGURE PATHS
|
|
137
|
-
const input = config.input;
|
|
138
150
|
const pathList = new Set();
|
|
139
|
-
const versions = _Analyze_versions(
|
|
140
|
-
?
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
151
|
+
const versions = _Analyze_versions(input.versioning === undefined
|
|
152
|
+
? 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]
|
|
157
|
+
: undefined)) !== null && _j !== void 0 ? _j : undefined);
|
|
158
|
+
for (const prefix of controller.prefixes)
|
|
159
|
+
for (const cPath of controller.paths)
|
|
160
|
+
for (const filePath of func.paths)
|
|
161
|
+
pathList.add(PathAnalyzer_1.PathAnalyzer.join(prefix, cPath, filePath));
|
|
147
162
|
return [...pathList]
|
|
148
163
|
.map((individual) => PathAnalyzer_1.PathAnalyzer.combinate(input.globalPrefix)([...versions].map((v) => {
|
|
149
164
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import {
|
|
2
|
+
import { INormalizedInput } from "../structures/INormalizedInput";
|
|
3
3
|
export declare namespace PathAnalyzer {
|
|
4
|
-
const combinate: (globalPrefix:
|
|
4
|
+
const combinate: (globalPrefix: INormalizedInput["globalPrefix"]) => (versions: Array<string | null>) => (props: {
|
|
5
5
|
path: string;
|
|
6
6
|
method: string;
|
|
7
7
|
}) => string[];
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.PathAnalyzer = void 0;
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
7
8
|
const path_1 = __importDefault(require("path"));
|
|
8
9
|
const path_to_regexp_1 = require("path-to-regexp");
|
|
9
10
|
var PathAnalyzer;
|
|
@@ -17,7 +18,7 @@ var PathAnalyzer;
|
|
|
17
18
|
return out(props.path).map((str) => PathAnalyzer.join(globalPrefix.prefix, str));
|
|
18
19
|
return globalPrefix.exclude.some((exclude) => typeof exclude === "string"
|
|
19
20
|
? RegExp(exclude).test(props.path)
|
|
20
|
-
: exclude.method === props.method &&
|
|
21
|
+
: METHOD(exclude.method) === props.method &&
|
|
21
22
|
RegExp(exclude.path).test(props.path))
|
|
22
23
|
? out(props.path)
|
|
23
24
|
: out(props.path).map((str) => PathAnalyzer.join(globalPrefix.prefix, str));
|
|
@@ -62,4 +63,21 @@ var PathAnalyzer;
|
|
|
62
63
|
}
|
|
63
64
|
})(PathAnalyzer || (exports.PathAnalyzer = PathAnalyzer = {}));
|
|
64
65
|
const ERROR_MESSAGE = "nestia supports only string typed parameter on path";
|
|
66
|
+
const METHOD = (value) => value === common_1.RequestMethod.ALL
|
|
67
|
+
? "all"
|
|
68
|
+
: value === common_1.RequestMethod.DELETE
|
|
69
|
+
? "delete"
|
|
70
|
+
: value === common_1.RequestMethod.GET
|
|
71
|
+
? "get"
|
|
72
|
+
: value === common_1.RequestMethod.HEAD
|
|
73
|
+
? "head"
|
|
74
|
+
: value === common_1.RequestMethod.OPTIONS
|
|
75
|
+
? "options"
|
|
76
|
+
: value === common_1.RequestMethod.PATCH
|
|
77
|
+
? "patch"
|
|
78
|
+
: value === common_1.RequestMethod.POST
|
|
79
|
+
? "post"
|
|
80
|
+
: value === common_1.RequestMethod.PUT
|
|
81
|
+
? "put"
|
|
82
|
+
: "unknown";
|
|
65
83
|
//# sourceMappingURL=PathAnalyzer.js.map
|