@nestia/sdk 1.4.9 → 1.4.10-dev.20230712
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/README.md +12 -5
- package/lib/NestiaSdkApplication.js +2 -0
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/AccessorAnalyzer.d.ts +4 -0
- package/lib/analyses/AccessorAnalyzer.js +53 -0
- package/lib/analyses/AccessorAnalyzer.js.map +1 -0
- package/lib/analyses/ControllerAnalyzer.js +2 -1
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/generates/E2eGenerator.js +1 -12
- package/lib/generates/E2eGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.d.ts +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +8 -14
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js +6 -24
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkRouteDirectory.d.ts +1 -2
- package/lib/generates/internal/SdkRouteDirectory.js +1 -2
- package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
- package/lib/structures/IRoute.d.ts +1 -0
- package/package.json +1 -1
- package/src/NestiaSdkApplication.ts +2 -0
- package/src/analyses/AccessorAnalyzer.ts +56 -0
- package/src/analyses/ControllerAnalyzer.ts +3 -1
- package/src/generates/E2eGenerator.ts +1 -14
- package/src/generates/internal/E2eFileProgrammer.ts +8 -29
- package/src/generates/internal/SdkFileProgrammer.ts +7 -27
- package/src/generates/internal/SdkRouteDirectory.ts +2 -4
- package/src/structures/IRoute.ts +1 -0
package/README.md
CHANGED
|
@@ -11,10 +11,11 @@ Nestia is a set of helper libraries for NestJS, supporting below features:
|
|
|
11
11
|
|
|
12
12
|
- `@nestia/core`: super-fast decorators
|
|
13
13
|
- `@nestia/sdk`:
|
|
14
|
-
- SDK generator for clients
|
|
15
14
|
- Swagger generator evolved than ever
|
|
16
|
-
-
|
|
15
|
+
- SDK library generator for clients
|
|
17
16
|
- Mockup Simulator for client applications
|
|
17
|
+
- Automatic E2E test functions generator
|
|
18
|
+
- `@nestia/migrate`: migration from Swagger to NestJS
|
|
18
19
|
- `nestia`: just CLI (command line interface) tool
|
|
19
20
|
|
|
20
21
|
> **Note**
|
|
@@ -24,12 +25,13 @@ Nestia is a set of helper libraries for NestJS, supporting below features:
|
|
|
24
25
|
> - Runtime validator is **20,000x faster** than `class-validator`
|
|
25
26
|
> - JSON serialization is **200x faster** than `class-transformer`
|
|
26
27
|
> - Software Development Kit
|
|
27
|
-
> - SDK is
|
|
28
|
-
> - Mockup simulator
|
|
28
|
+
> - SDK is a collection of `fetch` functions with type definitions like [tRPC](https://trpc.io/)
|
|
29
|
+
> - Mockup simulator means embedded backend simulator in SDK
|
|
30
|
+
> - similar with [msw](https://mswjs.io/), but fully automated
|
|
29
31
|
|
|
30
32
|

|
|
31
33
|
|
|
32
|
-
> Left is server code, and right is client code utilizing SDK
|
|
34
|
+
> Left is NestJS server code, and right is client (frontend) code utilizing SDK
|
|
33
35
|
|
|
34
36
|
|
|
35
37
|
|
|
@@ -63,3 +65,8 @@ Check out the document in the [website](https://nestia.io/docs/):
|
|
|
63
65
|
- [SDK Library](https://nestia.io/docs/sdk/sdk/)
|
|
64
66
|
- [E2E Functions](https://nestia.io/docs/sdk/e2e/)
|
|
65
67
|
- [Mockup Simulator](https://nestia.io/docs/sdk/simulator/)
|
|
68
|
+
- [Swagger to NestJS](https://nestia.io/docs/migrate/)
|
|
69
|
+
|
|
70
|
+
### 🔗 Appendix
|
|
71
|
+
- [⇲ Benchmark Result](https://github.com/samchon/nestia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
|
|
72
|
+
- [⇲ `dev.to` Articles](https://dev.to/samchon/series/22751)
|
|
@@ -41,6 +41,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
41
41
|
const runner = __importStar(require("ts-node"));
|
|
42
42
|
const tstl_1 = require("tstl");
|
|
43
43
|
const typescript_1 = __importDefault(require("typescript"));
|
|
44
|
+
const AccessorAnalyzer_1 = require("./analyses/AccessorAnalyzer");
|
|
44
45
|
const ControllerAnalyzer_1 = require("./analyses/ControllerAnalyzer");
|
|
45
46
|
const ReflectAnalyzer_1 = require("./analyses/ReflectAnalyzer");
|
|
46
47
|
const NestiaConfigCompilerOptions_1 = require("./executable/internal/NestiaConfigCompilerOptions");
|
|
@@ -169,6 +170,7 @@ class NestiaSdkApplication {
|
|
|
169
170
|
routeList.push(...ControllerAnalyzer_1.ControllerAnalyzer.analyze(checker, file, c));
|
|
170
171
|
}
|
|
171
172
|
// DO GENERATE
|
|
173
|
+
AccessorAnalyzer_1.AccessorAnalyzer.analyze(routeList);
|
|
172
174
|
yield archiver(checker)(config(this.config_))(routeList);
|
|
173
175
|
});
|
|
174
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccessorAnalyzer = void 0;
|
|
4
|
+
const Escaper_1 = require("typia/lib/utils/Escaper");
|
|
5
|
+
var AccessorAnalyzer;
|
|
6
|
+
(function (AccessorAnalyzer) {
|
|
7
|
+
AccessorAnalyzer.analyze = (routes) => {
|
|
8
|
+
var _b;
|
|
9
|
+
variable(routes);
|
|
10
|
+
shrink(routes);
|
|
11
|
+
for (const r of routes)
|
|
12
|
+
r.name = (_b = r.accessors.at(-1)) !== null && _b !== void 0 ? _b : r.name;
|
|
13
|
+
};
|
|
14
|
+
const prepare = (routeList) => {
|
|
15
|
+
const dict = new Set();
|
|
16
|
+
for (const route of routeList)
|
|
17
|
+
route.accessors.forEach((_a, i) => dict.add(route.accessors.slice(0, i + 1).join(".")));
|
|
18
|
+
return dict;
|
|
19
|
+
};
|
|
20
|
+
const variable = (routeList) => {
|
|
21
|
+
const dict = prepare(routeList);
|
|
22
|
+
for (const route of routeList) {
|
|
23
|
+
route.accessors.forEach((accessor, i) => {
|
|
24
|
+
if (Escaper_1.Escaper.variable(accessor))
|
|
25
|
+
return;
|
|
26
|
+
while (true) {
|
|
27
|
+
accessor = "$" + accessor;
|
|
28
|
+
const partial = [
|
|
29
|
+
...route.accessors.slice(0, i),
|
|
30
|
+
accessor,
|
|
31
|
+
].join(".");
|
|
32
|
+
if (dict.has(partial) === false) {
|
|
33
|
+
route.accessors[i] = accessor;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const shrink = (routeList) => {
|
|
41
|
+
const dict = prepare(routeList);
|
|
42
|
+
for (const route of routeList) {
|
|
43
|
+
if (route.accessors.length < 2 ||
|
|
44
|
+
route.accessors.at(-1) !== route.accessors.at(-2))
|
|
45
|
+
continue;
|
|
46
|
+
const cut = route.accessors.slice(0, -1);
|
|
47
|
+
if (dict.has(cut.join(".")) === true)
|
|
48
|
+
continue;
|
|
49
|
+
route.accessors = cut;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
})(AccessorAnalyzer || (exports.AccessorAnalyzer = AccessorAnalyzer = {}));
|
|
53
|
+
//# sourceMappingURL=AccessorAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessorAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/AccessorAnalyzer.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAIlD,IAAiB,gBAAgB,CAmDhC;AAnDD,WAAiB,gBAAgB;IAChB,wBAAO,GAAG,CAAC,MAAgB,EAAE,EAAE;;QACxC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,CAAC,CAAC,IAAI,GAAG,MAAA,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,SAAmB,EAAe,EAAE;QACjD,MAAM,IAAI,GAAgB,IAAI,GAAG,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,SAAS;YACzB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACtD,CAAC;QACN,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,SAAmB,EAAE,EAAE;QACrC,MAAM,IAAI,GAAgB,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC3B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,iBAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAAE,OAAO;gBACvC,OAAO,IAAI,EAAE;oBACT,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;oBAC1B,MAAM,OAAO,GAAW;wBACpB,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC9B,QAAQ;qBACX,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACZ,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;wBAC7B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;wBAC9B,MAAM;qBACT;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,SAAmB,EAAE,EAAE;QACnC,MAAM,IAAI,GAAgB,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC3B,IACI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAC1B,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEjD,SAAS;YAEb,MAAM,GAAG,GAAa,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;gBAAE,SAAS;YAE/C,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;SACzB;IACL,CAAC,CAAC;AACN,CAAC,EAnDgB,gBAAgB,gCAAhB,gBAAgB,QAmDhC"}
|
|
@@ -7,6 +7,7 @@ exports.ControllerAnalyzer = void 0;
|
|
|
7
7
|
const HashMap_1 = require("tstl/container/HashMap");
|
|
8
8
|
const typescript_1 = __importDefault(require("typescript"));
|
|
9
9
|
const CommentFactory_1 = require("typia/lib/factories/CommentFactory");
|
|
10
|
+
const PathUtil_1 = require("../utils/PathUtil");
|
|
10
11
|
const GenericAnalyzer_1 = require("./GenericAnalyzer");
|
|
11
12
|
const ImportAnalyzer_1 = require("./ImportAnalyzer");
|
|
12
13
|
const PathAnalyzer_1 = require("./PathAnalyzer");
|
|
@@ -100,7 +101,7 @@ var ControllerAnalyzer;
|
|
|
100
101
|
pathList.push(PathAnalyzer_1.PathAnalyzer.espace(path, () => "ControllerAnalyzer.analyze()"));
|
|
101
102
|
}
|
|
102
103
|
// RETURNS
|
|
103
|
-
return pathList.map((path) => (Object.assign(Object.assign({}, common), { path })));
|
|
104
|
+
return pathList.map((path) => (Object.assign(Object.assign({}, common), { path, accessors: [...PathUtil_1.PathUtil.accessors(path), func.name] })));
|
|
104
105
|
}
|
|
105
106
|
/* ---------------------------------------------------------
|
|
106
107
|
PARAMETER
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAiD;AACjD,4DAA4B;AAE5B,uEAAoE;AAKpE,uDAAoD;AACpD,qDAAkD;AAClD,iDAA8C;AAE9C,IAAiB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,22 +16,11 @@ exports.E2eGenerator = void 0;
|
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
18
|
const NestiaConfigUtil_1 = require("../utils/NestiaConfigUtil");
|
|
19
|
-
const PathUtil_1 = require("../utils/PathUtil");
|
|
20
19
|
const E2eFileProgrammer_1 = require("./internal/E2eFileProgrammer");
|
|
21
20
|
var E2eGenerator;
|
|
22
21
|
(function (E2eGenerator) {
|
|
23
22
|
E2eGenerator.generate = (config) => (routeList) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
var _a;
|
|
25
23
|
console.log("Generating E2E Test Functions");
|
|
26
|
-
const pathDict = new Map();
|
|
27
|
-
for (const route of routeList) {
|
|
28
|
-
const sequence = PathUtil_1.PathUtil.accessors(route.path).map((_str, i, entire) => entire.slice(0, i + 1).join("/"));
|
|
29
|
-
for (const s of sequence) {
|
|
30
|
-
const count = (_a = pathDict.get(s)) !== null && _a !== void 0 ? _a : 0;
|
|
31
|
-
pathDict.set(s, count + 1);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const counter = (path) => { var _a; return (_a = pathDict.get(path)) !== null && _a !== void 0 ? _a : 0; };
|
|
35
24
|
// PREPARE DIRECTORIES
|
|
36
25
|
const output = path_1.default.resolve(config.e2e);
|
|
37
26
|
yield mkdir(output);
|
|
@@ -42,7 +31,7 @@ var E2eGenerator;
|
|
|
42
31
|
yield index(config)(path_1.default.join(config.e2e, "index.ts"));
|
|
43
32
|
// GENERATE EACH TEST FILES
|
|
44
33
|
for (const route of routeList)
|
|
45
|
-
yield E2eFileProgrammer_1.E2eFileProgrammer.generate(config)(
|
|
34
|
+
yield E2eFileProgrammer_1.E2eFileProgrammer.generate(config)({
|
|
46
35
|
api: path_1.default.resolve(config.output),
|
|
47
36
|
current: path_1.default.join(output, "features", "api", "automated"),
|
|
48
37
|
})(route);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2eGenerator.js","sourceRoot":"","sources":["../../src/generates/E2eGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAIxB,gEAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"E2eGenerator.js","sourceRoot":"","sources":["../../src/generates/E2eGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAIxB,gEAA6D;AAC7D,oEAAiE;AAEjE,IAAiB,YAAY,CAoD5B;AApDD,WAAiB,YAAY;IACZ,qBAAQ,GACjB,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAO,SAAmB,EAAiB,EAAE;QACzC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,sBAAsB;QACtB,MAAM,MAAM,GAAW,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QAE/D,2BAA2B;QAC3B,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAExD,2BAA2B;QAC3B,KAAK,MAAM,KAAK,IAAI,SAAS;YACzB,MAAM,qCAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrC,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAO,CAAC;gBACjC,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC;aAC7D,CAAC,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAA,CAAC;IAEN,MAAM,KAAK,GACP,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAO,MAAc,EAAiB,EAAE;QACpC,IAAI,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAElC,MAAM,QAAQ,GAAW,cAAI,CAAC,IAAI,CAC9B,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,UAAU,CACb,CAAC;QACF,MAAM,OAAO,GAAW,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAC9C,QAAQ,EACR,MAAM,CACT,CAAC;QAEF,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACvB,MAAM,EACN,OAAO,CAAC,OAAO,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,mCAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACvD,EACD,MAAM,CACT,CAAC;IACN,CAAC,CAAA,CAAC;AACV,CAAC,EApDgB,YAAY,4BAAZ,YAAY,QAoD5B;AAED,MAAM,KAAK,GAAG,CAAO,QAAgB,EAAiB,EAAE;IACpD,IAAI;QACA,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACrC;IAAC,WAAM,GAAE;AACd,CAAC,CAAA,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { INestiaConfig } from "../../INestiaConfig";
|
|
2
2
|
import { IRoute } from "../../structures/IRoute";
|
|
3
3
|
export declare namespace E2eFileProgrammer {
|
|
4
|
-
const generate: (config: INestiaConfig) => (
|
|
4
|
+
const generate: (config: INestiaConfig) => (props: {
|
|
5
5
|
api: string;
|
|
6
6
|
current: string;
|
|
7
7
|
}) => (route: IRoute) => Promise<void>;
|
|
@@ -16,10 +16,9 @@ exports.E2eFileProgrammer = void 0;
|
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
18
|
const ImportDictionary_1 = require("../../utils/ImportDictionary");
|
|
19
|
-
const PathUtil_1 = require("../../utils/PathUtil");
|
|
20
19
|
var E2eFileProgrammer;
|
|
21
20
|
(function (E2eFileProgrammer) {
|
|
22
|
-
E2eFileProgrammer.generate = (config) => (
|
|
21
|
+
E2eFileProgrammer.generate = (config) => (props) => (route) => __awaiter(this, void 0, void 0, function* () {
|
|
23
22
|
const importDict = new ImportDictionary_1.ImportDictionary();
|
|
24
23
|
for (const tuple of route.imports)
|
|
25
24
|
for (const instance of tuple[1])
|
|
@@ -50,21 +49,21 @@ var E2eFileProgrammer;
|
|
|
50
49
|
? []
|
|
51
50
|
: [importDict.toScript(props.current)]),
|
|
52
51
|
"",
|
|
53
|
-
arrow(config)(
|
|
52
|
+
arrow(config)(route),
|
|
54
53
|
...(additional.length ? ["", ...additional] : []),
|
|
55
54
|
].join("\n");
|
|
56
|
-
yield fs_1.default.promises.writeFile(`${props.current}/${name(
|
|
55
|
+
yield fs_1.default.promises.writeFile(`${props.current}/${name(route)}.ts`, content, "utf8");
|
|
57
56
|
});
|
|
58
|
-
const arrow = (config) => (
|
|
57
|
+
const arrow = (config) => (route) => {
|
|
59
58
|
const tab = route.output.name === "void" ? 2 : 3;
|
|
60
59
|
const output = [
|
|
61
|
-
`await ${accessor(
|
|
60
|
+
`await ${accessor(route)}(`,
|
|
62
61
|
`${" ".repeat(tab * 4)}connection,`,
|
|
63
62
|
...route.parameters.map(parameter(config)(tab)),
|
|
64
63
|
`${" ".repeat((tab - 1) * 4)});`,
|
|
65
64
|
].join("\n");
|
|
66
65
|
return [
|
|
67
|
-
`export const ${name(
|
|
66
|
+
`export const ${name(route)} = async (`,
|
|
68
67
|
` connection: api.IConnection`,
|
|
69
68
|
`): Promise<void> => {`,
|
|
70
69
|
...(route.output.name === "void"
|
|
@@ -88,13 +87,8 @@ var E2eFileProgrammer;
|
|
|
88
87
|
: `typia.random<${primitive(config)(param.type.name)}>()`;
|
|
89
88
|
return `${" ".repeat(4 * tab)}${middle},`;
|
|
90
89
|
};
|
|
91
|
-
const name = (
|
|
92
|
-
|
|
93
|
-
const accessor = (counter) => (route) => "api.functional." +
|
|
94
|
-
postfix(counter)(PathUtil_1.PathUtil.accessors(route.path))(route.name).join(".");
|
|
95
|
-
const postfix = (counter) => (array) => (name) => array.at(-1) === name && counter(array.join("/")) < 2
|
|
96
|
-
? array
|
|
97
|
-
: [...array, name];
|
|
90
|
+
const name = (route) => ["test", "api", ...route.accessors].join("_");
|
|
91
|
+
const accessor = (route) => ["api", "functional", ...route.accessors].join(".");
|
|
98
92
|
const primitive = (config) => (name) => config.primitive !== false ? `Primitive<${name}>` : name;
|
|
99
93
|
const getAdditional = (param) => {
|
|
100
94
|
if (param.custom === false || param.category !== "param" || !param.meta)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2eFileProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/E2eFileProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAIxB,mEAAgE;
|
|
1
|
+
{"version":3,"file":"E2eFileProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/E2eFileProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAIxB,mEAAgE;AAEhE,IAAiB,iBAAiB,CA4GjC;AA5GD,WAAiB,iBAAiB;IACjB,0BAAQ,GACjB,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,KAAuC,EAAE,EAAE,CAC5C,CAAO,KAAa,EAAiB,EAAE;QACnC,MAAM,UAAU,GAAqB,IAAI,mCAAgB,EAAE,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO;YAC7B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC3B,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE;YAClC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,IAAI,KAAK,MAAM;gBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtC,IAAI,IAAI,KAAK,MAAM;gBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnD;QAED,MAAM,OAAO,GAAW;YACpB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;iBAC1D,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;gBACvC,CAAC,CAAC;oBACI,MAAM,CAAC,SAAS,KAAK,KAAK;wBACtB,CAAC,CAAC,4BAA4B;wBAC9B,CAAC,CAAC,2CAA2C;oBACjD,EAAE;iBACL;gBACH,CAAC,CAAC,EAAE,CAAC;YACT,sBAAsB,cAAI;iBACrB,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;iBAClC,KAAK,CAAC,IAAI,CAAC;iBACX,IAAI,CAAC,GAAG,CAAC,IAAI;YAClB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,EAAE;YACF,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;YACpB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACvB,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EACpC,OAAO,EACP,MAAM,CACT,CAAC;IACN,CAAC,CAAA,CAAC;IAEN,MAAM,KAAK,GACP,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,KAAa,EAAU,EAAE;QACtB,MAAM,GAAG,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG;YACX,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG;YAC3B,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa;YACnC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/C,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI;SACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO;YACH,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY;YACvC,iCAAiC;YACjC,uBAAuB;YACvB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;gBAC5B,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC;gBACnB,CAAC,CAAC;oBACI,qBAAqB,SAAS,CAAC,MAAM,CAAC,CAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CACpB,KAAK;oBACN,WAAW,MAAM,EAAE;oBACnB,2BAA2B;iBAC9B,CAAC;YACR,IAAI;SACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEN,MAAM,SAAS,GACX,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,GAAW,EAAE,EAAE,CAChB,CAAC,KAAwB,EAAU,EAAE;;QACjC,MAAM,MAAM,GACR,KAAK,CAAC,QAAQ,KAAK,OAAO;YAC1B,KAAK,CAAC,MAAM;YACZ,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAI,MAAK,MAAM,IAAI,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAI,MAAK,MAAM,CAAC;YACxD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;gBACjB,CAAC,CAAC,+BAA+B,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI;gBACpD,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI;YAC5B,CAAC,CAAC,gBAAgB,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC;IAC9C,CAAC,CAAC;IAEN,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CACnC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CACvC,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExD,MAAM,SAAS,GACX,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,IAAY,EAAU,EAAE,CACrB,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,MAAM,aAAa,GAAG,CAClB,KAAwB,EACF,EAAE;QACxB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;YACnE,OAAO,IAAI,CAAC;aACX,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;aAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC,EA5GgB,iBAAiB,iCAAjB,iBAAiB,QA4GjC;AAED,MAAM,IAAI,GAAG;;;;;QAKL,CAAC;AACT,MAAM,IAAI,GAAG;;;;;;;EAOX,CAAC"}
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.SdkFileProgrammer = void 0;
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const ImportDictionary_1 = require("../../utils/ImportDictionary");
|
|
18
|
+
const MapUtil_1 = require("../../utils/MapUtil");
|
|
18
19
|
const SdkFunctionProgrammer_1 = require("./SdkFunctionProgrammer");
|
|
19
20
|
const SdkRouteDirectory_1 = require("./SdkRouteDirectory");
|
|
20
21
|
var SdkFileProgrammer;
|
|
@@ -27,36 +28,17 @@ var SdkFileProgrammer;
|
|
|
27
28
|
const root = new SdkRouteDirectory_1.SdkRouteDirectory(null, "functional");
|
|
28
29
|
for (const route of routeList)
|
|
29
30
|
emplace(root)(route);
|
|
30
|
-
// RELOCATE FOR ONLY ONE CONTROLLER METHOD IN AN URL CASE
|
|
31
|
-
relocate(root);
|
|
32
31
|
// ITERATE FILES
|
|
33
32
|
yield iterate(config)(root)(config.output + "/functional");
|
|
34
33
|
});
|
|
35
34
|
const emplace = (directory) => (route) => {
|
|
36
|
-
// SEPARATE IDENTIFIERS
|
|
37
|
-
const identifiers = route.path
|
|
38
|
-
.split("/")
|
|
39
|
-
.filter((str) => str.length && str[0] !== ":")
|
|
40
|
-
.map((str) => str.split("-").join("_").split(".").join("_"));
|
|
41
35
|
// OPEN DIRECTORIES
|
|
42
|
-
for (const key of
|
|
43
|
-
directory =
|
|
36
|
+
for (const key of route.accessors.slice(0, -1)) {
|
|
37
|
+
directory = MapUtil_1.MapUtil.take(directory.children, key, () => new SdkRouteDirectory_1.SdkRouteDirectory(directory, key));
|
|
44
38
|
}
|
|
45
39
|
// ADD ROUTE
|
|
46
40
|
directory.routes.push(route);
|
|
47
41
|
};
|
|
48
|
-
const relocate = (directory) => {
|
|
49
|
-
if (directory.parent !== null &&
|
|
50
|
-
directory.directories.empty() &&
|
|
51
|
-
directory.routes.length === 1 &&
|
|
52
|
-
directory.name === directory.routes[0].name) {
|
|
53
|
-
directory.parent.routes.push(directory.routes[0]);
|
|
54
|
-
directory.parent.directories.erase(directory.name);
|
|
55
|
-
}
|
|
56
|
-
else if (directory.directories.empty() === false)
|
|
57
|
-
for (const it of directory.directories)
|
|
58
|
-
relocate(it.second);
|
|
59
|
-
};
|
|
60
42
|
/* ---------------------------------------------------------
|
|
61
43
|
FILE ITERATOR
|
|
62
44
|
--------------------------------------------------------- */
|
|
@@ -68,9 +50,9 @@ var SdkFileProgrammer;
|
|
|
68
50
|
catch (_a) { }
|
|
69
51
|
// ITERATE CHILDREN
|
|
70
52
|
const content = [];
|
|
71
|
-
for (const
|
|
72
|
-
yield iterate(config)(
|
|
73
|
-
content.push(`export * as ${
|
|
53
|
+
for (const [key, value] of directory.children) {
|
|
54
|
+
yield iterate(config)(value)(`${outDir}/${key}`);
|
|
55
|
+
content.push(`export * as ${key} from "./${key}";`);
|
|
74
56
|
}
|
|
75
57
|
if (content.length && directory.routes.length)
|
|
76
58
|
content.push("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdkFileProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFileProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AAIpB,mEAAgE;AAChE,mEAAgE;AAChE,2DAAwD;AAExD,IAAiB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"SdkFileProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFileProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { HashMap } from "tstl";
|
|
2
1
|
import { IRoute } from "../../structures/IRoute";
|
|
3
2
|
export declare class SdkRouteDirectory {
|
|
4
3
|
readonly parent: SdkRouteDirectory | null;
|
|
5
4
|
readonly name: string;
|
|
6
5
|
readonly module: string;
|
|
7
|
-
readonly
|
|
6
|
+
readonly children: Map<string, SdkRouteDirectory>;
|
|
8
7
|
readonly routes: IRoute[];
|
|
9
8
|
constructor(parent: SdkRouteDirectory | null, name: string);
|
|
10
9
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SdkRouteDirectory = void 0;
|
|
4
|
-
const tstl_1 = require("tstl");
|
|
5
4
|
class SdkRouteDirectory {
|
|
6
5
|
constructor(parent, name) {
|
|
7
6
|
this.parent = parent;
|
|
8
7
|
this.name = name;
|
|
9
|
-
this.
|
|
8
|
+
this.children = new Map();
|
|
10
9
|
this.routes = [];
|
|
11
10
|
this.module =
|
|
12
11
|
this.parent !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdkRouteDirectory.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkRouteDirectory.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SdkRouteDirectory.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkRouteDirectory.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAK1B,YACa,MAAgC,EAChC,IAAY;QADZ,WAAM,GAAN,MAAM,CAA0B;QAChC,SAAI,GAAJ,IAAI,CAAQ;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM;YACP,IAAI,CAAC,MAAM,KAAK,IAAI;gBAChB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;gBACjC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC5B,CAAC;CACJ;AAhBD,8CAgBC"}
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import { Pair, Singleton } from "tstl";
|
|
|
5
5
|
import ts from "typescript";
|
|
6
6
|
|
|
7
7
|
import { INestiaConfig } from "./INestiaConfig";
|
|
8
|
+
import { AccessorAnalyzer } from "./analyses/AccessorAnalyzer";
|
|
8
9
|
import { ControllerAnalyzer } from "./analyses/ControllerAnalyzer";
|
|
9
10
|
import { ReflectAnalyzer } from "./analyses/ReflectAnalyzer";
|
|
10
11
|
import { NestiaConfigCompilerOptions } from "./executable/internal/NestiaConfigCompilerOptions";
|
|
@@ -210,6 +211,7 @@ export class NestiaSdkApplication {
|
|
|
210
211
|
}
|
|
211
212
|
|
|
212
213
|
// DO GENERATE
|
|
214
|
+
AccessorAnalyzer.analyze(routeList);
|
|
213
215
|
await archiver(checker)(config(this.config_))(routeList);
|
|
214
216
|
}
|
|
215
217
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Escaper } from "typia/lib/utils/Escaper";
|
|
2
|
+
|
|
3
|
+
import { IRoute } from "../structures/IRoute";
|
|
4
|
+
|
|
5
|
+
export namespace AccessorAnalyzer {
|
|
6
|
+
export const analyze = (routes: IRoute[]) => {
|
|
7
|
+
variable(routes);
|
|
8
|
+
shrink(routes);
|
|
9
|
+
for (const r of routes) r.name = r.accessors.at(-1) ?? r.name;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const prepare = (routeList: IRoute[]): Set<string> => {
|
|
13
|
+
const dict: Set<string> = new Set();
|
|
14
|
+
for (const route of routeList)
|
|
15
|
+
route.accessors.forEach((_a, i) =>
|
|
16
|
+
dict.add(route.accessors.slice(0, i + 1).join(".")),
|
|
17
|
+
);
|
|
18
|
+
return dict;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const variable = (routeList: IRoute[]) => {
|
|
22
|
+
const dict: Set<string> = prepare(routeList);
|
|
23
|
+
for (const route of routeList) {
|
|
24
|
+
route.accessors.forEach((accessor, i) => {
|
|
25
|
+
if (Escaper.variable(accessor)) return;
|
|
26
|
+
while (true) {
|
|
27
|
+
accessor = "$" + accessor;
|
|
28
|
+
const partial: string = [
|
|
29
|
+
...route.accessors.slice(0, i),
|
|
30
|
+
accessor,
|
|
31
|
+
].join(".");
|
|
32
|
+
if (dict.has(partial) === false) {
|
|
33
|
+
route.accessors[i] = accessor;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const shrink = (routeList: IRoute[]) => {
|
|
42
|
+
const dict: Set<string> = prepare(routeList);
|
|
43
|
+
for (const route of routeList) {
|
|
44
|
+
if (
|
|
45
|
+
route.accessors.length < 2 ||
|
|
46
|
+
route.accessors.at(-1) !== route.accessors.at(-2)
|
|
47
|
+
)
|
|
48
|
+
continue;
|
|
49
|
+
|
|
50
|
+
const cut: string[] = route.accessors.slice(0, -1);
|
|
51
|
+
if (dict.has(cut.join(".")) === true) continue;
|
|
52
|
+
|
|
53
|
+
route.accessors = cut;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -6,6 +6,7 @@ import { CommentFactory } from "typia/lib/factories/CommentFactory";
|
|
|
6
6
|
import { IController } from "../structures/IController";
|
|
7
7
|
import { IRoute } from "../structures/IRoute";
|
|
8
8
|
import { ITypeTuple } from "../structures/ITypeTuple";
|
|
9
|
+
import { PathUtil } from "../utils/PathUtil";
|
|
9
10
|
import { GenericAnalyzer } from "./GenericAnalyzer";
|
|
10
11
|
import { ImportAnalyzer } from "./ImportAnalyzer";
|
|
11
12
|
import { PathAnalyzer } from "./PathAnalyzer";
|
|
@@ -135,7 +136,7 @@ export namespace ControllerAnalyzer {
|
|
|
135
136
|
|
|
136
137
|
// CONSTRUCT COMMON DATA
|
|
137
138
|
const tags = signature.getJsDocTags();
|
|
138
|
-
const common: Omit<IRoute, "path"> = {
|
|
139
|
+
const common: Omit<IRoute, "path" | "accessors"> = {
|
|
139
140
|
...func,
|
|
140
141
|
parameters,
|
|
141
142
|
output: { ...outputType, contentType: func.contentType },
|
|
@@ -189,6 +190,7 @@ export namespace ControllerAnalyzer {
|
|
|
189
190
|
return pathList.map((path) => ({
|
|
190
191
|
...common,
|
|
191
192
|
path,
|
|
193
|
+
accessors: [...PathUtil.accessors(path), func.name],
|
|
192
194
|
}));
|
|
193
195
|
}
|
|
194
196
|
|
|
@@ -4,7 +4,6 @@ import path from "path";
|
|
|
4
4
|
import { INestiaConfig } from "../INestiaConfig";
|
|
5
5
|
import { IRoute } from "../structures/IRoute";
|
|
6
6
|
import { NestiaConfigUtil } from "../utils/NestiaConfigUtil";
|
|
7
|
-
import { PathUtil } from "../utils/PathUtil";
|
|
8
7
|
import { E2eFileProgrammer } from "./internal/E2eFileProgrammer";
|
|
9
8
|
|
|
10
9
|
export namespace E2eGenerator {
|
|
@@ -13,18 +12,6 @@ export namespace E2eGenerator {
|
|
|
13
12
|
async (routeList: IRoute[]): Promise<void> => {
|
|
14
13
|
console.log("Generating E2E Test Functions");
|
|
15
14
|
|
|
16
|
-
const pathDict: Map<string, number> = new Map();
|
|
17
|
-
for (const route of routeList) {
|
|
18
|
-
const sequence: string[] = PathUtil.accessors(route.path).map(
|
|
19
|
-
(_str, i, entire) => entire.slice(0, i + 1).join("/"),
|
|
20
|
-
);
|
|
21
|
-
for (const s of sequence) {
|
|
22
|
-
const count: number = pathDict.get(s) ?? 0;
|
|
23
|
-
pathDict.set(s, count + 1);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const counter = (path: string): number => pathDict.get(path) ?? 0;
|
|
27
|
-
|
|
28
15
|
// PREPARE DIRECTORIES
|
|
29
16
|
const output: string = path.resolve(config.e2e!);
|
|
30
17
|
await mkdir(output);
|
|
@@ -37,7 +24,7 @@ export namespace E2eGenerator {
|
|
|
37
24
|
|
|
38
25
|
// GENERATE EACH TEST FILES
|
|
39
26
|
for (const route of routeList)
|
|
40
|
-
await E2eFileProgrammer.generate(config)(
|
|
27
|
+
await E2eFileProgrammer.generate(config)({
|
|
41
28
|
api: path.resolve(config.output!),
|
|
42
29
|
current: path.join(output, "features", "api", "automated"),
|
|
43
30
|
})(route);
|
|
@@ -4,12 +4,10 @@ import path from "path";
|
|
|
4
4
|
import { INestiaConfig } from "../../INestiaConfig";
|
|
5
5
|
import { IRoute } from "../../structures/IRoute";
|
|
6
6
|
import { ImportDictionary } from "../../utils/ImportDictionary";
|
|
7
|
-
import { PathUtil } from "../../utils/PathUtil";
|
|
8
7
|
|
|
9
8
|
export namespace E2eFileProgrammer {
|
|
10
9
|
export const generate =
|
|
11
10
|
(config: INestiaConfig) =>
|
|
12
|
-
(counter: (path: string) => number) =>
|
|
13
11
|
(props: { api: string; current: string }) =>
|
|
14
12
|
async (route: IRoute): Promise<void> => {
|
|
15
13
|
const importDict: ImportDictionary = new ImportDictionary();
|
|
@@ -42,12 +40,12 @@ export namespace E2eFileProgrammer {
|
|
|
42
40
|
? []
|
|
43
41
|
: [importDict.toScript(props.current)]),
|
|
44
42
|
"",
|
|
45
|
-
arrow(config)(
|
|
43
|
+
arrow(config)(route),
|
|
46
44
|
...(additional.length ? ["", ...additional] : []),
|
|
47
45
|
].join("\n");
|
|
48
46
|
|
|
49
47
|
await fs.promises.writeFile(
|
|
50
|
-
`${props.current}/${name(
|
|
48
|
+
`${props.current}/${name(route)}.ts`,
|
|
51
49
|
content,
|
|
52
50
|
"utf8",
|
|
53
51
|
);
|
|
@@ -55,17 +53,16 @@ export namespace E2eFileProgrammer {
|
|
|
55
53
|
|
|
56
54
|
const arrow =
|
|
57
55
|
(config: INestiaConfig) =>
|
|
58
|
-
(counter: (path: string) => number) =>
|
|
59
56
|
(route: IRoute): string => {
|
|
60
57
|
const tab: number = route.output.name === "void" ? 2 : 3;
|
|
61
58
|
const output = [
|
|
62
|
-
`await ${accessor(
|
|
59
|
+
`await ${accessor(route)}(`,
|
|
63
60
|
`${" ".repeat(tab * 4)}connection,`,
|
|
64
61
|
...route.parameters.map(parameter(config)(tab)),
|
|
65
62
|
`${" ".repeat((tab - 1) * 4)});`,
|
|
66
63
|
].join("\n");
|
|
67
64
|
return [
|
|
68
|
-
`export const ${name(
|
|
65
|
+
`export const ${name(route)} = async (`,
|
|
69
66
|
` connection: api.IConnection`,
|
|
70
67
|
`): Promise<void> => {`,
|
|
71
68
|
...(route.output.name === "void"
|
|
@@ -96,29 +93,11 @@ export namespace E2eFileProgrammer {
|
|
|
96
93
|
return `${" ".repeat(4 * tab)}${middle},`;
|
|
97
94
|
};
|
|
98
95
|
|
|
99
|
-
const name =
|
|
100
|
-
|
|
101
|
-
(route: IRoute): string =>
|
|
102
|
-
"test_api_" +
|
|
103
|
-
postfix(counter)(PathUtil.accessors(route.path))(route.name).join(
|
|
104
|
-
"_",
|
|
105
|
-
);
|
|
106
|
-
|
|
107
|
-
const accessor =
|
|
108
|
-
(counter: (path: string) => number) =>
|
|
109
|
-
(route: IRoute): string =>
|
|
110
|
-
"api.functional." +
|
|
111
|
-
postfix(counter)(PathUtil.accessors(route.path))(route.name).join(
|
|
112
|
-
".",
|
|
113
|
-
);
|
|
96
|
+
const name = (route: IRoute): string =>
|
|
97
|
+
["test", "api", ...route.accessors].join("_");
|
|
114
98
|
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
(array: string[]) =>
|
|
118
|
-
(name: string) =>
|
|
119
|
-
array.at(-1) === name && counter(array.join("/")) < 2
|
|
120
|
-
? array
|
|
121
|
-
: [...array, name];
|
|
99
|
+
const accessor = (route: IRoute): string =>
|
|
100
|
+
["api", "functional", ...route.accessors].join(".");
|
|
122
101
|
|
|
123
102
|
const primitive =
|
|
124
103
|
(config: INestiaConfig) =>
|
|
@@ -3,6 +3,7 @@ import fs from "fs";
|
|
|
3
3
|
import { INestiaConfig } from "../../INestiaConfig";
|
|
4
4
|
import { IRoute } from "../../structures/IRoute";
|
|
5
5
|
import { ImportDictionary } from "../../utils/ImportDictionary";
|
|
6
|
+
import { MapUtil } from "../../utils/MapUtil";
|
|
6
7
|
import { SdkFunctionProgrammer } from "./SdkFunctionProgrammer";
|
|
7
8
|
import { SdkRouteDirectory } from "./SdkRouteDirectory";
|
|
8
9
|
|
|
@@ -20,9 +21,6 @@ export namespace SdkFileProgrammer {
|
|
|
20
21
|
);
|
|
21
22
|
for (const route of routeList) emplace(root)(route);
|
|
22
23
|
|
|
23
|
-
// RELOCATE FOR ONLY ONE CONTROLLER METHOD IN AN URL CASE
|
|
24
|
-
relocate(root);
|
|
25
|
-
|
|
26
24
|
// ITERATE FILES
|
|
27
25
|
await iterate(config)(root)(config.output + "/functional");
|
|
28
26
|
};
|
|
@@ -30,15 +28,10 @@ export namespace SdkFileProgrammer {
|
|
|
30
28
|
const emplace =
|
|
31
29
|
(directory: SdkRouteDirectory) =>
|
|
32
30
|
(route: IRoute): void => {
|
|
33
|
-
// SEPARATE IDENTIFIERS
|
|
34
|
-
const identifiers: string[] = route.path
|
|
35
|
-
.split("/")
|
|
36
|
-
.filter((str) => str.length && str[0] !== ":")
|
|
37
|
-
.map((str) => str.split("-").join("_").split(".").join("_"));
|
|
38
|
-
|
|
39
31
|
// OPEN DIRECTORIES
|
|
40
|
-
for (const key of
|
|
41
|
-
directory =
|
|
32
|
+
for (const key of route.accessors.slice(0, -1)) {
|
|
33
|
+
directory = MapUtil.take(
|
|
34
|
+
directory.children,
|
|
42
35
|
key,
|
|
43
36
|
() => new SdkRouteDirectory(directory, key),
|
|
44
37
|
);
|
|
@@ -48,19 +41,6 @@ export namespace SdkFileProgrammer {
|
|
|
48
41
|
directory.routes.push(route);
|
|
49
42
|
};
|
|
50
43
|
|
|
51
|
-
const relocate = (directory: SdkRouteDirectory): void => {
|
|
52
|
-
if (
|
|
53
|
-
directory.parent !== null &&
|
|
54
|
-
directory.directories.empty() &&
|
|
55
|
-
directory.routes.length === 1 &&
|
|
56
|
-
directory.name === directory.routes[0].name
|
|
57
|
-
) {
|
|
58
|
-
directory.parent.routes.push(directory.routes[0]);
|
|
59
|
-
directory.parent.directories.erase(directory.name);
|
|
60
|
-
} else if (directory.directories.empty() === false)
|
|
61
|
-
for (const it of directory.directories) relocate(it.second);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
44
|
/* ---------------------------------------------------------
|
|
65
45
|
FILE ITERATOR
|
|
66
46
|
--------------------------------------------------------- */
|
|
@@ -75,9 +55,9 @@ export namespace SdkFileProgrammer {
|
|
|
75
55
|
|
|
76
56
|
// ITERATE CHILDREN
|
|
77
57
|
const content: string[] = [];
|
|
78
|
-
for (const
|
|
79
|
-
await iterate(config)(
|
|
80
|
-
content.push(`export * as ${
|
|
58
|
+
for (const [key, value] of directory.children) {
|
|
59
|
+
await iterate(config)(value)(`${outDir}/${key}`);
|
|
60
|
+
content.push(`export * as ${key} from "./${key}";`);
|
|
81
61
|
}
|
|
82
62
|
if (content.length && directory.routes.length) content.push("");
|
|
83
63
|
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { HashMap } from "tstl";
|
|
2
|
-
|
|
3
1
|
import { IRoute } from "../../structures/IRoute";
|
|
4
2
|
|
|
5
3
|
export class SdkRouteDirectory {
|
|
6
4
|
public readonly module: string;
|
|
7
|
-
public readonly
|
|
5
|
+
public readonly children: Map<string, SdkRouteDirectory>;
|
|
8
6
|
public readonly routes: IRoute[];
|
|
9
7
|
|
|
10
8
|
public constructor(
|
|
11
9
|
readonly parent: SdkRouteDirectory | null,
|
|
12
10
|
readonly name: string,
|
|
13
11
|
) {
|
|
14
|
-
this.
|
|
12
|
+
this.children = new Map();
|
|
15
13
|
this.routes = [];
|
|
16
14
|
this.module =
|
|
17
15
|
this.parent !== null
|