@nestia/sdk 3.11.0-dev.20240814-2 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/NestiaSdkApplication.js +16 -9
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/executable/internal/NestiaConfigLoader.d.ts +1 -1
- package/lib/executable/internal/NestiaConfigLoader.js +35 -24
- package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.js +51 -11
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/generates/E2eGenerator.js +0 -10
- package/lib/generates/E2eGenerator.js.map +1 -1
- package/package.json +5 -5
- package/src/NestiaSdkApplication.ts +18 -8
- package/src/executable/internal/NestiaConfigLoader.ts +10 -7
- package/src/executable/internal/NestiaSdkCommand.ts +73 -21
- package/src/generates/E2eGenerator.ts +0 -31
|
@@ -39,14 +39,21 @@ class NestiaSdkApplication {
|
|
|
39
39
|
if (!this.config.output &&
|
|
40
40
|
!((_a = this.config.swagger) === null || _a === void 0 ? void 0 : _a.output) &&
|
|
41
41
|
!((_b = this.config.openai) === null || _b === void 0 ? void 0 : _b.output))
|
|
42
|
-
throw new Error(
|
|
42
|
+
throw new Error([
|
|
43
|
+
"Error on NestiaApplication.all(): nothing to generate, configure at least one property of below:",
|
|
44
|
+
"",
|
|
45
|
+
" - INestiaConfig.output",
|
|
46
|
+
" - INestiaConfig.swagger.output",
|
|
47
|
+
" - INestiaConfig.openai.output",
|
|
48
|
+
].join("\n"));
|
|
43
49
|
print_title("Nestia All Generator");
|
|
44
50
|
yield this.generate({
|
|
45
51
|
generate: (app) => __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
if (this.config.output)
|
|
52
|
+
if (this.config.output) {
|
|
47
53
|
yield SdkGenerator_1.SdkGenerator.generate(app);
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
if (this.config.e2e)
|
|
55
|
+
yield E2eGenerator_1.E2eGenerator.generate(app);
|
|
56
|
+
}
|
|
50
57
|
if (this.config.swagger)
|
|
51
58
|
yield SwaggerGenerator_1.SwaggerGenerator.generate(app);
|
|
52
59
|
if (this.config.openai)
|
|
@@ -58,9 +65,9 @@ class NestiaSdkApplication {
|
|
|
58
65
|
e2e() {
|
|
59
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
67
|
if (!this.config.output)
|
|
61
|
-
throw new Error("Error on NestiaApplication.e2e(): output
|
|
68
|
+
throw new Error("Error on NestiaApplication.e2e(): configure INestiaConfig.output property.");
|
|
62
69
|
else if (!this.config.e2e)
|
|
63
|
-
throw new Error("Error on NestiaApplication.e2e():
|
|
70
|
+
throw new Error("Error on NestiaApplication.e2e(): configure INestiaConfig.e2e property.");
|
|
64
71
|
const validate = (title) => (location) => __awaiter(this, void 0, void 0, function* () {
|
|
65
72
|
const parent = path_1.default.resolve(location + "/..");
|
|
66
73
|
const stats = yield fs_1.default.promises.lstat(parent);
|
|
@@ -81,7 +88,7 @@ class NestiaSdkApplication {
|
|
|
81
88
|
sdk() {
|
|
82
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
90
|
if (!this.config.output)
|
|
84
|
-
throw new Error("Error on NestiaApplication.sdk(): output
|
|
91
|
+
throw new Error("Error on NestiaApplication.sdk(): configure INestiaConfig.output property.");
|
|
85
92
|
const parent = path_1.default.resolve(this.config.output + "/..");
|
|
86
93
|
const stats = yield fs_1.default.promises.lstat(parent);
|
|
87
94
|
if (stats.isDirectory() === false)
|
|
@@ -97,7 +104,7 @@ class NestiaSdkApplication {
|
|
|
97
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
105
|
var _a;
|
|
99
106
|
if (!((_a = this.config.swagger) === null || _a === void 0 ? void 0 : _a.output))
|
|
100
|
-
throw new Error(`Error on NestiaApplication.swagger():
|
|
107
|
+
throw new Error(`Error on NestiaApplication.swagger(): configure INestiaConfig.swagger property.`);
|
|
101
108
|
const parsed = path_1.default.parse(this.config.swagger.output);
|
|
102
109
|
const directory = !!parsed.ext
|
|
103
110
|
? path_1.default.resolve(parsed.dir)
|
|
@@ -115,7 +122,7 @@ class NestiaSdkApplication {
|
|
|
115
122
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
123
|
var _a;
|
|
117
124
|
if (!((_a = this.config.openai) === null || _a === void 0 ? void 0 : _a.output))
|
|
118
|
-
throw new Error(`Error on NestiaApplication.openai():
|
|
125
|
+
throw new Error(`Error on NestiaApplication.openai(): configure INestiaConfig.openai property.`);
|
|
119
126
|
const parsed = path_1.default.parse(this.config.openai.output);
|
|
120
127
|
const directory = !!parsed.ext
|
|
121
128
|
? path_1.default.resolve(parsed.dir)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,+BAA8C;AAI9C,kEAA+D;AAC/D,8DAA2D;AAC3D,0DAAuD;AACvD,oFAAiF;AACjF,8EAA2E;AAC3E,wFAAqF;AACrF,2DAAwD;AACxD,iEAA8D;AAC9D,2DAAwD;AACxD,mEAAgE;AAGhE,gFAA6E;AAK7E,mDAAgD;AAChD,mEAAgE;AAEhE,MAAa,oBAAoB;IAC/B,YAAoC,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEhD,GAAG;;;YACd,IACE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBACnB,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,MAAM,CAAA;gBAC5B,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,MAAM,CAAA;gBAE3B,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"NestiaSdkApplication.js","sourceRoot":"","sources":["../src/NestiaSdkApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import ts from "typescript";
|
|
|
2
2
|
import { INestiaConfig } from "../../INestiaConfig";
|
|
3
3
|
export declare namespace NestiaConfigLoader {
|
|
4
4
|
const compilerOptions: (project: string) => Promise<ts.ParsedCommandLine>;
|
|
5
|
-
const
|
|
5
|
+
const configurations: (file: string, compilerOptions: Record<string, any>) => Promise<INestiaConfig[]>;
|
|
6
6
|
}
|
|
@@ -53,7 +53,7 @@ var NestiaConfigLoader;
|
|
|
53
53
|
const { config } = typescript_1.default.parseConfigFileTextToJson(configFileName, configFileText);
|
|
54
54
|
return typescript_1.default.parseJsonConfigFileContent(config, typescript_1.default.sys, path_1.default.dirname(configFileName));
|
|
55
55
|
});
|
|
56
|
-
NestiaConfigLoader.
|
|
56
|
+
NestiaConfigLoader.configurations = (file, compilerOptions) => __awaiter(this, void 0, void 0, function* () {
|
|
57
57
|
var _a;
|
|
58
58
|
if (fs_1.default.existsSync(path_1.default.resolve(file)) === false)
|
|
59
59
|
throw new Error(`Unable to find "${file}" file.`);
|
|
@@ -94,9 +94,12 @@ var NestiaConfigLoader;
|
|
|
94
94
|
: undefined,
|
|
95
95
|
});
|
|
96
96
|
const loaded = yield Promise.resolve(`${path_1.default.resolve(file)}`).then(s => __importStar(require(s)));
|
|
97
|
-
const
|
|
97
|
+
const instance = typeof (loaded === null || loaded === void 0 ? void 0 : loaded.default) === "object" && loaded.default !== null
|
|
98
98
|
? loaded.default
|
|
99
99
|
: loaded;
|
|
100
|
+
const configurations = Array.isArray(instance)
|
|
101
|
+
? instance
|
|
102
|
+
: [instance];
|
|
100
103
|
try {
|
|
101
104
|
return (() => { const $guard = typia_1.default.assert.guard; const $join = typia_1.default.assert.join; const $io0 = input => null !== input.input && undefined !== input.input && ("function" === typeof input.input || "string" === typeof input.input || (Array.isArray(input.input) && input.input.every(elem => "string" === typeof elem) || "object" === typeof input.input && null !== input.input && $io1(input.input))) && (undefined === input.swagger || "object" === typeof input.swagger && null !== input.swagger && $io2(input.swagger)) && (undefined === input.openai || "object" === typeof input.openai && null !== input.openai && $io21(input.openai)) && (undefined === input.output || "string" === typeof input.output) && (undefined === input.distribute || "string" === typeof input.distribute) && (undefined === input.simulate || "boolean" === typeof input.simulate) && (undefined === input.e2e || "string" === typeof input.e2e) && (undefined === input.propagate || "boolean" === typeof input.propagate) && (undefined === input.clone || "boolean" === typeof input.clone) && (undefined === input.primitive || "boolean" === typeof input.primitive) && (undefined === input.assert || "boolean" === typeof input.assert) && (undefined === input.json || "boolean" === typeof input.json); const $io1 = input => Array.isArray(input.include) && input.include.every(elem => "string" === typeof elem) && (undefined === input.exclude || Array.isArray(input.exclude) && input.exclude.every(elem => "string" === typeof elem)); const $io2 = input => "string" === typeof input.output && (undefined === input.openapi || "2.0" === input.openapi || "3.0" === input.openapi || "3.1" === input.openapi) && (undefined === input.beautify || "number" === typeof input.beautify || "boolean" === typeof input.beautify) && (undefined === input.additional || "boolean" === typeof input.additional) && (undefined === input.info || "object" === typeof input.info && null !== input.info && false === Array.isArray(input.info) && $io3(input.info)) && (undefined === input.servers || Array.isArray(input.servers) && input.servers.every(elem => "object" === typeof elem && null !== elem && $io6(elem))) && (undefined === input.security || "object" === typeof input.security && null !== input.security && false === Array.isArray(input.security) && $io9(input.security)) && (undefined === input.tags || Array.isArray(input.tags) && input.tags.every(elem => "object" === typeof elem && null !== elem && $io20(elem))) && (undefined === input.decompose || "boolean" === typeof input.decompose); const $io3 = input => (undefined === input.title || "string" === typeof input.title) && (undefined === input.summary || "string" === typeof input.summary) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.termsOfService || "string" === typeof input.termsOfService) && (undefined === input.contact || "object" === typeof input.contact && null !== input.contact && false === Array.isArray(input.contact) && $io4(input.contact)) && (undefined === input.license || "object" === typeof input.license && null !== input.license && $io5(input.license)) && (undefined === input.version || "string" === typeof input.version); const $io4 = input => (undefined === input.name || "string" === typeof input.name) && (undefined === input.url || "string" === typeof input.url) && (undefined === input.email || "string" === typeof input.email && /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(input.email)); const $io5 = input => "string" === typeof input.name && (undefined === input.identifier || "string" === typeof input.identifier) && (undefined === input.url || "string" === typeof input.url); const $io6 = input => "string" === typeof input.url && (undefined === input.description || "string" === typeof input.description) && (undefined === input.variables || "object" === typeof input.variables && null !== input.variables && false === Array.isArray(input.variables) && $io7(input.variables)); const $io7 = input => Object.keys(input).every(key => {
|
|
102
105
|
const value = input[key];
|
|
@@ -134,8 +137,8 @@ var NestiaConfigLoader;
|
|
|
134
137
|
path: _path + ".input",
|
|
135
138
|
expected: "(Array<string> | INestiaConfig.IInput | string)",
|
|
136
139
|
value: input.input
|
|
137
|
-
}, _errorFactory)) && ("function" === typeof input.input || "string" === typeof input.input || (Array.isArray(input.input) && input.input.every((elem,
|
|
138
|
-
path: _path + ".input[" +
|
|
140
|
+
}, _errorFactory)) && ("function" === typeof input.input || "string" === typeof input.input || (Array.isArray(input.input) && input.input.every((elem, _index9) => "string" === typeof elem || $guard(_exceptionable, {
|
|
141
|
+
path: _path + ".input[" + _index9 + "]",
|
|
139
142
|
expected: "string",
|
|
140
143
|
value: elem
|
|
141
144
|
}, _errorFactory)) || "object" === typeof input.input && null !== input.input && $ao1(input.input, _path + ".input", true && _exceptionable) || $guard(_exceptionable, {
|
|
@@ -202,8 +205,8 @@ var NestiaConfigLoader;
|
|
|
202
205
|
path: _path + ".include",
|
|
203
206
|
expected: "Array<string>",
|
|
204
207
|
value: input.include
|
|
205
|
-
}, _errorFactory)) && input.include.every((elem,
|
|
206
|
-
path: _path + ".include[" +
|
|
208
|
+
}, _errorFactory)) && input.include.every((elem, _index10) => "string" === typeof elem || $guard(_exceptionable, {
|
|
209
|
+
path: _path + ".include[" + _index10 + "]",
|
|
207
210
|
expected: "string",
|
|
208
211
|
value: elem
|
|
209
212
|
}, _errorFactory)) || $guard(_exceptionable, {
|
|
@@ -214,8 +217,8 @@ var NestiaConfigLoader;
|
|
|
214
217
|
path: _path + ".exclude",
|
|
215
218
|
expected: "(Array<string> | undefined)",
|
|
216
219
|
value: input.exclude
|
|
217
|
-
}, _errorFactory)) && input.exclude.every((elem,
|
|
218
|
-
path: _path + ".exclude[" +
|
|
220
|
+
}, _errorFactory)) && input.exclude.every((elem, _index11) => "string" === typeof elem || $guard(_exceptionable, {
|
|
221
|
+
path: _path + ".exclude[" + _index11 + "]",
|
|
219
222
|
expected: "string",
|
|
220
223
|
value: elem
|
|
221
224
|
}, _errorFactory)) || $guard(_exceptionable, {
|
|
@@ -250,12 +253,12 @@ var NestiaConfigLoader;
|
|
|
250
253
|
path: _path + ".servers",
|
|
251
254
|
expected: "(Array<OpenApi.IServer> | undefined)",
|
|
252
255
|
value: input.servers
|
|
253
|
-
}, _errorFactory)) && input.servers.every((elem,
|
|
254
|
-
path: _path + ".servers[" +
|
|
256
|
+
}, _errorFactory)) && input.servers.every((elem, _index12) => ("object" === typeof elem && null !== elem || $guard(_exceptionable, {
|
|
257
|
+
path: _path + ".servers[" + _index12 + "]",
|
|
255
258
|
expected: "OpenApi.IServer",
|
|
256
259
|
value: elem
|
|
257
|
-
}, _errorFactory)) && $ao6(elem, _path + ".servers[" +
|
|
258
|
-
path: _path + ".servers[" +
|
|
260
|
+
}, _errorFactory)) && $ao6(elem, _path + ".servers[" + _index12 + "]", true && _exceptionable) || $guard(_exceptionable, {
|
|
261
|
+
path: _path + ".servers[" + _index12 + "]",
|
|
259
262
|
expected: "OpenApi.IServer",
|
|
260
263
|
value: elem
|
|
261
264
|
}, _errorFactory)) || $guard(_exceptionable, {
|
|
@@ -274,12 +277,12 @@ var NestiaConfigLoader;
|
|
|
274
277
|
path: _path + ".tags",
|
|
275
278
|
expected: "(Array<OpenApi.IDocument.ITag> | undefined)",
|
|
276
279
|
value: input.tags
|
|
277
|
-
}, _errorFactory)) && input.tags.every((elem,
|
|
278
|
-
path: _path + ".tags[" +
|
|
280
|
+
}, _errorFactory)) && input.tags.every((elem, _index13) => ("object" === typeof elem && null !== elem || $guard(_exceptionable, {
|
|
281
|
+
path: _path + ".tags[" + _index13 + "]",
|
|
279
282
|
expected: "OpenApi.IDocument.ITag",
|
|
280
283
|
value: elem
|
|
281
|
-
}, _errorFactory)) && $ao20(elem, _path + ".tags[" +
|
|
282
|
-
path: _path + ".tags[" +
|
|
284
|
+
}, _errorFactory)) && $ao20(elem, _path + ".tags[" + _index13 + "]", true && _exceptionable) || $guard(_exceptionable, {
|
|
285
|
+
path: _path + ".tags[" + _index13 + "]",
|
|
283
286
|
expected: "OpenApi.IDocument.ITag",
|
|
284
287
|
value: elem
|
|
285
288
|
}, _errorFactory)) || $guard(_exceptionable, {
|
|
@@ -391,8 +394,8 @@ var NestiaConfigLoader;
|
|
|
391
394
|
path: _path + "[\"enum\"]",
|
|
392
395
|
expected: "(Array<string> | undefined)",
|
|
393
396
|
value: input["enum"]
|
|
394
|
-
}, _errorFactory)) && input["enum"].every((elem,
|
|
395
|
-
path: _path + "[\"enum\"][" +
|
|
397
|
+
}, _errorFactory)) && input["enum"].every((elem, _index14) => "string" === typeof elem || $guard(_exceptionable, {
|
|
398
|
+
path: _path + "[\"enum\"][" + _index14 + "]",
|
|
396
399
|
expected: "string",
|
|
397
400
|
value: elem
|
|
398
401
|
}, _errorFactory)) || $guard(_exceptionable, {
|
|
@@ -622,21 +625,29 @@ var NestiaConfigLoader;
|
|
|
622
625
|
expected: "(OpenApi.ISecurityScheme.IApiKey | OpenApi.ISecurityScheme.IHttpBasic | OpenApi.ISecurityScheme.IHttpBearer | OpenApi.ISecurityScheme.IOAuth2 | OpenApi.ISecurityScheme.IOpenId)",
|
|
623
626
|
value: input
|
|
624
627
|
}, _errorFactory);
|
|
625
|
-
})(); const __is = input => "object" === typeof
|
|
628
|
+
})(); const __is = input => Array.isArray(input) && input.every(elem => "object" === typeof elem && null !== elem && $io0(elem)); let _errorFactory; return (input, errorFactory) => {
|
|
626
629
|
if (false === __is(input)) {
|
|
627
630
|
_errorFactory = errorFactory;
|
|
628
|
-
((input, _path, _exceptionable = true) => (
|
|
631
|
+
((input, _path, _exceptionable = true) => (Array.isArray(input) || $guard(true, {
|
|
629
632
|
path: _path + "",
|
|
630
|
-
expected: "INestiaConfig",
|
|
633
|
+
expected: "Array<INestiaConfig>",
|
|
631
634
|
value: input
|
|
632
|
-
}, _errorFactory)) &&
|
|
633
|
-
path: _path + "",
|
|
635
|
+
}, _errorFactory)) && input.every((elem, _index8) => ("object" === typeof elem && null !== elem || $guard(true, {
|
|
636
|
+
path: _path + "[" + _index8 + "]",
|
|
637
|
+
expected: "INestiaConfig",
|
|
638
|
+
value: elem
|
|
639
|
+
}, _errorFactory)) && $ao0(elem, _path + "[" + _index8 + "]", true) || $guard(true, {
|
|
640
|
+
path: _path + "[" + _index8 + "]",
|
|
634
641
|
expected: "INestiaConfig",
|
|
642
|
+
value: elem
|
|
643
|
+
}, _errorFactory)) || $guard(true, {
|
|
644
|
+
path: _path + "",
|
|
645
|
+
expected: "Array<INestiaConfig>",
|
|
635
646
|
value: input
|
|
636
647
|
}, _errorFactory))(input, "$input", true);
|
|
637
648
|
}
|
|
638
649
|
return input;
|
|
639
|
-
}; })()(
|
|
650
|
+
}; })()(configurations);
|
|
640
651
|
}
|
|
641
652
|
catch (exp) {
|
|
642
653
|
if ((() => { const $io0 = input => "string" === typeof input.method && (undefined === input.path || "string" === typeof input.path) && "string" === typeof input.expected && true && true && "string" === typeof input.name && "string" === typeof input.message && (undefined === input.stack || "string" === typeof input.stack); return input => "object" === typeof input && null !== input && $io0(input); })()(exp))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaConfigLoader.js","sourceRoot":"","sources":["../../../src/executable/internal/NestiaConfigLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,qCAAmC;AACnC,uCAAiC;AACjC,4DAA4B;AAC5B,kDAA0B;AAI1B,IAAiB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"NestiaConfigLoader.js","sourceRoot":"","sources":["../../../src/executable/internal/NestiaConfigLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,qCAAmC;AACnC,uCAAiC;AACjC,4DAA4B;AAC5B,kDAA0B;AAI1B,IAAiB,kBAAkB,CAuElC;AAvED,WAAiB,kBAAkB;IACpB,kCAAe,GAAG,CAC7B,OAAe,EACgB,EAAE;QACjC,MAAM,cAAc,GAAG,oBAAE,CAAC,cAAc,CACtC,OAAO,CAAC,GAAG,EAAE,EACb,oBAAE,CAAC,GAAG,CAAC,UAAU,EACjB,OAAO,CACR,CAAC;QACF,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,SAAS,CAAC,CAAC;QAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,gBAAK,EAAC,cAAc,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAE,CAAC,yBAAyB,CAC7C,cAAc,EACd,cAAc,CACf,CAAC;QACF,OAAO,oBAAE,CAAC,0BAA0B,CAClC,MAAM,EACN,oBAAE,CAAC,GAAG,EACN,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAC7B,CAAC;IACJ,CAAC,CAAA,CAAC;IAEW,iCAAc,GAAG,CAC5B,IAAY,EACZ,eAAoC,EACV,EAAE;;QAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;YAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,SAAS,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAU;YACrB,GAAG,wBAAA,eAAK;iBACL,MAAM;;;;;;;;;;;;;;;;;;;;;;oBAAW,MAAA,eAAe,CAAC,OAAO,mCAAI,EAAE,EAC9C,MAAM,CACL,CAAC,CAAM,EAAE,EAAE,CACT,CAAC,CAAC,SAAS,KAAK,4BAA4B;gBAC5C,CAAC,CAAC,SAAS,KAAK,2BAA2B,CAC9C;YACH,EAAE,SAAS,EAAE,4BAA4B,EAAE;YAC3C,EAAE,SAAS,EAAE,2BAA2B,EAAE;SAC3C,CAAC;QACF,IAAA,kBAAQ,EAAC;YACP,IAAI,EAAE,KAAK;YACX,eAAe,kCACV,eAAe,KAClB,OAAO,GACR;YACD,OAAO,EAAE,eAAe,CAAC,OAAO;gBAC9B,CAAC,CAAC,CAAC,yBAAyB,CAAC;gBAC7B,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QAEH,MAAM,MAAM,GAER,yBAAa,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAC,CAAC;QACrC,MAAM,QAAQ,GACZ,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;YAC5D,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,cAAc,GAAoB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC7D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,+BAAO,eAAK,CAAC,MAAM,sBAAZ,eAAK,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAC,cAAc,EAAE;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qZAAmC,GAAG;gBACpC,GAAG,CAAC,OAAO,GAAG,YAAY,IAAI,SAAS,CAAC;YAC1C,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,EAvEgB,kBAAkB,kCAAlB,kBAAkB,QAuElC"}
|
|
@@ -14,28 +14,68 @@ const NestiaSdkApplication_1 = require("../../NestiaSdkApplication");
|
|
|
14
14
|
const NestiaConfigLoader_1 = require("./NestiaConfigLoader");
|
|
15
15
|
var NestiaSdkCommand;
|
|
16
16
|
(function (NestiaSdkCommand) {
|
|
17
|
-
NestiaSdkCommand.sdk = () => main(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const main = (task) => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
yield _Generate(task);
|
|
17
|
+
NestiaSdkCommand.sdk = () => main({
|
|
18
|
+
title: "SDK library",
|
|
19
|
+
generate: (app) => app.sdk(),
|
|
20
|
+
validate: (config) => !!config.output,
|
|
21
|
+
solution: "configure INestiaConfig.output property.",
|
|
24
22
|
});
|
|
25
|
-
|
|
23
|
+
NestiaSdkCommand.swagger = () => main({
|
|
24
|
+
title: "Swagger Document",
|
|
25
|
+
generate: (app) => app.swagger(),
|
|
26
|
+
validate: (config) => { var _a; return !!((_a = config.swagger) === null || _a === void 0 ? void 0 : _a.output); },
|
|
27
|
+
solution: "configure INestiaConfig.swagger property.",
|
|
28
|
+
});
|
|
29
|
+
NestiaSdkCommand.openai = () => main({
|
|
30
|
+
title: "OpenAI Function Calling Schema",
|
|
31
|
+
generate: (app) => app.openai(),
|
|
32
|
+
validate: (config) => { var _a; return !!((_a = config.openai) === null || _a === void 0 ? void 0 : _a.output); },
|
|
33
|
+
solution: "configure INestiaConfig.openai property.",
|
|
34
|
+
});
|
|
35
|
+
NestiaSdkCommand.e2e = () => main({
|
|
36
|
+
title: "E2E Functions",
|
|
37
|
+
generate: (app) => app.e2e(),
|
|
38
|
+
validate: (config) => !!config.e2e,
|
|
39
|
+
solution: [
|
|
40
|
+
"configure two properties:",
|
|
41
|
+
"",
|
|
42
|
+
" - INestiaConfig.output",
|
|
43
|
+
" - INestiaConfig.e2e",
|
|
44
|
+
].join("\n"),
|
|
45
|
+
});
|
|
46
|
+
NestiaSdkCommand.all = () => main({
|
|
47
|
+
title: "everything",
|
|
48
|
+
generate: (app) => app.all(),
|
|
49
|
+
validate: () => true,
|
|
50
|
+
solution: [
|
|
51
|
+
"configure at laest one property of below:",
|
|
52
|
+
"",
|
|
53
|
+
" - INestiaConfig.output",
|
|
54
|
+
" - INestiaConfig.swagger.output",
|
|
55
|
+
" - INestiaConfig.openai.output",
|
|
56
|
+
].join("\n"),
|
|
57
|
+
});
|
|
58
|
+
const main = (props) => __awaiter(this, void 0, void 0, function* () {
|
|
26
59
|
var _a, _b;
|
|
27
60
|
// LOAD CONFIG INFO
|
|
28
61
|
const command = yield NestiaConfigLoader_1.NestiaConfigLoader.compilerOptions((_a = getFileArgument({
|
|
29
62
|
type: "project",
|
|
30
63
|
extension: "json",
|
|
31
64
|
})) !== null && _a !== void 0 ? _a : "tsconfig.json");
|
|
32
|
-
const
|
|
65
|
+
const configurations = yield NestiaConfigLoader_1.NestiaConfigLoader.configurations((_b = getFileArgument({
|
|
33
66
|
type: "config",
|
|
34
67
|
extension: "ts",
|
|
35
68
|
})) !== null && _b !== void 0 ? _b : "nestia.config.ts", command.raw.compilerOptions);
|
|
36
69
|
// GENERATE
|
|
37
|
-
|
|
38
|
-
|
|
70
|
+
if (configurations.length > 1 &&
|
|
71
|
+
configurations.some(props.validate) === false)
|
|
72
|
+
throw new Error(`Every configurations are invalid to generate ${props.title}, ${props.solution}`);
|
|
73
|
+
for (const config of configurations) {
|
|
74
|
+
if (configurations.length > 1 && props.validate(config) === false)
|
|
75
|
+
continue;
|
|
76
|
+
const app = new NestiaSdkApplication_1.NestiaSdkApplication(config);
|
|
77
|
+
yield props.generate(app);
|
|
78
|
+
}
|
|
39
79
|
});
|
|
40
80
|
const getFileArgument = (props) => {
|
|
41
81
|
const argv = process.argv.slice(3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaSdkCommand.js","sourceRoot":"","sources":["../../../src/executable/internal/NestiaSdkCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,qEAAkE;AAClE,6DAA0D;AAE1D,IAAiB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"NestiaSdkCommand.js","sourceRoot":"","sources":["../../../src/executable/internal/NestiaSdkCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.E2eGenerator = void 0;
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
|
-
const ConfigAnalyzer_1 = require("../analyses/ConfigAnalyzer");
|
|
19
18
|
const E2eFileProgrammer_1 = require("./internal/E2eFileProgrammer");
|
|
20
19
|
var E2eGenerator;
|
|
21
20
|
(function (E2eGenerator) {
|
|
@@ -27,8 +26,6 @@ var E2eGenerator;
|
|
|
27
26
|
yield mkdir(path_1.default.join(output, "features"));
|
|
28
27
|
yield mkdir(path_1.default.join(output, "features", "api"));
|
|
29
28
|
yield mkdir(path_1.default.join(output, "features", "api", "automated"));
|
|
30
|
-
// GENERATE TEST INDEX FILE
|
|
31
|
-
yield index(app.project)(path_1.default.join(app.project.config.e2e, "index.ts"));
|
|
32
29
|
// GENERATE EACH TEST FILES
|
|
33
30
|
for (const route of app.routes)
|
|
34
31
|
if (route.protocol === "http")
|
|
@@ -37,13 +34,6 @@ var E2eGenerator;
|
|
|
37
34
|
current: path_1.default.join(output, "features", "api", "automated"),
|
|
38
35
|
})(route);
|
|
39
36
|
});
|
|
40
|
-
const index = (project) => (output) => __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
if (fs_1.default.existsSync(output))
|
|
42
|
-
return;
|
|
43
|
-
const location = path_1.default.join(__dirname, "..", "..", "assets", "bundle", "e2e", "index.ts");
|
|
44
|
-
const content = yield fs_1.default.promises.readFile(location, "utf8");
|
|
45
|
-
yield fs_1.default.promises.writeFile(output, content.replace("${input}", JSON.stringify(yield ConfigAnalyzer_1.ConfigAnalyzer.input(project.config))), "utf8");
|
|
46
|
-
});
|
|
47
37
|
})(E2eGenerator || (exports.E2eGenerator = E2eGenerator = {}));
|
|
48
38
|
const mkdir = (location) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
39
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2eGenerator.js","sourceRoot":"","sources":["../../src/generates/E2eGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;
|
|
1
|
+
{"version":3,"file":"E2eGenerator.js","sourceRoot":"","sources":["../../src/generates/E2eGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAGxB,oEAAiE;AAEjE,IAAiB,YAAY,CAmB5B;AAnBD,WAAiB,YAAY;IACd,qBAAQ,GAAG,CAAO,GAAsB,EAAiB,EAAE;QACtE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,sBAAsB;QACtB,MAAM,MAAM,GAAW,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC;QAC7D,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,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM;YAC5B,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;gBAC3B,MAAM,qCAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC5C,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAO,CAAC;oBAC7C,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC;iBAC3D,CAAC,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAA,CAAC;AACJ,CAAC,EAnBgB,YAAY,4BAAZ,YAAY,QAmB5B;AAED,MAAM,KAAK,GAAG,CAAO,QAAgB,EAAiB,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,WAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAA,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/sdk",
|
|
3
|
-
"version": "3.11.0
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "Nestia SDK and Swagger generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
},
|
|
33
33
|
"homepage": "https://nestia.io",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@nestia/core": "^3.11.0
|
|
36
|
-
"@nestia/fetcher": "^3.11.0
|
|
35
|
+
"@nestia/core": "^3.11.0",
|
|
36
|
+
"@nestia/fetcher": "^3.11.0",
|
|
37
37
|
"@samchon/openapi": "^0.4.5",
|
|
38
38
|
"@wrtnio/openai-function-schema": "^0.2.3",
|
|
39
39
|
"cli": "^1.0.1",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"typia": "^6.8.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@nestia/core": ">=3.11.0
|
|
52
|
-
"@nestia/fetcher": ">=3.11.0
|
|
51
|
+
"@nestia/core": ">=3.11.0",
|
|
52
|
+
"@nestia/fetcher": ">=3.11.0",
|
|
53
53
|
"@nestjs/common": ">=7.0.1",
|
|
54
54
|
"@nestjs/core": ">=7.0.1",
|
|
55
55
|
"reflect-metadata": ">=0.1.12",
|
|
@@ -33,12 +33,22 @@ export class NestiaSdkApplication {
|
|
|
33
33
|
!this.config.swagger?.output &&
|
|
34
34
|
!this.config.openai?.output
|
|
35
35
|
)
|
|
36
|
-
throw new Error(
|
|
36
|
+
throw new Error(
|
|
37
|
+
[
|
|
38
|
+
"Error on NestiaApplication.all(): nothing to generate, configure at least one property of below:",
|
|
39
|
+
"",
|
|
40
|
+
" - INestiaConfig.output",
|
|
41
|
+
" - INestiaConfig.swagger.output",
|
|
42
|
+
" - INestiaConfig.openai.output",
|
|
43
|
+
].join("\n"),
|
|
44
|
+
);
|
|
37
45
|
print_title("Nestia All Generator");
|
|
38
46
|
await this.generate({
|
|
39
47
|
generate: async (app) => {
|
|
40
|
-
if (this.config.output)
|
|
41
|
-
|
|
48
|
+
if (this.config.output) {
|
|
49
|
+
await SdkGenerator.generate(app);
|
|
50
|
+
if (this.config.e2e) await E2eGenerator.generate(app);
|
|
51
|
+
}
|
|
42
52
|
if (this.config.swagger) await SwaggerGenerator.generate(app);
|
|
43
53
|
if (this.config.openai) await OpenAiGenerator.generate(app);
|
|
44
54
|
},
|
|
@@ -48,11 +58,11 @@ export class NestiaSdkApplication {
|
|
|
48
58
|
public async e2e(): Promise<void> {
|
|
49
59
|
if (!this.config.output)
|
|
50
60
|
throw new Error(
|
|
51
|
-
"Error on NestiaApplication.e2e(): output
|
|
61
|
+
"Error on NestiaApplication.e2e(): configure INestiaConfig.output property.",
|
|
52
62
|
);
|
|
53
63
|
else if (!this.config.e2e)
|
|
54
64
|
throw new Error(
|
|
55
|
-
"Error on NestiaApplication.e2e():
|
|
65
|
+
"Error on NestiaApplication.e2e(): configure INestiaConfig.e2e property.",
|
|
56
66
|
);
|
|
57
67
|
|
|
58
68
|
const validate =
|
|
@@ -80,7 +90,7 @@ export class NestiaSdkApplication {
|
|
|
80
90
|
public async sdk(): Promise<void> {
|
|
81
91
|
if (!this.config.output)
|
|
82
92
|
throw new Error(
|
|
83
|
-
"Error on NestiaApplication.sdk(): output
|
|
93
|
+
"Error on NestiaApplication.sdk(): configure INestiaConfig.output property.",
|
|
84
94
|
);
|
|
85
95
|
|
|
86
96
|
const parent: string = path.resolve(this.config.output + "/..");
|
|
@@ -100,7 +110,7 @@ export class NestiaSdkApplication {
|
|
|
100
110
|
public async swagger(): Promise<void> {
|
|
101
111
|
if (!this.config.swagger?.output)
|
|
102
112
|
throw new Error(
|
|
103
|
-
`Error on NestiaApplication.swagger():
|
|
113
|
+
`Error on NestiaApplication.swagger(): configure INestiaConfig.swagger property.`,
|
|
104
114
|
);
|
|
105
115
|
|
|
106
116
|
const parsed: path.ParsedPath = path.parse(this.config.swagger.output);
|
|
@@ -122,7 +132,7 @@ export class NestiaSdkApplication {
|
|
|
122
132
|
public async openai(): Promise<void> {
|
|
123
133
|
if (!this.config.openai?.output)
|
|
124
134
|
throw new Error(
|
|
125
|
-
`Error on NestiaApplication.openai():
|
|
135
|
+
`Error on NestiaApplication.openai(): configure INestiaConfig.openai property.`,
|
|
126
136
|
);
|
|
127
137
|
|
|
128
138
|
const parsed: path.ParsedPath = path.parse(this.config.openai.output);
|
|
@@ -30,10 +30,10 @@ export namespace NestiaConfigLoader {
|
|
|
30
30
|
);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
export const
|
|
33
|
+
export const configurations = async (
|
|
34
34
|
file: string,
|
|
35
35
|
compilerOptions: Record<string, any>,
|
|
36
|
-
): Promise<INestiaConfig> => {
|
|
36
|
+
): Promise<INestiaConfig[]> => {
|
|
37
37
|
if (fs.existsSync(path.resolve(file)) === false)
|
|
38
38
|
throw new Error(`Unable to find "${file}" file.`);
|
|
39
39
|
|
|
@@ -59,16 +59,19 @@ export namespace NestiaConfigLoader {
|
|
|
59
59
|
: undefined,
|
|
60
60
|
});
|
|
61
61
|
|
|
62
|
-
const loaded: INestiaConfig
|
|
63
|
-
|
|
64
|
-
);
|
|
65
|
-
const
|
|
62
|
+
const loaded: (INestiaConfig | INestiaConfig[]) & {
|
|
63
|
+
default?: INestiaConfig | INestiaConfig[];
|
|
64
|
+
} = await import(path.resolve(file));
|
|
65
|
+
const instance: INestiaConfig | INestiaConfig[] =
|
|
66
66
|
typeof loaded?.default === "object" && loaded.default !== null
|
|
67
67
|
? loaded.default
|
|
68
68
|
: loaded;
|
|
69
|
+
const configurations: INestiaConfig[] = Array.isArray(instance)
|
|
70
|
+
? instance
|
|
71
|
+
: [instance];
|
|
69
72
|
|
|
70
73
|
try {
|
|
71
|
-
return typia.assert(
|
|
74
|
+
return typia.assert(configurations);
|
|
72
75
|
} catch (exp) {
|
|
73
76
|
if (typia.is<typia.TypeGuardError>(exp))
|
|
74
77
|
exp.message = `invalid "${file}" data.`;
|
|
@@ -5,19 +5,59 @@ import { NestiaSdkApplication } from "../../NestiaSdkApplication";
|
|
|
5
5
|
import { NestiaConfigLoader } from "./NestiaConfigLoader";
|
|
6
6
|
|
|
7
7
|
export namespace NestiaSdkCommand {
|
|
8
|
-
export const sdk = () =>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
export const sdk = () =>
|
|
9
|
+
main({
|
|
10
|
+
title: "SDK library",
|
|
11
|
+
generate: (app) => app.sdk(),
|
|
12
|
+
validate: (config) => !!config.output,
|
|
13
|
+
solution: "configure INestiaConfig.output property.",
|
|
14
|
+
});
|
|
15
|
+
export const swagger = () =>
|
|
16
|
+
main({
|
|
17
|
+
title: "Swagger Document",
|
|
18
|
+
generate: (app) => app.swagger(),
|
|
19
|
+
validate: (config) => !!config.swagger?.output,
|
|
20
|
+
solution: "configure INestiaConfig.swagger property.",
|
|
21
|
+
});
|
|
22
|
+
export const openai = () =>
|
|
23
|
+
main({
|
|
24
|
+
title: "OpenAI Function Calling Schema",
|
|
25
|
+
generate: (app) => app.openai(),
|
|
26
|
+
validate: (config) => !!config.openai?.output,
|
|
27
|
+
solution: "configure INestiaConfig.openai property.",
|
|
28
|
+
});
|
|
29
|
+
export const e2e = () =>
|
|
30
|
+
main({
|
|
31
|
+
title: "E2E Functions",
|
|
32
|
+
generate: (app) => app.e2e(),
|
|
33
|
+
validate: (config) => !!config.e2e,
|
|
34
|
+
solution: [
|
|
35
|
+
"configure two properties:",
|
|
36
|
+
"",
|
|
37
|
+
" - INestiaConfig.output",
|
|
38
|
+
" - INestiaConfig.e2e",
|
|
39
|
+
].join("\n"),
|
|
40
|
+
});
|
|
41
|
+
export const all = () =>
|
|
42
|
+
main({
|
|
43
|
+
title: "everything",
|
|
44
|
+
generate: (app) => app.all(),
|
|
45
|
+
validate: () => true,
|
|
46
|
+
solution: [
|
|
47
|
+
"configure at laest one property of below:",
|
|
48
|
+
"",
|
|
49
|
+
" - INestiaConfig.output",
|
|
50
|
+
" - INestiaConfig.swagger.output",
|
|
51
|
+
" - INestiaConfig.openai.output",
|
|
52
|
+
].join("\n"),
|
|
53
|
+
});
|
|
13
54
|
|
|
14
|
-
const main = async (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
) => {
|
|
55
|
+
const main = async (props: {
|
|
56
|
+
title: string;
|
|
57
|
+
solution: string;
|
|
58
|
+
generate: (app: NestiaSdkApplication) => Promise<void>;
|
|
59
|
+
validate: (config: INestiaConfig) => boolean;
|
|
60
|
+
}) => {
|
|
21
61
|
// LOAD CONFIG INFO
|
|
22
62
|
const command: ts.ParsedCommandLine =
|
|
23
63
|
await NestiaConfigLoader.compilerOptions(
|
|
@@ -26,17 +66,29 @@ export namespace NestiaSdkCommand {
|
|
|
26
66
|
extension: "json",
|
|
27
67
|
}) ?? "tsconfig.json",
|
|
28
68
|
);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
69
|
+
const configurations: INestiaConfig[] =
|
|
70
|
+
await NestiaConfigLoader.configurations(
|
|
71
|
+
getFileArgument({
|
|
72
|
+
type: "config",
|
|
73
|
+
extension: "ts",
|
|
74
|
+
}) ?? "nestia.config.ts",
|
|
75
|
+
command.raw.compilerOptions,
|
|
76
|
+
);
|
|
36
77
|
|
|
37
78
|
// GENERATE
|
|
38
|
-
|
|
39
|
-
|
|
79
|
+
if (
|
|
80
|
+
configurations.length > 1 &&
|
|
81
|
+
configurations.some(props.validate) === false
|
|
82
|
+
)
|
|
83
|
+
throw new Error(
|
|
84
|
+
`Every configurations are invalid to generate ${props.title}, ${props.solution}`,
|
|
85
|
+
);
|
|
86
|
+
for (const config of configurations) {
|
|
87
|
+
if (configurations.length > 1 && props.validate(config) === false)
|
|
88
|
+
continue;
|
|
89
|
+
const app: NestiaSdkApplication = new NestiaSdkApplication(config);
|
|
90
|
+
await props.generate(app);
|
|
91
|
+
}
|
|
40
92
|
};
|
|
41
93
|
|
|
42
94
|
const getFileArgument = (props: {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
|
|
4
|
-
import { ConfigAnalyzer } from "../analyses/ConfigAnalyzer";
|
|
5
|
-
import { INestiaProject } from "../structures/INestiaProject";
|
|
6
4
|
import { ITypedApplication } from "../structures/ITypedApplication";
|
|
7
5
|
import { E2eFileProgrammer } from "./internal/E2eFileProgrammer";
|
|
8
6
|
|
|
@@ -17,9 +15,6 @@ export namespace E2eGenerator {
|
|
|
17
15
|
await mkdir(path.join(output, "features", "api"));
|
|
18
16
|
await mkdir(path.join(output, "features", "api", "automated"));
|
|
19
17
|
|
|
20
|
-
// GENERATE TEST INDEX FILE
|
|
21
|
-
await index(app.project)(path.join(app.project.config.e2e!, "index.ts"));
|
|
22
|
-
|
|
23
18
|
// GENERATE EACH TEST FILES
|
|
24
19
|
for (const route of app.routes)
|
|
25
20
|
if (route.protocol === "http")
|
|
@@ -28,32 +23,6 @@ export namespace E2eGenerator {
|
|
|
28
23
|
current: path.join(output, "features", "api", "automated"),
|
|
29
24
|
})(route);
|
|
30
25
|
};
|
|
31
|
-
|
|
32
|
-
const index =
|
|
33
|
-
(project: INestiaProject) =>
|
|
34
|
-
async (output: string): Promise<void> => {
|
|
35
|
-
if (fs.existsSync(output)) return;
|
|
36
|
-
|
|
37
|
-
const location: string = path.join(
|
|
38
|
-
__dirname,
|
|
39
|
-
"..",
|
|
40
|
-
"..",
|
|
41
|
-
"assets",
|
|
42
|
-
"bundle",
|
|
43
|
-
"e2e",
|
|
44
|
-
"index.ts",
|
|
45
|
-
);
|
|
46
|
-
const content: string = await fs.promises.readFile(location, "utf8");
|
|
47
|
-
|
|
48
|
-
await fs.promises.writeFile(
|
|
49
|
-
output,
|
|
50
|
-
content.replace(
|
|
51
|
-
"${input}",
|
|
52
|
-
JSON.stringify(await ConfigAnalyzer.input(project.config)),
|
|
53
|
-
),
|
|
54
|
-
"utf8",
|
|
55
|
-
);
|
|
56
|
-
};
|
|
57
26
|
}
|
|
58
27
|
|
|
59
28
|
const mkdir = async (location: string): Promise<void> => {
|