@nestia/core 1.0.4 → 1.0.6
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/executable/core.js +12 -10
- package/lib/executable/core.js.map +1 -1
- package/lib/executable/internal/CoreSetupWizard.d.ts +6 -2
- package/lib/executable/internal/CoreSetupWizard.js +36 -23
- package/lib/executable/internal/CoreSetupWizard.js.map +1 -1
- package/package.json +1 -1
- package/src/executable/core.ts +8 -5
- package/src/executable/internal/CoreSetupWizard.ts +44 -22
package/lib/executable/core.js
CHANGED
|
@@ -39,35 +39,37 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
var CommandParser_1 = require("./internal/CommandParser");
|
|
41
41
|
var CoreSetupWizard_1 = require("./internal/CoreSetupWizard");
|
|
42
|
-
var USAGE = "Wrong command has been detected. Use like below:\n\n npx @nestia/core setup \\\n --compiler (ttypescript|ts-patch) \\\n --manager (npm|pnpm|yarn)\n\n - npx @nestia/core setup\n - npx @nestia/core setup --compiler
|
|
42
|
+
var USAGE = "Wrong command has been detected. Use like below:\n\n npx @nestia/core setup \\\n --compiler (ttypescript|ts-patch) \\\n --manager (npm|pnpm|yarn) \\\n --project {tsconfig.json file path}\n\n - npx @nestia/core setup\n - npx @nestia/core setup --compiler ts-patch\n - npx @nestia/core setup --manager pnpm\n - npx @nestia/core setup --project tsconfig.test.json";
|
|
43
43
|
function halt(desc) {
|
|
44
44
|
console.error(desc);
|
|
45
45
|
process.exit(-1);
|
|
46
46
|
}
|
|
47
47
|
function setup() {
|
|
48
|
-
var _a, _b;
|
|
48
|
+
var _a, _b, _c;
|
|
49
49
|
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
-
var options, manager, compiler;
|
|
51
|
-
return __generator(this, function (
|
|
52
|
-
switch (
|
|
50
|
+
var options, manager, compiler, project;
|
|
51
|
+
return __generator(this, function (_d) {
|
|
52
|
+
switch (_d.label) {
|
|
53
53
|
case 0:
|
|
54
54
|
options = CommandParser_1.CommandParser.parse(process.argv.slice(3));
|
|
55
55
|
manager = (_a = options.manager) !== null && _a !== void 0 ? _a : "npm";
|
|
56
56
|
compiler = (_b = options.compiler) !== null && _b !== void 0 ? _b : "ttypescript";
|
|
57
|
+
project = (_c = options.project) !== null && _c !== void 0 ? _c : "tsconfig.json";
|
|
58
|
+
console.log(options);
|
|
57
59
|
if (!((compiler !== "ttypescript" && compiler !== "ts-patch") ||
|
|
58
60
|
(manager !== "npm" && manager !== "pnpm" && manager !== "yarn"))) return [3 /*break*/, 1];
|
|
59
61
|
halt(USAGE);
|
|
60
62
|
return [3 /*break*/, 5];
|
|
61
63
|
case 1:
|
|
62
64
|
if (!(compiler === "ttypescript")) return [3 /*break*/, 3];
|
|
63
|
-
return [4 /*yield*/, CoreSetupWizard_1.CoreSetupWizard.ttypescript(manager)];
|
|
65
|
+
return [4 /*yield*/, CoreSetupWizard_1.CoreSetupWizard.ttypescript({ manager: manager, project: project })];
|
|
64
66
|
case 2:
|
|
65
|
-
|
|
67
|
+
_d.sent();
|
|
66
68
|
return [3 /*break*/, 5];
|
|
67
|
-
case 3: return [4 /*yield*/, CoreSetupWizard_1.CoreSetupWizard.tsPatch(manager)];
|
|
69
|
+
case 3: return [4 /*yield*/, CoreSetupWizard_1.CoreSetupWizard.tsPatch({ manager: manager, project: project })];
|
|
68
70
|
case 4:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
_d.sent();
|
|
72
|
+
_d.label = 5;
|
|
71
73
|
case 5: return [2 /*return*/];
|
|
72
74
|
}
|
|
73
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/executable/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0DAAyD;AACzD,8DAA6D;AAE7D,IAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/executable/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0DAAyD;AACzD,8DAA6D;AAE7D,IAAM,KAAK,GAAG,wXAU0C,CAAC;AAEzD,SAAS,IAAI,CAAC,IAAY;IACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAe,KAAK;;;;;;;oBACV,OAAO,GAA2B,6BAAa,CAAC,KAAK,CACvD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,CAAC;oBACI,OAAO,GAAW,MAAA,OAAO,CAAC,OAAO,mCAAI,KAAK,CAAC;oBAC3C,QAAQ,GAAW,MAAA,OAAO,CAAC,QAAQ,mCAAI,aAAa,CAAC;oBACrD,OAAO,GAAW,MAAA,OAAO,CAAC,OAAO,mCAAI,eAAe,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;yBAGjB,CAAA,CAAC,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,UAAU,CAAC;wBACvD,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC,CAAA,EAD/D,wBAC+D;oBAE/D,IAAI,CAAC,KAAK,CAAC,CAAC;;;yBACP,CAAA,QAAQ,KAAK,aAAa,CAAA,EAA1B,wBAA0B;oBAC/B,qBAAM,iCAAe,CAAC,WAAW,CAAC,EAAE,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;;oBAAvD,SAAuD,CAAC;;wBACvD,qBAAM,iCAAe,CAAC,OAAO,CAAC,EAAE,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,CAAC,EAAA;;oBAAnD,SAAmD,CAAC;;;;;;CAC5D;AAED,SAAe,IAAI;;;;;;oBACT,IAAI,GAAuB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAC7C,CAAA,IAAI,KAAK,OAAO,CAAA,EAAhB,wBAAgB;oBAAE,qBAAM,KAAK,EAAE,EAAA;;oBAAb,SAAa,CAAC;;;oBAC/B,IAAI,CAAC,KAAK,CAAC,CAAC;;;;;;CACpB;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,UAAC,GAAG;IACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare namespace CoreSetupWizard {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
interface IArguments {
|
|
3
|
+
manager: "npm" | "pnpm" | "yarn";
|
|
4
|
+
project: string;
|
|
5
|
+
}
|
|
6
|
+
function ttypescript(args: string | IArguments): Promise<void>;
|
|
7
|
+
function tsPatch(args: string | IArguments): Promise<void>;
|
|
4
8
|
}
|
|
@@ -68,18 +68,25 @@ var fs_1 = __importDefault(require("fs"));
|
|
|
68
68
|
var CoreSetupWizard;
|
|
69
69
|
(function (CoreSetupWizard) {
|
|
70
70
|
var _this = this;
|
|
71
|
-
function ttypescript(
|
|
71
|
+
function ttypescript(args) {
|
|
72
72
|
return __awaiter(this, void 0, void 0, function () {
|
|
73
73
|
var pack;
|
|
74
74
|
return __generator(this, function (_a) {
|
|
75
75
|
switch (_a.label) {
|
|
76
|
-
case 0:
|
|
76
|
+
case 0:
|
|
77
|
+
// POLYFILL
|
|
78
|
+
if (typeof args === "string")
|
|
79
|
+
args = {
|
|
80
|
+
manager: args,
|
|
81
|
+
project: "tsconfig.json",
|
|
82
|
+
};
|
|
83
|
+
return [4 /*yield*/, prepare(args.manager)];
|
|
77
84
|
case 1:
|
|
78
85
|
pack = _a.sent();
|
|
79
|
-
add(manager)(pack)("ttypescript", true);
|
|
80
|
-
add(manager)(pack)("ts-node", true);
|
|
86
|
+
add(args.manager)(pack)("ttypescript", true);
|
|
87
|
+
add(args.manager)(pack)("ts-node", true);
|
|
81
88
|
// TSCONFIG.JSON
|
|
82
|
-
return [4 /*yield*/, configure(
|
|
89
|
+
return [4 /*yield*/, configure(args)(pack)];
|
|
83
90
|
case 2:
|
|
84
91
|
// TSCONFIG.JSON
|
|
85
92
|
_a.sent();
|
|
@@ -89,15 +96,21 @@ var CoreSetupWizard;
|
|
|
89
96
|
});
|
|
90
97
|
}
|
|
91
98
|
CoreSetupWizard.ttypescript = ttypescript;
|
|
92
|
-
function tsPatch(
|
|
99
|
+
function tsPatch(args) {
|
|
93
100
|
return __awaiter(this, void 0, void 0, function () {
|
|
94
101
|
var _a, pack, _b, _c;
|
|
95
102
|
return __generator(this, function (_d) {
|
|
96
103
|
switch (_d.label) {
|
|
97
104
|
case 0:
|
|
105
|
+
// POLYFILL
|
|
106
|
+
if (typeof args === "string")
|
|
107
|
+
args = {
|
|
108
|
+
manager: args,
|
|
109
|
+
project: "tsconfig.json",
|
|
110
|
+
};
|
|
98
111
|
// INSTALL
|
|
99
|
-
_a = add(manager);
|
|
100
|
-
return [4 /*yield*/, prepare(manager)];
|
|
112
|
+
_a = add(args.manager);
|
|
113
|
+
return [4 /*yield*/, prepare(args.manager)];
|
|
101
114
|
case 1:
|
|
102
115
|
// INSTALL
|
|
103
116
|
_a.apply(void 0, [_d.sent()])("ts-patch", true);
|
|
@@ -119,7 +132,7 @@ var CoreSetupWizard;
|
|
|
119
132
|
case 3:
|
|
120
133
|
_d.sent();
|
|
121
134
|
// TSCONFIG.JSON
|
|
122
|
-
return [4 /*yield*/, configure(
|
|
135
|
+
return [4 /*yield*/, configure(args)(pack)];
|
|
123
136
|
case 4:
|
|
124
137
|
// TSCONFIG.JSON
|
|
125
138
|
_d.sent();
|
|
@@ -149,42 +162,42 @@ var CoreSetupWizard;
|
|
|
149
162
|
});
|
|
150
163
|
});
|
|
151
164
|
}
|
|
152
|
-
var configure = function (
|
|
165
|
+
var configure = function (args) {
|
|
153
166
|
return function (pack) { return __awaiter(_this, void 0, void 0, function () {
|
|
154
167
|
var temporary, halter, Comment, config, _a, _b, options, plugins, strict, core, typia;
|
|
155
168
|
return __generator(this, function (_c) {
|
|
156
169
|
var _d;
|
|
157
170
|
switch (_c.label) {
|
|
158
171
|
case 0:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (fs_1.default.existsSync(
|
|
163
|
-
halt(function () { })("
|
|
172
|
+
if (fs_1.default.existsSync(args.project) === false) {
|
|
173
|
+
if (args.project === "tsconfig.json")
|
|
174
|
+
execute("npx tsc --init");
|
|
175
|
+
if (fs_1.default.existsSync(args.project) === false)
|
|
176
|
+
halt(function () { })("".concat(args.project, " file does not exist."));
|
|
164
177
|
}
|
|
165
178
|
temporary = !fs_1.default.existsSync("node_modules/comment-json");
|
|
166
179
|
if (temporary === true)
|
|
167
|
-
add(manager)(pack)("comment-json", true);
|
|
180
|
+
add(args.manager)(pack)("comment-json", true);
|
|
168
181
|
halter = halt(function () {
|
|
169
182
|
if (temporary === true)
|
|
170
|
-
remove(manager)("comment-json", true);
|
|
183
|
+
remove(args.manager)("comment-json", true);
|
|
171
184
|
});
|
|
172
185
|
return [4 /*yield*/, (_d = process.cwd() + "/node_modules/comment-json", Promise.resolve().then(function () { return __importStar(require(_d)); }))];
|
|
173
186
|
case 1:
|
|
174
187
|
Comment = _c.sent();
|
|
175
188
|
_b = (_a = Comment).parse;
|
|
176
|
-
return [4 /*yield*/, fs_1.default.promises.readFile(
|
|
189
|
+
return [4 /*yield*/, fs_1.default.promises.readFile(args.project, "utf8")];
|
|
177
190
|
case 2:
|
|
178
191
|
config = _b.apply(_a, [_c.sent()]);
|
|
179
192
|
options = config.compilerOptions;
|
|
180
193
|
if (options === undefined)
|
|
181
|
-
halter("
|
|
194
|
+
halter("".concat(args.project, " file does not have \"compilerOptions\" property."));
|
|
182
195
|
plugins = (function () {
|
|
183
196
|
var plugins = options.plugins;
|
|
184
197
|
if (plugins === undefined)
|
|
185
198
|
return (options.plugins = []);
|
|
186
199
|
else if (!Array.isArray(plugins))
|
|
187
|
-
halter("\"plugins\" property of
|
|
200
|
+
halter("\"plugins\" property of ".concat(args.project, " must be array type."));
|
|
188
201
|
return plugins;
|
|
189
202
|
})();
|
|
190
203
|
strict = options.strict === true;
|
|
@@ -199,7 +212,7 @@ var CoreSetupWizard;
|
|
|
199
212
|
p.transform === "typia/lib/transform";
|
|
200
213
|
});
|
|
201
214
|
if (!(strict === true && core !== undefined && typia !== undefined)) return [3 /*break*/, 3];
|
|
202
|
-
console.log("you've been already configured the
|
|
215
|
+
console.log("you've been already configured the ".concat(args.project, " file."));
|
|
203
216
|
return [3 /*break*/, 5];
|
|
204
217
|
case 3:
|
|
205
218
|
// DO CONFIGURE
|
|
@@ -208,13 +221,13 @@ var CoreSetupWizard;
|
|
|
208
221
|
plugins.push(Comment.parse("{\n \"transform\": \"@nestia/core/lib/transform\",\n /**\n * Validate request body.\n * \n * - \"assert\": Use typia.assert() function\n * - \"is\": Use typia.is() function\n * - \"validate\": Use typia.validate() function\n */\n \"validate\": \"assert\",\n\n /**\n * Validate JSON typed response body.\n * \n * - null: Just use JSON.stringify() function, without boosting\n * - \"stringify\": Use typia.stringify() function, but dangerous\n * - \"assert\": Use typia.assertStringify() function\n * - \"is\": Use typia.isStringify() function\n * - \"validate\": Use typia.validateStringify() function\n */\n \"stringify\": \"is\"\n }"));
|
|
209
222
|
if (typia === undefined)
|
|
210
223
|
plugins.push(Comment.parse("{\n \"transform\": \"typia/lib/transform\"\n }"));
|
|
211
|
-
return [4 /*yield*/, fs_1.default.promises.writeFile(
|
|
224
|
+
return [4 /*yield*/, fs_1.default.promises.writeFile(args.project, Comment.stringify(config, null, 2))];
|
|
212
225
|
case 4:
|
|
213
226
|
_c.sent();
|
|
214
227
|
_c.label = 5;
|
|
215
228
|
case 5:
|
|
216
229
|
if (temporary === true)
|
|
217
|
-
remove(manager)("comment-json", false);
|
|
230
|
+
remove(args.manager)("comment-json", false);
|
|
218
231
|
return [2 /*return*/];
|
|
219
232
|
}
|
|
220
233
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreSetupWizard.js","sourceRoot":"","sources":["../../../src/executable/internal/CoreSetupWizard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA+B;AAE/B,0CAAoB;AAEpB,IAAiB,eAAe,
|
|
1
|
+
{"version":3,"file":"CoreSetupWizard.js","sourceRoot":"","sources":["../../../src/executable/internal/CoreSetupWizard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/executable/core.ts
CHANGED
|
@@ -6,12 +6,13 @@ const USAGE = `Wrong command has been detected. Use like below:
|
|
|
6
6
|
|
|
7
7
|
npx @nestia/core setup \\
|
|
8
8
|
--compiler (ttypescript|ts-patch) \\
|
|
9
|
-
--manager (npm|pnpm|yarn)
|
|
9
|
+
--manager (npm|pnpm|yarn) \\
|
|
10
|
+
--project {tsconfig.json file path}
|
|
10
11
|
|
|
11
12
|
- npx @nestia/core setup
|
|
12
|
-
- npx @nestia/core setup --compiler ttypescript
|
|
13
13
|
- npx @nestia/core setup --compiler ts-patch
|
|
14
|
-
- npx @nestia/core setup --manager pnpm
|
|
14
|
+
- npx @nestia/core setup --manager pnpm
|
|
15
|
+
- npx @nestia/core setup --project tsconfig.test.json`;
|
|
15
16
|
|
|
16
17
|
function halt(desc: string): never {
|
|
17
18
|
console.error(desc);
|
|
@@ -24,6 +25,8 @@ async function setup(): Promise<void> {
|
|
|
24
25
|
);
|
|
25
26
|
const manager: string = options.manager ?? "npm";
|
|
26
27
|
const compiler: string = options.compiler ?? "ttypescript";
|
|
28
|
+
const project: string = options.project ?? "tsconfig.json";
|
|
29
|
+
console.log(options);
|
|
27
30
|
|
|
28
31
|
if (
|
|
29
32
|
(compiler !== "ttypescript" && compiler !== "ts-patch") ||
|
|
@@ -31,8 +34,8 @@ async function setup(): Promise<void> {
|
|
|
31
34
|
)
|
|
32
35
|
halt(USAGE);
|
|
33
36
|
else if (compiler === "ttypescript")
|
|
34
|
-
await CoreSetupWizard.ttypescript(manager);
|
|
35
|
-
else await CoreSetupWizard.tsPatch(manager);
|
|
37
|
+
await CoreSetupWizard.ttypescript({ manager, project });
|
|
38
|
+
else await CoreSetupWizard.tsPatch({ manager, project });
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
async function main(): Promise<void> {
|
|
@@ -3,19 +3,40 @@ import type Comment from "comment-json";
|
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
|
|
5
5
|
export namespace CoreSetupWizard {
|
|
6
|
-
export
|
|
6
|
+
export interface IArguments {
|
|
7
|
+
manager: "npm" | "pnpm" | "yarn";
|
|
8
|
+
project: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function ttypescript(
|
|
12
|
+
args: string | IArguments,
|
|
13
|
+
): Promise<void> {
|
|
14
|
+
// POLYFILL
|
|
15
|
+
if (typeof args === "string")
|
|
16
|
+
args = {
|
|
17
|
+
manager: args as "npm",
|
|
18
|
+
project: "tsconfig.json",
|
|
19
|
+
};
|
|
20
|
+
|
|
7
21
|
// INSTALL
|
|
8
|
-
const pack: any = await prepare(manager);
|
|
9
|
-
add(manager)(pack)("ttypescript", true);
|
|
10
|
-
add(manager)(pack)("ts-node", true);
|
|
22
|
+
const pack: any = await prepare(args.manager);
|
|
23
|
+
add(args.manager)(pack)("ttypescript", true);
|
|
24
|
+
add(args.manager)(pack)("ts-node", true);
|
|
11
25
|
|
|
12
26
|
// TSCONFIG.JSON
|
|
13
|
-
await configure(
|
|
27
|
+
await configure(args)(pack);
|
|
14
28
|
}
|
|
15
29
|
|
|
16
|
-
export async function tsPatch(
|
|
30
|
+
export async function tsPatch(args: string | IArguments): Promise<void> {
|
|
31
|
+
// POLYFILL
|
|
32
|
+
if (typeof args === "string")
|
|
33
|
+
args = {
|
|
34
|
+
manager: args as "npm",
|
|
35
|
+
project: "tsconfig.json",
|
|
36
|
+
};
|
|
37
|
+
|
|
17
38
|
// INSTALL
|
|
18
|
-
add(manager)(await prepare(manager))("ts-patch", true);
|
|
39
|
+
add(args.manager)(await prepare(args.manager))("ts-patch", true);
|
|
19
40
|
execute("npx ts-patch install");
|
|
20
41
|
|
|
21
42
|
// PACKAGE.JSON
|
|
@@ -37,7 +58,7 @@ export namespace CoreSetupWizard {
|
|
|
37
58
|
);
|
|
38
59
|
|
|
39
60
|
// TSCONFIG.JSON
|
|
40
|
-
await configure(
|
|
61
|
+
await configure(args)(pack);
|
|
41
62
|
}
|
|
42
63
|
|
|
43
64
|
async function prepare(manager: string): Promise<any> {
|
|
@@ -54,22 +75,23 @@ export namespace CoreSetupWizard {
|
|
|
54
75
|
}
|
|
55
76
|
|
|
56
77
|
const configure =
|
|
57
|
-
(
|
|
78
|
+
(args: IArguments) =>
|
|
58
79
|
async (pack: any): Promise<void> => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
halt(() => {})("tsconfig.json file does not exist.");
|
|
80
|
+
if (fs.existsSync(args.project) === false) {
|
|
81
|
+
if (args.project === "tsconfig.json") execute("npx tsc --init");
|
|
82
|
+
if (fs.existsSync(args.project) === false)
|
|
83
|
+
halt(() => {})(`${args.project} file does not exist.`);
|
|
64
84
|
}
|
|
65
85
|
|
|
66
86
|
const temporary: boolean = !fs.existsSync(
|
|
67
87
|
"node_modules/comment-json",
|
|
68
88
|
);
|
|
69
|
-
if (temporary === true)
|
|
89
|
+
if (temporary === true)
|
|
90
|
+
add(args.manager)(pack)("comment-json", true);
|
|
70
91
|
|
|
71
92
|
const halter: (msg: string) => never = halt(() => {
|
|
72
|
-
if (temporary === true)
|
|
93
|
+
if (temporary === true)
|
|
94
|
+
remove(args.manager)("comment-json", true);
|
|
73
95
|
});
|
|
74
96
|
|
|
75
97
|
// READ TSCONFIG FILE
|
|
@@ -77,14 +99,14 @@ export namespace CoreSetupWizard {
|
|
|
77
99
|
process.cwd() + "/node_modules/comment-json"
|
|
78
100
|
);
|
|
79
101
|
const config: Comment.CommentObject = Comment.parse(
|
|
80
|
-
await fs.promises.readFile(
|
|
102
|
+
await fs.promises.readFile(args.project, "utf8"),
|
|
81
103
|
) as Comment.CommentObject;
|
|
82
104
|
const options = config.compilerOptions as
|
|
83
105
|
| Comment.CommentObject
|
|
84
106
|
| undefined;
|
|
85
107
|
if (options === undefined)
|
|
86
108
|
halter(
|
|
87
|
-
|
|
109
|
+
`${args.project} file does not have "compilerOptions" property.`,
|
|
88
110
|
);
|
|
89
111
|
|
|
90
112
|
const plugins: Comment.CommentArray<Comment.CommentObject> =
|
|
@@ -96,7 +118,7 @@ export namespace CoreSetupWizard {
|
|
|
96
118
|
return (options.plugins = [] as any);
|
|
97
119
|
else if (!Array.isArray(plugins))
|
|
98
120
|
halter(
|
|
99
|
-
`"plugins" property of
|
|
121
|
+
`"plugins" property of ${args.project} must be array type.`,
|
|
100
122
|
);
|
|
101
123
|
return plugins;
|
|
102
124
|
})();
|
|
@@ -118,7 +140,7 @@ export namespace CoreSetupWizard {
|
|
|
118
140
|
|
|
119
141
|
if (strict === true && core !== undefined && typia !== undefined) {
|
|
120
142
|
console.log(
|
|
121
|
-
|
|
143
|
+
`you've been already configured the ${args.project} file.`,
|
|
122
144
|
);
|
|
123
145
|
} else {
|
|
124
146
|
// DO CONFIGURE
|
|
@@ -155,11 +177,11 @@ export namespace CoreSetupWizard {
|
|
|
155
177
|
}`) as Comment.CommentObject,
|
|
156
178
|
);
|
|
157
179
|
await fs.promises.writeFile(
|
|
158
|
-
|
|
180
|
+
args.project,
|
|
159
181
|
Comment.stringify(config, null, 2),
|
|
160
182
|
);
|
|
161
183
|
}
|
|
162
|
-
if (temporary === true) remove(manager)("comment-json", false);
|
|
184
|
+
if (temporary === true) remove(args.manager)("comment-json", false);
|
|
163
185
|
};
|
|
164
186
|
}
|
|
165
187
|
|