nestia 11.0.0-dev.20260305 → 11.0.0-dev.20260312
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/bin/NestiaSetupWizard.d.ts +3 -0
- package/bin/NestiaSetupWizard.js +98 -0
- package/bin/NestiaSetupWizard.js.map +1 -0
- package/bin/NestiaStarter.d.ts +3 -0
- package/bin/NestiaStarter.js +49 -0
- package/bin/NestiaStarter.js.map +1 -0
- package/bin/NestiaTemplate.d.ts +3 -0
- package/bin/NestiaTemplate.js +46 -0
- package/bin/NestiaTemplate.js.map +1 -0
- package/bin/index.d.ts +4 -0
- package/bin/index.js +107 -0
- package/bin/index.js.map +1 -0
- package/bin/internal/ArgumentParser.d.ts +9 -0
- package/bin/internal/ArgumentParser.js +106 -0
- package/bin/internal/ArgumentParser.js.map +1 -0
- package/bin/internal/CommandExecutor.d.ts +3 -0
- package/bin/internal/CommandExecutor.js +16 -0
- package/bin/internal/CommandExecutor.js.map +1 -0
- package/bin/internal/FileRetriever.d.ts +4 -0
- package/bin/internal/FileRetriever.js +28 -0
- package/bin/internal/FileRetriever.js.map +1 -0
- package/bin/internal/PackageManager.d.ts +25 -0
- package/bin/internal/PackageManager.js +76 -0
- package/bin/internal/PackageManager.js.map +1 -0
- package/bin/internal/PluginConfigurator.d.ts +4 -0
- package/bin/internal/PluginConfigurator.js +99 -0
- package/bin/internal/PluginConfigurator.js.map +1 -0
- package/package.json +3 -3
- package/src/NestiaSetupWizard.ts +90 -90
- package/src/NestiaStarter.ts +41 -41
- package/src/NestiaTemplate.ts +37 -37
- package/src/internal/ArgumentParser.ts +123 -123
- package/src/internal/CommandExecutor.ts +8 -8
- package/src/internal/FileRetriever.ts +22 -22
- package/src/internal/PackageManager.ts +91 -91
- package/src/internal/PluginConfigurator.ts +125 -125
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.NestiaSetupWizard = void 0;
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const ArgumentParser_1 = require("./internal/ArgumentParser");
|
|
18
|
+
const CommandExecutor_1 = require("./internal/CommandExecutor");
|
|
19
|
+
const PackageManager_1 = require("./internal/PackageManager");
|
|
20
|
+
const PluginConfigurator_1 = require("./internal/PluginConfigurator");
|
|
21
|
+
var NestiaSetupWizard;
|
|
22
|
+
(function (NestiaSetupWizard) {
|
|
23
|
+
function setup() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
var _a;
|
|
26
|
+
console.log("----------------------------------------");
|
|
27
|
+
console.log(" Nestia Setup Wizard");
|
|
28
|
+
console.log("----------------------------------------");
|
|
29
|
+
// PREPARE ASSETS
|
|
30
|
+
const pack = yield PackageManager_1.PackageManager.mount();
|
|
31
|
+
const args = yield ArgumentParser_1.ArgumentParser.parse(pack);
|
|
32
|
+
// INSTALL NESTIA
|
|
33
|
+
pack.install({ dev: false, modulo: "@nestia/core", version: "latest" });
|
|
34
|
+
pack.install({ dev: false, modulo: "@nestia/e2e", version: "latest" });
|
|
35
|
+
pack.install({ dev: false, modulo: "@nestia/fetcher", version: "latest" });
|
|
36
|
+
pack.install({
|
|
37
|
+
dev: args.runtime === false,
|
|
38
|
+
modulo: "@nestia/sdk",
|
|
39
|
+
version: "latest",
|
|
40
|
+
});
|
|
41
|
+
pack.install({ dev: true, modulo: "@nestia/benchmark", version: "latest" });
|
|
42
|
+
pack.install({ dev: true, modulo: "nestia", version: "latest" });
|
|
43
|
+
pack.install({ dev: false, modulo: "typia", version: "latest" });
|
|
44
|
+
// INSTALL TYPESCRIPT COMPILERS
|
|
45
|
+
pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
|
|
46
|
+
pack.install({ dev: true, modulo: "ts-node", version: "latest" });
|
|
47
|
+
pack.install({
|
|
48
|
+
dev: true,
|
|
49
|
+
modulo: "typescript",
|
|
50
|
+
version: yield getTypeScriptVersion(),
|
|
51
|
+
});
|
|
52
|
+
(_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (() => {
|
|
53
|
+
const runner = pack.manager === "npm" ? "npx" : pack.manager;
|
|
54
|
+
CommandExecutor_1.CommandExecutor.run(`${runner} tsc --init`);
|
|
55
|
+
return (args.project = "tsconfig.json");
|
|
56
|
+
})());
|
|
57
|
+
// SETUP TRANSFORMER
|
|
58
|
+
yield pack.save((data) => {
|
|
59
|
+
var _a;
|
|
60
|
+
// COMPOSE PREPARE COMMAND
|
|
61
|
+
(_a = data.scripts) !== null && _a !== void 0 ? _a : (data.scripts = {});
|
|
62
|
+
if (typeof data.scripts.prepare === "string" &&
|
|
63
|
+
data.scripts.prepare.trim().length !== 0) {
|
|
64
|
+
if (data.scripts.prepare.includes("ts-patch install") === false)
|
|
65
|
+
data.scripts.prepare = "ts-patch install && " + data.scripts.prepare;
|
|
66
|
+
}
|
|
67
|
+
else
|
|
68
|
+
data.scripts.prepare = "ts-patch install";
|
|
69
|
+
// NO MORE "typia patch" REQUIRED
|
|
70
|
+
data.scripts.prepare = data.scripts.prepare
|
|
71
|
+
.split("&&")
|
|
72
|
+
.map((str) => str.trim())
|
|
73
|
+
.filter((str) => str !== "typia patch")
|
|
74
|
+
.join(" && ");
|
|
75
|
+
// FOR OLDER VERSIONS
|
|
76
|
+
if (typeof data.scripts.postinstall === "string") {
|
|
77
|
+
data.scripts.postinstall = data.scripts.postinstall
|
|
78
|
+
.split("&&")
|
|
79
|
+
.map((str) => str.trim())
|
|
80
|
+
.filter((str) => str.indexOf("ts-patch install") === -1)
|
|
81
|
+
.join(" && ");
|
|
82
|
+
if (data.scripts.postinstall.length === 0)
|
|
83
|
+
delete data.scripts.postinstall;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
CommandExecutor_1.CommandExecutor.run(`${pack.manager} run prepare`);
|
|
87
|
+
// CONFIGURE PLUGIN
|
|
88
|
+
yield PluginConfigurator_1.PluginConfigurator.configure(args);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
NestiaSetupWizard.setup = setup;
|
|
92
|
+
const getTypeScriptVersion = () => __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
const content = yield fs_1.default.promises.readFile(`${__dirname}/../package.json`, "utf-8");
|
|
94
|
+
const json = JSON.parse(content);
|
|
95
|
+
return json.devDependencies.typescript;
|
|
96
|
+
});
|
|
97
|
+
})(NestiaSetupWizard || (exports.NestiaSetupWizard = NestiaSetupWizard = {}));
|
|
98
|
+
//# sourceMappingURL=NestiaSetupWizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestiaSetupWizard.js","sourceRoot":"","sources":["../src/NestiaSetupWizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.NestiaStarter = void 0;
|
|
16
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
17
|
+
const fs_1 = __importDefault(require("fs"));
|
|
18
|
+
var NestiaStarter;
|
|
19
|
+
(function (NestiaStarter) {
|
|
20
|
+
NestiaStarter.clone = (halter) => (argv) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
// VALIDATION
|
|
22
|
+
const dest = argv[0];
|
|
23
|
+
if (dest === undefined)
|
|
24
|
+
halter();
|
|
25
|
+
else if (fs_1.default.existsSync(dest) === true)
|
|
26
|
+
halter("The target directory already exists.");
|
|
27
|
+
console.log("-----------------------------------------");
|
|
28
|
+
console.log(" Nestia Starter Kit");
|
|
29
|
+
console.log("-----------------------------------------");
|
|
30
|
+
// COPY PROJECTS
|
|
31
|
+
execute(`git clone https://github.com/samchon/nestia-template ${dest}`);
|
|
32
|
+
console.log(`cd "${dest}"`);
|
|
33
|
+
process.chdir(dest);
|
|
34
|
+
// INSTALL DEPENDENCIES
|
|
35
|
+
execute("npm install");
|
|
36
|
+
// BUILD TYPESCRIPT
|
|
37
|
+
execute("npm run build");
|
|
38
|
+
// DO TEST
|
|
39
|
+
execute("npm run test");
|
|
40
|
+
// REMOVE .GIT DIRECTORY
|
|
41
|
+
child_process_1.default.execSync("npx rimraf .git");
|
|
42
|
+
child_process_1.default.execSync("npx rimraf .github/dependabot.yml");
|
|
43
|
+
});
|
|
44
|
+
function execute(command) {
|
|
45
|
+
console.log(`\n$ ${command}`);
|
|
46
|
+
child_process_1.default.execSync(command, { stdio: "inherit" });
|
|
47
|
+
}
|
|
48
|
+
})(NestiaStarter || (exports.NestiaStarter = NestiaStarter = {}));
|
|
49
|
+
//# sourceMappingURL=NestiaStarter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestiaStarter.js","sourceRoot":"","sources":["../src/NestiaStarter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAA+B;AAC/B,4CAAoB;AAEpB,IAAiB,aAAa,CAqC7B;AArCD,WAAiB,aAAa;IACf,mBAAK,GAChB,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAO,IAAc,EAAiB,EAAE;QACtC,aAAa;QACb,MAAM,IAAI,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,EAAE,CAAC;aAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;YACnC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,gBAAgB;QAChB,OAAO,CAAC,wDAAwD,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,uBAAuB;QACvB,OAAO,CAAC,aAAa,CAAC,CAAC;QAEvB,mBAAmB;QACnB,OAAO,CAAC,eAAe,CAAC,CAAC;QAEzB,UAAU;QACV,OAAO,CAAC,cAAc,CAAC,CAAC;QAExB,wBAAwB;QACxB,uBAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC/B,uBAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC,CAAA,CAAC;IAEJ,SAAS,OAAO,CAAC,OAAe;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC9B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,EArCgB,aAAa,6BAAb,aAAa,QAqC7B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.NestiaTemplate = void 0;
|
|
16
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
17
|
+
const fs_1 = __importDefault(require("fs"));
|
|
18
|
+
var NestiaTemplate;
|
|
19
|
+
(function (NestiaTemplate) {
|
|
20
|
+
NestiaTemplate.clone = (halter) => (argv) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
// VALIDATION
|
|
22
|
+
const dest = argv[0];
|
|
23
|
+
if (dest === undefined)
|
|
24
|
+
halter();
|
|
25
|
+
else if (fs_1.default.existsSync(dest) === true)
|
|
26
|
+
halter("The target directory already exists.");
|
|
27
|
+
console.log("-----------------------------------------");
|
|
28
|
+
console.log(" Nestia Template Kit");
|
|
29
|
+
console.log("-----------------------------------------");
|
|
30
|
+
// COPY PROJECTS
|
|
31
|
+
execute(`git clone https://github.com/samchon/backend ${dest}`);
|
|
32
|
+
console.log(`cd "${dest}"`);
|
|
33
|
+
process.chdir(dest);
|
|
34
|
+
// INSTALL DEPENDENCIES
|
|
35
|
+
execute("npm install");
|
|
36
|
+
// BUILD TYPESCRIPT
|
|
37
|
+
execute("npm run build");
|
|
38
|
+
// REMOVE .GIT DIRECTORY
|
|
39
|
+
child_process_1.default.execSync("npx rimraf .git");
|
|
40
|
+
});
|
|
41
|
+
function execute(command) {
|
|
42
|
+
console.log(`\n$ ${command}`);
|
|
43
|
+
child_process_1.default.execSync(command, { stdio: "inherit" });
|
|
44
|
+
}
|
|
45
|
+
})(NestiaTemplate || (exports.NestiaTemplate = NestiaTemplate = {}));
|
|
46
|
+
//# sourceMappingURL=NestiaTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestiaTemplate.js","sourceRoot":"","sources":["../src/NestiaTemplate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAA+B;AAC/B,4CAAoB;AAEpB,IAAiB,cAAc,CAiC9B;AAjCD,WAAiB,cAAc;IAChB,oBAAK,GAChB,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAO,IAAc,EAAiB,EAAE;QACtC,aAAa;QACb,MAAM,IAAI,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,EAAE,CAAC;aAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;YACnC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,gBAAgB;QAChB,OAAO,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,uBAAuB;QACvB,OAAO,CAAC,aAAa,CAAC,CAAC;QAEvB,mBAAmB;QACnB,OAAO,CAAC,eAAe,CAAC,CAAC;QAEzB,wBAAwB;QACxB,uBAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC;IAEJ,SAAS,OAAO,CAAC,OAAe;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC9B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,EAjCgB,cAAc,8BAAd,cAAc,QAiC9B"}
|
package/bin/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
declare const USAGE = "Wrong command has been detected. Use like below:\n\nnpx nestia [command] [options?]\n\n 1. npx nestia start <directory>\n 2. npx nestia template <directory>\n 3. npx nestia setup\n 4. npx nestia dependencies\n 5. npx nestia init\n 6. npx nestia sdk\n 7. npx nestia swagger\n 9. npx nestia e2e\n 10. npx nestia all\n";
|
|
3
|
+
declare function halt(desc: string): never;
|
|
4
|
+
declare function main(): Promise<void>;
|
package/bin/index.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
38
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
39
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
40
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
41
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
42
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
const USAGE = `Wrong command has been detected. Use like below:
|
|
46
|
+
|
|
47
|
+
npx nestia [command] [options?]
|
|
48
|
+
|
|
49
|
+
1. npx nestia start <directory>
|
|
50
|
+
2. npx nestia template <directory>
|
|
51
|
+
3. npx nestia setup
|
|
52
|
+
4. npx nestia dependencies
|
|
53
|
+
5. npx nestia init
|
|
54
|
+
6. npx nestia sdk
|
|
55
|
+
7. npx nestia swagger
|
|
56
|
+
9. npx nestia e2e
|
|
57
|
+
10. npx nestia all
|
|
58
|
+
`;
|
|
59
|
+
function halt(desc) {
|
|
60
|
+
console.error(desc);
|
|
61
|
+
process.exit(-1);
|
|
62
|
+
}
|
|
63
|
+
function main() {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const type = process.argv[2];
|
|
66
|
+
const argv = process.argv.slice(3);
|
|
67
|
+
if (type === "start") {
|
|
68
|
+
yield (yield Promise.resolve().then(() => __importStar(require("./NestiaStarter")))).NestiaStarter.clone((msg) => halt(msg !== null && msg !== void 0 ? msg : USAGE))(argv);
|
|
69
|
+
}
|
|
70
|
+
else if (type === "template") {
|
|
71
|
+
yield (yield Promise.resolve().then(() => __importStar(require("./NestiaTemplate")))).NestiaTemplate.clone((msg) => halt(msg !== null && msg !== void 0 ? msg : USAGE))(argv);
|
|
72
|
+
}
|
|
73
|
+
else if (type === "setup") {
|
|
74
|
+
try {
|
|
75
|
+
yield Promise.resolve().then(() => __importStar(require("comment-json")));
|
|
76
|
+
yield Promise.resolve().then(() => __importStar(require("inquirer")));
|
|
77
|
+
yield Promise.resolve().then(() => __importStar(require("commander")));
|
|
78
|
+
}
|
|
79
|
+
catch (_a) {
|
|
80
|
+
halt(`nestia has not been installed. Run "npm i -D nestia" before.`);
|
|
81
|
+
}
|
|
82
|
+
yield (yield Promise.resolve().then(() => __importStar(require("./NestiaSetupWizard")))).NestiaSetupWizard.setup();
|
|
83
|
+
}
|
|
84
|
+
else if (type === "dependencies" ||
|
|
85
|
+
type === "init" ||
|
|
86
|
+
type === "sdk" ||
|
|
87
|
+
type === "swagger" ||
|
|
88
|
+
type === "e2e" ||
|
|
89
|
+
type === "all") {
|
|
90
|
+
const location = "@nestia/sdk/lib/executable/sdk";
|
|
91
|
+
try {
|
|
92
|
+
require.resolve(location);
|
|
93
|
+
}
|
|
94
|
+
catch (_b) {
|
|
95
|
+
halt(`@nestia/sdk has not been installed. Run "npx nestia setup" before.`);
|
|
96
|
+
}
|
|
97
|
+
yield Promise.resolve(`${location}`).then(s => __importStar(require(s)));
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
halt(USAGE);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
main().catch((exp) => {
|
|
104
|
+
console.log(exp.message);
|
|
105
|
+
process.exit(-1);
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
package/bin/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAM,KAAK,GAAG;;;;;;;;;;;;;CAab,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAe,IAAI;;QACjB,MAAM,IAAI,GAAuB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,CACJ,wDAAa,iBAAiB,GAAC,CAChC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,CACJ,wDAAa,kBAAkB,GAAC,CACjC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,wDAAa,cAAc,GAAC,CAAC;gBAC7B,wDAAa,UAAU,GAAC,CAAC;gBACzB,wDAAa,WAAW,GAAC,CAAC;YAC5B,CAAC;YAAC,WAAM,CAAC;gBACP,IAAI,CAAC,8DAA8D,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,CAAC,wDAAa,qBAAqB,GAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACxE,CAAC;aAAM,IACL,IAAI,KAAK,cAAc;YACvB,IAAI,KAAK,MAAM;YACf,IAAI,KAAK,KAAK;YACd,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,KAAK;YACd,IAAI,KAAK,KAAK,EACd,CAAC;YACD,MAAM,QAAQ,GAAW,gCAAgC,CAAC;YAC1D,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YAAC,WAAM,CAAC;gBACP,IAAI,CACF,oEAAoE,CACrE,CAAC;YACJ,CAAC;YACD,yBAAa,QAAQ,uCAAC,CAAC;QACzB,CAAC;;YAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CAAA;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PackageManager } from "./PackageManager";
|
|
2
|
+
export declare namespace ArgumentParser {
|
|
3
|
+
interface IArguments {
|
|
4
|
+
manager: "npm" | "pnpm" | "yarn" | "bun";
|
|
5
|
+
project: string | null;
|
|
6
|
+
runtime: boolean;
|
|
7
|
+
}
|
|
8
|
+
function parse(pack: PackageManager): Promise<IArguments>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ArgumentParser = void 0;
|
|
16
|
+
const commander_1 = __importDefault(require("commander"));
|
|
17
|
+
const fs_1 = __importDefault(require("fs"));
|
|
18
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
19
|
+
const package_manager_detector_1 = require("package-manager-detector");
|
|
20
|
+
var ArgumentParser;
|
|
21
|
+
(function (ArgumentParser) {
|
|
22
|
+
function parse(pack) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
// PREPARE ASSETS
|
|
25
|
+
commander_1.default.program.option("--manager [manager]", "package manager");
|
|
26
|
+
commander_1.default.program.option("--project [project]", "tsconfig.json file location");
|
|
27
|
+
commander_1.default.program.option("--runtime [boolean]", "transform runtime swagger");
|
|
28
|
+
// INTERNAL PROCEDURES
|
|
29
|
+
const questioned = { value: false };
|
|
30
|
+
const action = (closure) => {
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
commander_1.default.program.action((options) => __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
try {
|
|
34
|
+
resolve(yield closure(options));
|
|
35
|
+
}
|
|
36
|
+
catch (exp) {
|
|
37
|
+
reject(exp);
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
commander_1.default.program.parseAsync().catch(reject);
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
const select = (name) => (message) => (choices, filter) => __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
questioned.value = true;
|
|
45
|
+
return (yield inquirer_1.default.createPromptModule()({
|
|
46
|
+
type: "list",
|
|
47
|
+
name: name,
|
|
48
|
+
message: message,
|
|
49
|
+
choices: choices,
|
|
50
|
+
filter,
|
|
51
|
+
}))[name];
|
|
52
|
+
});
|
|
53
|
+
const configure = () => __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const fileList = yield (yield fs_1.default.promises.readdir(process.cwd()))
|
|
55
|
+
.filter((str) => str.substring(0, 8) === "tsconfig" &&
|
|
56
|
+
str.substring(str.length - 5) === ".json")
|
|
57
|
+
.sort((x, y) => x === "tsconfig.json"
|
|
58
|
+
? -1
|
|
59
|
+
: y === "tsconfig.json"
|
|
60
|
+
? 1
|
|
61
|
+
: x < y
|
|
62
|
+
? -1
|
|
63
|
+
: 1);
|
|
64
|
+
if (fileList.length === 0) {
|
|
65
|
+
if (process.cwd() !== pack.directory)
|
|
66
|
+
throw new Error(`Unable to find "tsconfig.json" file.`);
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
else if (fileList.length === 1)
|
|
70
|
+
return fileList[0];
|
|
71
|
+
return select("tsconfig")("TS Config File")(fileList);
|
|
72
|
+
});
|
|
73
|
+
// DO CONSTRUCT
|
|
74
|
+
return action((options) => __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
var _a, _b, _c, _d;
|
|
76
|
+
(_a = options.manager) !== null && _a !== void 0 ? _a : (options.manager = (_b = (yield detectManager())) !== null && _b !== void 0 ? _b : (yield select("manager")("Package Manager")([
|
|
77
|
+
"npm",
|
|
78
|
+
"pnpm",
|
|
79
|
+
"yarn (berry is not supported)",
|
|
80
|
+
"bun",
|
|
81
|
+
], (value) => value.split(" ")[0])));
|
|
82
|
+
pack.manager = options.manager;
|
|
83
|
+
(_c = options.project) !== null && _c !== void 0 ? _c : (options.project = yield configure());
|
|
84
|
+
options.runtime =
|
|
85
|
+
((_d = options.runtime) !== null && _d !== void 0 ? _d : (yield select("runtime")("Transform Runtime Swagger")([
|
|
86
|
+
"true",
|
|
87
|
+
"false",
|
|
88
|
+
]))) !== "false";
|
|
89
|
+
if (questioned.value)
|
|
90
|
+
console.log("");
|
|
91
|
+
return options;
|
|
92
|
+
}));
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
ArgumentParser.parse = parse;
|
|
96
|
+
const detectManager = () => __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
var _a;
|
|
98
|
+
const result = yield (0, package_manager_detector_1.detect)({ cwd: process.cwd() });
|
|
99
|
+
if ((result === null || result === void 0 ? void 0 : result.name) === "npm")
|
|
100
|
+
return null; // NPM case is still selectable
|
|
101
|
+
else if ((result === null || result === void 0 ? void 0 : result.name) === "deno")
|
|
102
|
+
return null; // Deno case is not supported
|
|
103
|
+
return (_a = result === null || result === void 0 ? void 0 : result.name) !== null && _a !== void 0 ? _a : null;
|
|
104
|
+
});
|
|
105
|
+
})(ArgumentParser || (exports.ArgumentParser = ArgumentParser = {}));
|
|
106
|
+
//# sourceMappingURL=ArgumentParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArgumentParser.js","sourceRoot":"","sources":["../../src/internal/ArgumentParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CommandExecutor = void 0;
|
|
7
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
8
|
+
var CommandExecutor;
|
|
9
|
+
(function (CommandExecutor) {
|
|
10
|
+
function run(str) {
|
|
11
|
+
console.log(`\n$ ${str}`);
|
|
12
|
+
child_process_1.default.execSync(str, { stdio: "inherit" });
|
|
13
|
+
}
|
|
14
|
+
CommandExecutor.run = run;
|
|
15
|
+
})(CommandExecutor || (exports.CommandExecutor = CommandExecutor = {}));
|
|
16
|
+
//# sourceMappingURL=CommandExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandExecutor.js","sourceRoot":"","sources":["../../src/internal/CommandExecutor.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA+B;AAE/B,IAAiB,eAAe,CAK/B;AALD,WAAiB,eAAe;IAC9B,SAAgB,GAAG,CAAC,GAAW;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC1B,uBAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IAHe,mBAAG,MAGlB,CAAA;AACH,CAAC,EALgB,eAAe,+BAAf,eAAe,QAK/B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FileRetriever = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
var FileRetriever;
|
|
10
|
+
(function (FileRetriever) {
|
|
11
|
+
FileRetriever.directory = (name) => (dir, depth = 0) => {
|
|
12
|
+
const location = path_1.default.join(dir, name);
|
|
13
|
+
if (fs_1.default.existsSync(location))
|
|
14
|
+
return dir;
|
|
15
|
+
else if (depth > 2)
|
|
16
|
+
return null;
|
|
17
|
+
return FileRetriever.directory(name)(path_1.default.join(dir, ".."), depth + 1);
|
|
18
|
+
};
|
|
19
|
+
FileRetriever.file = (name) => (directory, depth = 0) => {
|
|
20
|
+
const location = path_1.default.join(directory, name);
|
|
21
|
+
if (fs_1.default.existsSync(location))
|
|
22
|
+
return location;
|
|
23
|
+
else if (depth > 2)
|
|
24
|
+
return null;
|
|
25
|
+
return FileRetriever.file(name)(path_1.default.join(directory, ".."), depth + 1);
|
|
26
|
+
};
|
|
27
|
+
})(FileRetriever || (exports.FileRetriever = FileRetriever = {}));
|
|
28
|
+
//# sourceMappingURL=FileRetriever.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileRetriever.js","sourceRoot":"","sources":["../../src/internal/FileRetriever.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,IAAiB,aAAa,CAkB7B;AAlBD,WAAiB,aAAa;IACf,uBAAS,GACpB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,GAAW,EAAE,QAAgB,CAAC,EAAiB,EAAE;QAChD,MAAM,QAAQ,GAAW,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,GAAG,CAAC;aACnC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,cAAA,SAAS,CAAC,IAAI,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IAES,kBAAI,GACf,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAiB,EAAE,QAAgB,CAAC,EAAiB,EAAE;QACtD,MAAM,QAAQ,GAAW,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;aACxC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,cAAA,IAAI,CAAC,IAAI,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACN,CAAC,EAlBgB,aAAa,6BAAb,aAAa,QAkB7B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare class PackageManager {
|
|
2
|
+
readonly directory: string;
|
|
3
|
+
data: Package.Data;
|
|
4
|
+
manager: Manager;
|
|
5
|
+
get file(): string;
|
|
6
|
+
static mount(): Promise<PackageManager>;
|
|
7
|
+
save(modifier: (data: Package.Data) => void): Promise<void>;
|
|
8
|
+
install(props: {
|
|
9
|
+
dev: boolean;
|
|
10
|
+
modulo: string;
|
|
11
|
+
version?: `latest` | `next` | `^${number}.${number}.${number}` | (string & {});
|
|
12
|
+
force?: boolean;
|
|
13
|
+
}): boolean;
|
|
14
|
+
private constructor();
|
|
15
|
+
private static load;
|
|
16
|
+
}
|
|
17
|
+
export declare namespace Package {
|
|
18
|
+
interface Data {
|
|
19
|
+
scripts?: Record<string, string>;
|
|
20
|
+
dependencies?: Record<string, string>;
|
|
21
|
+
devDependencies?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
type Manager = "npm" | "pnpm" | "yarn" | "bun";
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PackageManager = void 0;
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const CommandExecutor_1 = require("./CommandExecutor");
|
|
19
|
+
const FileRetriever_1 = require("./FileRetriever");
|
|
20
|
+
class PackageManager {
|
|
21
|
+
get file() {
|
|
22
|
+
return path_1.default.join(this.directory, "package.json");
|
|
23
|
+
}
|
|
24
|
+
static mount() {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const location = yield FileRetriever_1.FileRetriever.directory("package.json")(process.cwd());
|
|
27
|
+
if (location === null)
|
|
28
|
+
throw new Error(`Unable to find "package.json" file`);
|
|
29
|
+
return new PackageManager(location, yield this.load(path_1.default.join(location, "package.json")));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
save(modifier) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const content = yield fs_1.default.promises.readFile(this.file, "utf8");
|
|
35
|
+
this.data = JSON.parse(content);
|
|
36
|
+
modifier(this.data);
|
|
37
|
+
return fs_1.default.promises.writeFile(this.file, JSON.stringify(this.data, null, 2), "utf8");
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
install(props) {
|
|
41
|
+
const middle = [
|
|
42
|
+
installCmdTable[this.manager],
|
|
43
|
+
props.dev ? devOptionTable[this.manager] : "",
|
|
44
|
+
]
|
|
45
|
+
.filter((str) => !!str.length)
|
|
46
|
+
.join(" ");
|
|
47
|
+
const modulo = `${props.modulo}${props.version ? `@${props.version}` : ""}`;
|
|
48
|
+
CommandExecutor_1.CommandExecutor.run([this.manager, middle, modulo].join(" "));
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
constructor(directory, data) {
|
|
52
|
+
this.directory = directory;
|
|
53
|
+
this.data = data;
|
|
54
|
+
this.manager = "npm";
|
|
55
|
+
}
|
|
56
|
+
static load(file) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const content = yield fs_1.default.promises.readFile(file, "utf8");
|
|
59
|
+
return JSON.parse(content);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.PackageManager = PackageManager;
|
|
64
|
+
const installCmdTable = {
|
|
65
|
+
npm: "i",
|
|
66
|
+
pnpm: "add",
|
|
67
|
+
yarn: "add",
|
|
68
|
+
bun: "add",
|
|
69
|
+
};
|
|
70
|
+
const devOptionTable = {
|
|
71
|
+
npm: "-D",
|
|
72
|
+
pnpm: "-D",
|
|
73
|
+
yarn: "-D",
|
|
74
|
+
bun: "-d",
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=PackageManager.js.map
|