@tsed/cli-core 3.20.16 → 3.21.0-rc.1
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/cjs/CliCore.js +97 -0
- package/lib/cjs/CliCore.js.map +1 -0
- package/lib/cjs/decorators/command.js +11 -0
- package/lib/cjs/decorators/command.js.map +1 -0
- package/lib/cjs/decorators/index.js +9 -0
- package/lib/cjs/decorators/index.js.map +1 -0
- package/lib/cjs/decorators/on.js +13 -0
- package/lib/cjs/decorators/on.js.map +1 -0
- package/lib/cjs/decorators/onAdd.js +10 -0
- package/lib/cjs/decorators/onAdd.js.map +1 -0
- package/lib/cjs/decorators/onExec.js +10 -0
- package/lib/cjs/decorators/onExec.js.map +1 -0
- package/lib/cjs/decorators/onPostInstall.js +10 -0
- package/lib/cjs/decorators/onPostInstall.js.map +1 -0
- package/lib/cjs/decorators/onPrompt.js +10 -0
- package/lib/cjs/decorators/onPrompt.js.map +1 -0
- package/lib/cjs/domains/CliError.js +14 -0
- package/lib/cjs/domains/CliError.js.map +1 -0
- package/lib/cjs/domains/CommandStoreKeys.js +12 -0
- package/lib/cjs/domains/CommandStoreKeys.js.map +1 -0
- package/lib/cjs/index.js +30 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/interfaces/CliDefaultOptions.js +3 -0
- package/lib/cjs/interfaces/CliDefaultOptions.js.map +1 -0
- package/lib/cjs/interfaces/CommandMetadata.js +3 -0
- package/lib/cjs/interfaces/CommandMetadata.js.map +1 -0
- package/lib/cjs/interfaces/CommandParameters.js +3 -0
- package/lib/cjs/interfaces/CommandParameters.js.map +1 -0
- package/lib/cjs/interfaces/CommandProvider.js +3 -0
- package/lib/cjs/interfaces/CommandProvider.js.map +1 -0
- package/lib/cjs/interfaces/PackageJson.js +3 -0
- package/lib/cjs/interfaces/PackageJson.js.map +1 -0
- package/lib/cjs/interfaces/ProjectPreferences.js +10 -0
- package/lib/cjs/interfaces/ProjectPreferences.js.map +1 -0
- package/lib/cjs/interfaces/Tasks.js +3 -0
- package/lib/cjs/interfaces/Tasks.js.map +1 -0
- package/lib/cjs/interfaces/index.js +11 -0
- package/lib/cjs/interfaces/index.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/registries/CommandRegistry.js +13 -0
- package/lib/cjs/registries/CommandRegistry.js.map +1 -0
- package/lib/cjs/services/CliConfiguration.js +21 -0
- package/lib/cjs/services/CliConfiguration.js.map +1 -0
- package/lib/cjs/services/CliDockerComposeYaml.js +83 -0
- package/lib/cjs/services/CliDockerComposeYaml.js.map +1 -0
- package/lib/cjs/services/CliExeca.js +45 -0
- package/lib/cjs/services/CliExeca.js.map +1 -0
- package/lib/cjs/services/CliFs.js +55 -0
- package/lib/cjs/services/CliFs.js.map +1 -0
- package/lib/cjs/services/CliHooks.js +34 -0
- package/lib/cjs/services/CliHooks.js.map +1 -0
- package/lib/cjs/services/CliHttpClient.js +107 -0
- package/lib/cjs/services/CliHttpClient.js.map +1 -0
- package/lib/cjs/services/CliHttpLogClient.js +83 -0
- package/lib/cjs/services/CliHttpLogClient.js.map +1 -0
- package/lib/cjs/services/CliPackageJson.js +16 -0
- package/lib/cjs/services/CliPackageJson.js.map +1 -0
- package/lib/cjs/services/CliPlugins.js +78 -0
- package/lib/cjs/services/CliPlugins.js.map +1 -0
- package/lib/cjs/services/CliProxyAgent.js +87 -0
- package/lib/cjs/services/CliProxyAgent.js.map +1 -0
- package/lib/cjs/services/CliRunScript.js +31 -0
- package/lib/cjs/services/CliRunScript.js.map +1 -0
- package/lib/cjs/services/CliService.js +271 -0
- package/lib/cjs/services/CliService.js.map +1 -0
- package/lib/cjs/services/CliYaml.js +37 -0
- package/lib/cjs/services/CliYaml.js.map +1 -0
- package/lib/cjs/services/NpmRegistryClient.js +121 -0
- package/lib/cjs/services/NpmRegistryClient.js.map +1 -0
- package/lib/cjs/services/ProjectPackageJson.js +420 -0
- package/lib/cjs/services/ProjectPackageJson.js.map +1 -0
- package/lib/cjs/services/Renderer.js +154 -0
- package/lib/cjs/services/Renderer.js.map +1 -0
- package/lib/cjs/services/index.js +17 -0
- package/lib/cjs/services/index.js.map +1 -0
- package/lib/cjs/utils/createInjector.js +35 -0
- package/lib/cjs/utils/createInjector.js.map +1 -0
- package/lib/cjs/utils/createTasksRunner.js +75 -0
- package/lib/cjs/utils/createTasksRunner.js.map +1 -0
- package/lib/cjs/utils/getCommandMetadata.js +19 -0
- package/lib/cjs/utils/getCommandMetadata.js.map +1 -0
- package/lib/cjs/utils/getPackageJson.js +38 -0
- package/lib/cjs/utils/getPackageJson.js.map +1 -0
- package/lib/cjs/utils/hbs/array.js +522 -0
- package/lib/cjs/utils/hbs/array.js.map +1 -0
- package/lib/cjs/utils/hbs/collection.js +66 -0
- package/lib/cjs/utils/hbs/collection.js.map +1 -0
- package/lib/cjs/utils/hbs/comparison.js +437 -0
- package/lib/cjs/utils/hbs/comparison.js.map +1 -0
- package/lib/cjs/utils/hbs/index.js +15 -0
- package/lib/cjs/utils/hbs/index.js.map +1 -0
- package/lib/cjs/utils/hbs/object.js +245 -0
- package/lib/cjs/utils/hbs/object.js.map +1 -0
- package/lib/cjs/utils/hbs/switch.js +14 -0
- package/lib/cjs/utils/hbs/switch.js.map +1 -0
- package/lib/cjs/utils/index.js +14 -0
- package/lib/cjs/utils/index.js.map +1 -0
- package/lib/cjs/utils/isValidVersion.js +11 -0
- package/lib/cjs/utils/isValidVersion.js.map +1 -0
- package/lib/cjs/utils/loadPlugins.js +47 -0
- package/lib/cjs/utils/loadPlugins.js.map +1 -0
- package/lib/cjs/utils/logToCurl.js +19 -0
- package/lib/cjs/utils/logToCurl.js.map +1 -0
- package/lib/cjs/utils/mapCommanderArgs.js +40 -0
- package/lib/cjs/utils/mapCommanderArgs.js.map +1 -0
- package/lib/cjs/utils/mapCommanderOptions.js +16 -0
- package/lib/cjs/utils/mapCommanderOptions.js.map +1 -0
- package/lib/cjs/utils/normalizePath.js +19 -0
- package/lib/cjs/utils/normalizePath.js.map +1 -0
- package/lib/cjs/utils/parseOption.js +27 -0
- package/lib/cjs/utils/parseOption.js.map +1 -0
- package/lib/cjs/utils/patchCommander.js +58 -0
- package/lib/cjs/utils/patchCommander.js.map +1 -0
- package/lib/cjs/utils/renderer/insertAfter.js +17 -0
- package/lib/cjs/utils/renderer/insertAfter.js.map +1 -0
- package/lib/cjs/utils/renderer/insertImport.js +16 -0
- package/lib/cjs/utils/renderer/insertImport.js.map +1 -0
- package/lib/esm/CliCore.js +94 -0
- package/lib/esm/CliCore.js.map +1 -0
- package/lib/esm/decorators/command.js +7 -0
- package/lib/esm/decorators/command.js.map +1 -0
- package/lib/esm/decorators/index.js +6 -0
- package/lib/esm/decorators/index.js.map +1 -0
- package/lib/esm/decorators/on.js +9 -0
- package/lib/esm/decorators/on.js.map +1 -0
- package/lib/esm/decorators/onAdd.js +6 -0
- package/lib/esm/decorators/onAdd.js.map +1 -0
- package/lib/esm/decorators/onExec.js +6 -0
- package/lib/esm/decorators/onExec.js.map +1 -0
- package/lib/esm/decorators/onPostInstall.js +6 -0
- package/lib/esm/decorators/onPostInstall.js.map +1 -0
- package/lib/esm/decorators/onPrompt.js +6 -0
- package/lib/esm/decorators/onPrompt.js.map +1 -0
- package/lib/esm/domains/CliError.js +10 -0
- package/lib/esm/domains/CliError.js.map +1 -0
- package/lib/esm/domains/CommandStoreKeys.js +9 -0
- package/lib/esm/domains/CommandStoreKeys.js.map +1 -0
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/interfaces/CliDefaultOptions.js +2 -0
- package/lib/esm/interfaces/CliDefaultOptions.js.map +1 -0
- package/lib/esm/interfaces/CommandMetadata.js +2 -0
- package/lib/esm/interfaces/CommandMetadata.js.map +1 -0
- package/lib/esm/interfaces/CommandParameters.js +2 -0
- package/lib/esm/interfaces/CommandParameters.js.map +1 -0
- package/lib/esm/interfaces/CommandProvider.js +2 -0
- package/lib/esm/interfaces/CommandProvider.js.map +1 -0
- package/lib/esm/interfaces/PackageJson.js +2 -0
- package/lib/esm/interfaces/PackageJson.js.map +1 -0
- package/lib/esm/interfaces/ProjectPreferences.js +7 -0
- package/lib/esm/interfaces/ProjectPreferences.js.map +1 -0
- package/lib/esm/interfaces/Tasks.js +2 -0
- package/lib/esm/interfaces/Tasks.js.map +1 -0
- package/lib/esm/interfaces/index.js +8 -0
- package/lib/esm/interfaces/index.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/registries/CommandRegistry.js +10 -0
- package/lib/esm/registries/CommandRegistry.js.map +1 -0
- package/lib/esm/services/CliConfiguration.js +18 -0
- package/lib/esm/services/CliConfiguration.js.map +1 -0
- package/lib/esm/services/CliDockerComposeYaml.js +80 -0
- package/lib/esm/services/CliDockerComposeYaml.js.map +1 -0
- package/lib/esm/services/CliExeca.js +42 -0
- package/lib/esm/services/CliExeca.js.map +1 -0
- package/lib/esm/services/CliFs.js +52 -0
- package/lib/esm/services/CliFs.js.map +1 -0
- package/lib/esm/services/CliHooks.js +31 -0
- package/lib/esm/services/CliHooks.js.map +1 -0
- package/lib/esm/services/CliHttpClient.js +104 -0
- package/lib/esm/services/CliHttpClient.js.map +1 -0
- package/lib/esm/services/CliHttpLogClient.js +80 -0
- package/lib/esm/services/CliHttpLogClient.js.map +1 -0
- package/lib/esm/services/CliPackageJson.js +12 -0
- package/lib/esm/services/CliPackageJson.js.map +1 -0
- package/lib/esm/services/CliPlugins.js +75 -0
- package/lib/esm/services/CliPlugins.js.map +1 -0
- package/lib/esm/services/CliProxyAgent.js +84 -0
- package/lib/esm/services/CliProxyAgent.js.map +1 -0
- package/lib/esm/services/CliRunScript.js +28 -0
- package/lib/esm/services/CliRunScript.js.map +1 -0
- package/lib/esm/services/CliService.js +268 -0
- package/lib/esm/services/CliService.js.map +1 -0
- package/lib/esm/services/CliYaml.js +34 -0
- package/lib/esm/services/CliYaml.js.map +1 -0
- package/lib/esm/services/NpmRegistryClient.js +117 -0
- package/lib/esm/services/NpmRegistryClient.js.map +1 -0
- package/lib/esm/services/ProjectPackageJson.js +417 -0
- package/lib/esm/services/ProjectPackageJson.js.map +1 -0
- package/lib/esm/services/Renderer.js +150 -0
- package/lib/esm/services/Renderer.js.map +1 -0
- package/lib/esm/services/index.js +14 -0
- package/lib/esm/services/index.js.map +1 -0
- package/lib/esm/utils/createInjector.js +30 -0
- package/lib/esm/utils/createInjector.js.map +1 -0
- package/lib/esm/utils/createTasksRunner.js +69 -0
- package/lib/esm/utils/createTasksRunner.js.map +1 -0
- package/lib/esm/utils/getCommandMetadata.js +15 -0
- package/lib/esm/utils/getCommandMetadata.js.map +1 -0
- package/lib/esm/utils/getPackageJson.js +33 -0
- package/lib/esm/utils/getPackageJson.js.map +1 -0
- package/lib/esm/utils/hbs/array.js +518 -0
- package/lib/esm/utils/hbs/array.js.map +1 -0
- package/lib/esm/utils/hbs/collection.js +62 -0
- package/lib/esm/utils/hbs/collection.js.map +1 -0
- package/lib/esm/utils/hbs/comparison.js +433 -0
- package/lib/esm/utils/hbs/comparison.js.map +1 -0
- package/lib/esm/utils/hbs/index.js +12 -0
- package/lib/esm/utils/hbs/index.js.map +1 -0
- package/lib/esm/utils/hbs/object.js +241 -0
- package/lib/esm/utils/hbs/object.js.map +1 -0
- package/lib/esm/utils/hbs/switch.js +11 -0
- package/lib/esm/utils/hbs/switch.js.map +1 -0
- package/lib/esm/utils/index.js +11 -0
- package/lib/esm/utils/index.js.map +1 -0
- package/lib/esm/utils/isValidVersion.js +6 -0
- package/lib/esm/utils/isValidVersion.js.map +1 -0
- package/lib/esm/utils/loadPlugins.js +42 -0
- package/lib/esm/utils/loadPlugins.js.map +1 -0
- package/lib/esm/utils/logToCurl.js +14 -0
- package/lib/esm/utils/logToCurl.js.map +1 -0
- package/lib/esm/utils/mapCommanderArgs.js +36 -0
- package/lib/esm/utils/mapCommanderArgs.js.map +1 -0
- package/lib/esm/utils/mapCommanderOptions.js +12 -0
- package/lib/esm/utils/mapCommanderOptions.js.map +1 -0
- package/lib/esm/utils/normalizePath.js +14 -0
- package/lib/esm/utils/normalizePath.js.map +1 -0
- package/lib/esm/utils/parseOption.js +23 -0
- package/lib/esm/utils/parseOption.js.map +1 -0
- package/lib/esm/utils/patchCommander.js +55 -0
- package/lib/esm/utils/patchCommander.js.map +1 -0
- package/lib/esm/utils/renderer/insertAfter.js +13 -0
- package/lib/esm/utils/renderer/insertAfter.js.map +1 -0
- package/lib/esm/utils/renderer/insertImport.js +12 -0
- package/lib/esm/utils/renderer/insertImport.js.map +1 -0
- package/lib/{CliCore.d.ts → types/CliCore.d.ts} +0 -0
- package/lib/{decorators → types/decorators}/command.d.ts +0 -0
- package/lib/{decorators → types/decorators}/index.d.ts +0 -0
- package/lib/{decorators → types/decorators}/on.d.ts +0 -0
- package/lib/{decorators → types/decorators}/onAdd.d.ts +0 -0
- package/lib/{decorators → types/decorators}/onExec.d.ts +0 -0
- package/lib/{decorators → types/decorators}/onPostInstall.d.ts +0 -0
- package/lib/{decorators → types/decorators}/onPrompt.d.ts +0 -0
- package/lib/{domains → types/domains}/CliError.d.ts +0 -0
- package/lib/{domains → types/domains}/CommandStoreKeys.d.ts +0 -0
- package/lib/{index.d.ts → types/index.d.ts} +0 -0
- package/lib/{interfaces → types/interfaces}/CliDefaultOptions.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/CommandMetadata.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/CommandParameters.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/CommandProvider.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/PackageJson.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/ProjectPreferences.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/Tasks.d.ts +0 -0
- package/lib/{interfaces → types/interfaces}/index.d.ts +0 -0
- package/lib/{registries → types/registries}/CommandRegistry.d.ts +0 -0
- package/lib/{services → types/services}/CliConfiguration.d.ts +0 -0
- package/lib/{services → types/services}/CliDockerComposeYaml.d.ts +0 -0
- package/lib/{services → types/services}/CliExeca.d.ts +1 -0
- package/lib/{services → types/services}/CliFs.d.ts +1 -0
- package/lib/{services → types/services}/CliHooks.d.ts +0 -0
- package/lib/{services → types/services}/CliHttpClient.d.ts +0 -0
- package/lib/{services → types/services}/CliHttpLogClient.d.ts +0 -0
- package/lib/{services → types/services}/CliPackageJson.d.ts +0 -0
- package/lib/{services → types/services}/CliPlugins.d.ts +0 -0
- package/lib/{services → types/services}/CliProxyAgent.d.ts +0 -0
- package/lib/{services → types/services}/CliRunScript.d.ts +0 -0
- package/lib/{services → types/services}/CliService.d.ts +0 -0
- package/lib/{services → types/services}/CliYaml.d.ts +0 -0
- package/lib/{services → types/services}/NpmRegistryClient.d.ts +0 -0
- package/lib/{services → types/services}/ProjectPackageJson.d.ts +0 -0
- package/lib/{services → types/services}/Renderer.d.ts +0 -0
- package/lib/{services → types/services}/index.d.ts +0 -0
- package/lib/{utils → types/utils}/createInjector.d.ts +0 -0
- package/lib/{utils → types/utils}/createTasksRunner.d.ts +0 -0
- package/lib/{utils → types/utils}/getCommandMetadata.d.ts +0 -0
- package/lib/{utils → types/utils}/getPackageJson.d.ts +0 -0
- package/lib/{utils → types/utils}/hbs/array.d.ts +0 -0
- package/lib/{utils → types/utils}/hbs/collection.d.ts +0 -0
- package/lib/{utils → types/utils}/hbs/comparison.d.ts +0 -0
- package/lib/{utils → types/utils}/hbs/index.d.ts +0 -0
- package/lib/{utils → types/utils}/hbs/object.d.ts +0 -0
- package/lib/{utils → types/utils}/hbs/switch.d.ts +0 -0
- package/lib/{utils → types/utils}/index.d.ts +0 -0
- package/lib/{utils → types/utils}/isValidVersion.d.ts +0 -0
- package/lib/{utils → types/utils}/loadPlugins.d.ts +0 -0
- package/lib/{utils → types/utils}/logToCurl.d.ts +0 -0
- package/lib/{utils → types/utils}/mapCommanderArgs.d.ts +0 -0
- package/lib/{utils → types/utils}/mapCommanderOptions.d.ts +0 -0
- package/lib/{utils → types/utils}/normalizePath.d.ts +0 -0
- package/lib/{utils → types/utils}/parseOption.d.ts +0 -0
- package/lib/{utils → types/utils}/patchCommander.d.ts +0 -0
- package/lib/{utils → types/utils}/renderer/insertAfter.d.ts +0 -0
- package/lib/{utils → types/utils}/renderer/insertImport.d.ts +0 -0
- package/package.json +19 -9
- package/tsconfig.compile.esm.json +12 -0
- package/lib/index.js +0 -3992
- package/lib/index.js.map +0 -1
- package/lib/index.modern.js +0 -3832
- package/lib/index.modern.js.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var CliCore_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CliCore = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const di_1 = require("@tsed/di");
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const update_notifier_1 = tslib_1.__importDefault(require("update-notifier"));
|
|
11
|
+
const CliConfiguration_1 = require("./services/CliConfiguration");
|
|
12
|
+
const CliPackageJson_1 = require("./services/CliPackageJson");
|
|
13
|
+
const CliService_1 = require("./services/CliService");
|
|
14
|
+
const ProjectPackageJson_1 = require("./services/ProjectPackageJson");
|
|
15
|
+
const createInjector_1 = require("./utils/createInjector");
|
|
16
|
+
const loadPlugins_1 = require("./utils/loadPlugins");
|
|
17
|
+
const CliError_1 = require("./domains/CliError");
|
|
18
|
+
const semver_1 = tslib_1.__importDefault(require("semver"));
|
|
19
|
+
function isHelpManual(argv) {
|
|
20
|
+
return argv.includes("-h") || argv.includes("--help");
|
|
21
|
+
}
|
|
22
|
+
let CliCore = CliCore_1 = class CliCore {
|
|
23
|
+
static checkNodeVersion(wanted, id) {
|
|
24
|
+
if (!semver_1.default.satisfies(process.version, wanted)) {
|
|
25
|
+
console.log(chalk_1.default.red("You are using Node " +
|
|
26
|
+
process.version +
|
|
27
|
+
", but this version of " +
|
|
28
|
+
id +
|
|
29
|
+
" requires Node " +
|
|
30
|
+
wanted +
|
|
31
|
+
".\nPlease upgrade your Node version."));
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
static async bootstrap(settings, module = CliCore_1) {
|
|
37
|
+
const injector = this.createInjector(settings);
|
|
38
|
+
settings.plugins && (await (0, loadPlugins_1.loadPlugins)(injector));
|
|
39
|
+
await this.loadInjector(injector, module);
|
|
40
|
+
await injector.emit("$onReady");
|
|
41
|
+
const cli = injector.get(CliCore_1);
|
|
42
|
+
try {
|
|
43
|
+
await cli.cliService.parseArgs(injector.settings.get("argv"));
|
|
44
|
+
}
|
|
45
|
+
catch (er) {
|
|
46
|
+
throw new CliError_1.CliError({ origin: er, cli });
|
|
47
|
+
}
|
|
48
|
+
return cli;
|
|
49
|
+
}
|
|
50
|
+
static async loadInjector(injector, module = CliCore_1) {
|
|
51
|
+
await injector.emit("$beforeInit");
|
|
52
|
+
const container = (0, di_1.createContainer)();
|
|
53
|
+
await injector.load(container, module);
|
|
54
|
+
await injector.emit("$afterInit");
|
|
55
|
+
injector.settings.set("loaded", true);
|
|
56
|
+
}
|
|
57
|
+
static updateNotifier(pkg) {
|
|
58
|
+
(0, update_notifier_1.default)({ pkg, updateCheckInterval: 0 }).notify();
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
static createInjector(settings) {
|
|
62
|
+
const argv = settings.argv || process.argv;
|
|
63
|
+
return (0, createInjector_1.createInjector)({
|
|
64
|
+
...settings,
|
|
65
|
+
name: settings.name || "tsed",
|
|
66
|
+
argv,
|
|
67
|
+
project: {
|
|
68
|
+
rootDir: this.getProjectRoot(argv),
|
|
69
|
+
srcDir: "src",
|
|
70
|
+
scriptsDir: "scripts",
|
|
71
|
+
...(settings.project || {})
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
static getProjectRoot(argv) {
|
|
76
|
+
if (!isHelpManual(argv)) {
|
|
77
|
+
const projectRoot = new commander_1.Command().option("-r, --root-dir <path>", "Project root directory").allowUnknownOption(true).parse(argv).opts().rootDir || "";
|
|
78
|
+
return (0, path_1.resolve)((0, path_1.join)(process.cwd(), projectRoot));
|
|
79
|
+
}
|
|
80
|
+
return process.cwd();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
tslib_1.__decorate([
|
|
84
|
+
(0, di_1.Inject)(),
|
|
85
|
+
tslib_1.__metadata("design:type", di_1.InjectorService)
|
|
86
|
+
], CliCore.prototype, "injector", void 0);
|
|
87
|
+
tslib_1.__decorate([
|
|
88
|
+
(0, di_1.Inject)(),
|
|
89
|
+
tslib_1.__metadata("design:type", CliService_1.CliService)
|
|
90
|
+
], CliCore.prototype, "cliService", void 0);
|
|
91
|
+
CliCore = CliCore_1 = tslib_1.__decorate([
|
|
92
|
+
(0, di_1.Module)({
|
|
93
|
+
imports: [CliPackageJson_1.CliPackageJson, ProjectPackageJson_1.ProjectPackageJson, CliService_1.CliService, CliConfiguration_1.CliConfiguration]
|
|
94
|
+
})
|
|
95
|
+
], CliCore);
|
|
96
|
+
exports.CliCore = CliCore;
|
|
97
|
+
//# sourceMappingURL=CliCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {createContainer, Inject, InjectorService, Module} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport chalk from \"chalk\";\nimport {Command} from \"commander\";\nimport {join, resolve} from \"path\";\nimport updateNotifier from \"update-notifier\";\nimport {CliConfiguration} from \"./services/CliConfiguration\";\nimport {CliPackageJson} from \"./services/CliPackageJson\";\nimport {CliService} from \"./services/CliService\";\nimport {ProjectPackageJson} from \"./services/ProjectPackageJson\";\nimport {createInjector} from \"./utils/createInjector\";\nimport {loadPlugins} from \"./utils/loadPlugins\";\nimport {CliError} from \"./domains/CliError\";\nimport semver from \"semver\";\n\nfunction isHelpManual(argv: string[]) {\n return argv.includes(\"-h\") || argv.includes(\"--help\");\n}\n\n@Module({\n imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]\n})\nexport class CliCore {\n @Inject()\n injector: InjectorService;\n\n @Inject()\n cliService: CliService;\n\n static checkNodeVersion(wanted: string, id: string) {\n if (!semver.satisfies(process.version, wanted)) {\n console.log(\n chalk.red(\n \"You are using Node \" +\n process.version +\n \", but this version of \" +\n id +\n \" requires Node \" +\n wanted +\n \".\\nPlease upgrade your Node version.\"\n )\n );\n process.exit(1);\n }\n\n return this;\n }\n\n static async bootstrap(settings: Partial<TsED.Configuration>, module: Type = CliCore): Promise<CliCore> {\n const injector = this.createInjector(settings);\n\n settings.plugins && (await loadPlugins(injector));\n\n await this.loadInjector(injector, module);\n\n await injector.emit(\"$onReady\");\n\n const cli = injector.get<CliCore>(CliCore)!;\n\n try {\n await cli.cliService.parseArgs(injector.settings.get(\"argv\")!);\n } catch (er) {\n throw new CliError({origin: er, cli});\n }\n\n return cli;\n }\n\n static async loadInjector(injector: InjectorService, module: Type = CliCore) {\n await injector.emit(\"$beforeInit\");\n\n const container = createContainer();\n\n await injector.load(container, module);\n\n await injector.emit(\"$afterInit\");\n\n injector.settings.set(\"loaded\", true);\n }\n\n static updateNotifier(pkg: any) {\n updateNotifier({pkg, updateCheckInterval: 0}).notify();\n return this;\n }\n\n protected static createInjector(settings: Partial<TsED.Configuration>) {\n const argv = settings.argv || process.argv;\n\n return createInjector({\n ...settings,\n name: settings.name || \"tsed\",\n argv,\n project: {\n rootDir: this.getProjectRoot(argv),\n srcDir: \"src\",\n scriptsDir: \"scripts\",\n ...(settings.project || {})\n }\n });\n }\n\n protected static getProjectRoot(argv: string[]) {\n if (!isHelpManual(argv)) {\n const projectRoot =\n new Command().option(\"-r, --root-dir <path>\", \"Project root directory\").allowUnknownOption(true).parse(argv).opts().rootDir || \"\";\n\n return resolve(join(process.cwd(), projectRoot));\n }\n\n return process.cwd();\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Command = void 0;
|
|
4
|
+
const core_1 = require("@tsed/core");
|
|
5
|
+
const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
|
|
6
|
+
const CommandRegistry_1 = require("../registries/CommandRegistry");
|
|
7
|
+
function Command(options) {
|
|
8
|
+
return (0, core_1.useDecorators)(CommandRegistry_1.registerCommand, (0, core_1.StoreSet)(CommandStoreKeys_1.CommandStoreKeys.COMMAND, options));
|
|
9
|
+
}
|
|
10
|
+
exports.Command = Command;
|
|
11
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/decorators/command.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,kEAA6D;AAE7D,mEAA8D;AAE9D,SAAgB,OAAO,CAAC,OAA0B;IAChD,OAAO,IAAA,oBAAa,EAAC,iCAAe,EAAE,IAAA,eAAQ,EAAC,mCAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAQ,CAAC;AAC5F,CAAC;AAFD,0BAEC","sourcesContent":["import {useDecorators, StoreSet} from \"@tsed/core\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {CommandParameters} from \"../interfaces/CommandParameters\";\nimport {registerCommand} from \"../registries/CommandRegistry\";\n\nexport function Command(options: CommandParameters): ClassDecorator {\n return useDecorators(registerCommand, StoreSet(CommandStoreKeys.COMMAND, options)) as any;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./command"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./onAdd"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./onExec"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./onPostInstall"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./onPrompt"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,0DAAgC;AAChC,qDAA2B","sourcesContent":["export * from \"./command\";\nexport * from \"./onAdd\";\nexport * from \"./onExec\";\nexport * from \"./onPostInstall\";\nexport * from \"./onPrompt\";\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.On = void 0;
|
|
4
|
+
const core_1 = require("@tsed/core");
|
|
5
|
+
function On(hookName, name) {
|
|
6
|
+
return (target, propertyKey) => {
|
|
7
|
+
(0, core_1.StoreMerge)(hookName, {
|
|
8
|
+
[name]: [propertyKey]
|
|
9
|
+
})(target);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
exports.On = On;
|
|
13
|
+
//# sourceMappingURL=on.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/decorators/on.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,SAAgB,EAAE,CAAC,QAAgB,EAAE,IAAY;IAC/C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,IAAA,iBAAU,EAAC,QAAQ,EAAE;YACnB,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC,CAAC,MAAM,CAAC,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAND,gBAMC","sourcesContent":["import {StoreMerge} from \"@tsed/core\";\n\nexport function On(hookName: string, name: string): MethodDecorator {\n return (target, propertyKey) => {\n StoreMerge(hookName, {\n [name]: [propertyKey]\n })(target);\n };\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnAdd = void 0;
|
|
4
|
+
const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
|
|
5
|
+
const on_1 = require("./on");
|
|
6
|
+
function OnAdd(cliPlugin) {
|
|
7
|
+
return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.ADD, cliPlugin);
|
|
8
|
+
}
|
|
9
|
+
exports.OnAdd = OnAdd;
|
|
10
|
+
//# sourceMappingURL=onAdd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onAdd.js","sourceRoot":"","sources":["../../../src/decorators/onAdd.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,KAAK,CAAC,SAAiB;IACrC,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAFD,sBAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnAdd(cliPlugin: string): MethodDecorator {\n return On(CommandStoreKeys.ADD, cliPlugin);\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnExec = void 0;
|
|
4
|
+
const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
|
|
5
|
+
const on_1 = require("./on");
|
|
6
|
+
function OnExec(cmdName) {
|
|
7
|
+
return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.EXEC_HOOKS, cmdName);
|
|
8
|
+
}
|
|
9
|
+
exports.OnExec = OnExec;
|
|
10
|
+
//# sourceMappingURL=onExec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onExec.js","sourceRoot":"","sources":["../../../src/decorators/onExec.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,MAAM,CAAC,OAAe;IACpC,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAFD,wBAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnExec(cmdName: string): MethodDecorator {\n return On(CommandStoreKeys.EXEC_HOOKS, cmdName);\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnPostInstall = void 0;
|
|
4
|
+
const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
|
|
5
|
+
const on_1 = require("./on");
|
|
6
|
+
function OnPostInstall(cmdName) {
|
|
7
|
+
return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.POST_INSTALL_HOOKS, cmdName);
|
|
8
|
+
}
|
|
9
|
+
exports.OnPostInstall = OnPostInstall;
|
|
10
|
+
//# sourceMappingURL=onPostInstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onPostInstall.js","sourceRoot":"","sources":["../../../src/decorators/onPostInstall.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAFD,sCAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnPostInstall(cmdName: string): MethodDecorator {\n return On(CommandStoreKeys.POST_INSTALL_HOOKS, cmdName);\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnPrompt = void 0;
|
|
4
|
+
const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
|
|
5
|
+
const on_1 = require("./on");
|
|
6
|
+
function OnPrompt(cmdName) {
|
|
7
|
+
return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.PROMPT_HOOKS, cmdName);
|
|
8
|
+
}
|
|
9
|
+
exports.OnPrompt = OnPrompt;
|
|
10
|
+
//# sourceMappingURL=onPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onPrompt.js","sourceRoot":"","sources":["../../../src/decorators/onPrompt.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,QAAQ,CAAC,OAAe;IACtC,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAFD,4BAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnPrompt(cmdName: string): MethodDecorator {\n return On(CommandStoreKeys.PROMPT_HOOKS, cmdName);\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliError = void 0;
|
|
4
|
+
class CliError extends Error {
|
|
5
|
+
constructor({ cli, origin }) {
|
|
6
|
+
super(origin.message);
|
|
7
|
+
this.name = "CLI_ERROR";
|
|
8
|
+
this.cli = cli;
|
|
9
|
+
this.origin = origin;
|
|
10
|
+
this.stack = origin.stack;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.CliError = CliError;
|
|
14
|
+
//# sourceMappingURL=CliError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliError.js","sourceRoot":"","sources":["../../../src/domains/CliError.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAS,SAAQ,KAAK;IAMjC,YAAY,EAAC,GAAG,EAAE,MAAM,EAAgC;QACtD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QANxB,SAAI,GAAG,WAAW,CAAC;QAOjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;CACF;AAZD,4BAYC","sourcesContent":["import type {CliCore} from \"../CliCore\";\n\nexport class CliError extends Error {\n name = \"CLI_ERROR\";\n\n readonly cli: CliCore;\n readonly origin: Error;\n\n constructor({cli, origin}: {cli: CliCore; origin: Error}) {\n super(origin.message);\n this.cli = cli;\n this.origin = origin;\n this.stack = origin.stack;\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommandStoreKeys = void 0;
|
|
4
|
+
var CommandStoreKeys;
|
|
5
|
+
(function (CommandStoreKeys) {
|
|
6
|
+
CommandStoreKeys["COMMAND"] = "command";
|
|
7
|
+
CommandStoreKeys["ADD"] = "$onAdd";
|
|
8
|
+
CommandStoreKeys["EXEC_HOOKS"] = "$onExec";
|
|
9
|
+
CommandStoreKeys["POST_INSTALL_HOOKS"] = "$onPostInstall";
|
|
10
|
+
CommandStoreKeys["PROMPT_HOOKS"] = "$onPrompt";
|
|
11
|
+
})(CommandStoreKeys = exports.CommandStoreKeys || (exports.CommandStoreKeys = {}));
|
|
12
|
+
//# sourceMappingURL=CommandStoreKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandStoreKeys.js","sourceRoot":"","sources":["../../../src/domains/CommandStoreKeys.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,kCAAc,CAAA;IACd,0CAAsB,CAAA;IACtB,yDAAqC,CAAA;IACrC,8CAA0B,CAAA;AAC5B,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B","sourcesContent":["export enum CommandStoreKeys {\n COMMAND = \"command\",\n ADD = \"$onAdd\",\n EXEC_HOOKS = \"$onExec\",\n POST_INSTALL_HOOKS = \"$onPostInstall\",\n PROMPT_HOOKS = \"$onPrompt\"\n}\n"]}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Inquirer = exports.DITest = exports.Container = exports.InjectorService = exports.OverrideProvider = exports.UseOpts = exports.Opts = exports.Module = exports.LocalsContainer = exports.Configuration = exports.Value = exports.Constant = exports.Injectable = exports.registerProvider = exports.Inject = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
6
|
+
exports.Inquirer = inquirer_1.default;
|
|
7
|
+
tslib_1.__exportStar(require("@tsed/core"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("@tsed/logger"), exports);
|
|
9
|
+
var di_1 = require("@tsed/di");
|
|
10
|
+
Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return di_1.Inject; } });
|
|
11
|
+
Object.defineProperty(exports, "registerProvider", { enumerable: true, get: function () { return di_1.registerProvider; } });
|
|
12
|
+
Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return di_1.Injectable; } });
|
|
13
|
+
Object.defineProperty(exports, "Constant", { enumerable: true, get: function () { return di_1.Constant; } });
|
|
14
|
+
Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return di_1.Value; } });
|
|
15
|
+
Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return di_1.Configuration; } });
|
|
16
|
+
Object.defineProperty(exports, "LocalsContainer", { enumerable: true, get: function () { return di_1.LocalsContainer; } });
|
|
17
|
+
Object.defineProperty(exports, "Module", { enumerable: true, get: function () { return di_1.Module; } });
|
|
18
|
+
Object.defineProperty(exports, "Opts", { enumerable: true, get: function () { return di_1.Opts; } });
|
|
19
|
+
Object.defineProperty(exports, "UseOpts", { enumerable: true, get: function () { return di_1.UseOpts; } });
|
|
20
|
+
Object.defineProperty(exports, "OverrideProvider", { enumerable: true, get: function () { return di_1.OverrideProvider; } });
|
|
21
|
+
Object.defineProperty(exports, "InjectorService", { enumerable: true, get: function () { return di_1.InjectorService; } });
|
|
22
|
+
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return di_1.Container; } });
|
|
23
|
+
Object.defineProperty(exports, "DITest", { enumerable: true, get: function () { return di_1.DITest; } });
|
|
24
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./decorators"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./services"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./utils"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./CliCore"), exports);
|
|
29
|
+
require("./utils/patchCommander");
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,gEAAgC;AA4BxB,mBA5BD,kBAAQ,CA4BC;AA3BhB,qDAA2B;AAC3B,uDAA6B;AAC7B,+BAmBkB;AAlBhB,4FAAA,MAAM,OAAA;AACN,sGAAA,gBAAgB,OAAA;AAChB,gGAAA,UAAU,OAAA;AACV,8FAAA,QAAQ,OAAA;AACR,2FAAA,KAAK,OAAA;AACL,mGAAA,aAAa,OAAA;AACb,qGAAA,eAAe,OAAA;AAGf,4FAAA,MAAM,OAAA;AACN,0FAAA,IAAI,OAAA;AACJ,6FAAA,OAAO,OAAA;AACP,sGAAA,gBAAgB,OAAA;AAChB,qGAAA,eAAe,OAAA;AAGf,+FAAA,SAAS,OAAA;AACT,4FAAA,MAAM,OAAA;AAER,uDAA6B;AAC7B,uDAA6B;AAC7B,qDAA2B;AAC3B,kDAAwB;AACxB,oDAA0B;AAG1B,kCAAgC","sourcesContent":["import Inquirer from \"inquirer\";\nexport * from \"@tsed/core\";\nexport * from \"@tsed/logger\";\nexport {\n Inject,\n registerProvider,\n Injectable,\n Constant,\n Value,\n Configuration,\n LocalsContainer,\n TokenProvider,\n InvokeOptions,\n Module,\n Opts,\n UseOpts,\n OverrideProvider,\n InjectorService,\n OnDestroy,\n OnInit,\n Container,\n DITest\n} from \"@tsed/di\";\nexport * from \"./interfaces\";\nexport * from \"./decorators\";\nexport * from \"./services\";\nexport * from \"./utils\";\nexport * from \"./CliCore\";\nexport {Inquirer};\n\nimport \"./utils/patchCommander\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliDefaultOptions.js","sourceRoot":"","sources":["../../../src/interfaces/CliDefaultOptions.ts"],"names":[],"mappings":"","sourcesContent":["export interface CliDefaultOptions {\n verbose: boolean;\n rawArgs: string[];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandMetadata.js","sourceRoot":"","sources":["../../../src/interfaces/CommandMetadata.ts"],"names":[],"mappings":"","sourcesContent":["import {CommandArg, CommandOptions} from \"./CommandParameters\";\n\nexport interface CommandMetadata {\n /**\n * name commands\n */\n name: string;\n\n alias?: string;\n /**\n * CommandProvider description\n */\n description: string;\n /**\n * CommandProvider arguments\n */\n args: {\n [key: string]: CommandArg;\n };\n /**\n * CommandProvider options\n */\n options: {\n [key: string]: CommandOptions;\n };\n\n allowUnknownOption?: boolean;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandParameters.js","sourceRoot":"","sources":["../../../src/interfaces/CommandParameters.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from \"@tsed/core\";\n\nexport interface CommandArg {\n /**\n * Description of the argument\n */\n description: string;\n /**\n * Use type to parse the option (String, Number, Boolean, Array)\n */\n type?: Type<any>;\n /**\n * Use item type to parse items\n */\n itemType?: Type<any>;\n /**\n * Default value\n */\n defaultValue?: string | number | boolean | any;\n /**\n * Define a require option\n */\n required?: boolean;\n}\n\nexport interface CommandOptions {\n /**\n * Description of the commander.option()\n */\n description: string;\n /**\n * Use type to parse the option (String, Number, Boolean, Array)\n */\n type?: Type<any>;\n /**\n * Use item type to parse items\n */\n itemType?: Type<any>;\n /**\n * Default value\n */\n defaultValue?: string | number | boolean | any;\n /**\n * Define a require option\n */\n required?: boolean;\n /**\n * Use a custom Parser\n * @param value\n */\n customParser?: (value: any) => any;\n}\n\nexport interface CommandParameters {\n /**\n * name commands\n */\n name: string;\n /**\n * CommandProvider description\n */\n description: string;\n /**\n * CommandProvider arguments\n */\n args?: {\n [key: string]: CommandArg;\n };\n /**\n * CommandProvider options\n */\n options?: {\n [key: string]: CommandOptions;\n };\n\n allowUnknownOption?: boolean;\n\n [key: string]: any;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandProvider.js","sourceRoot":"","sources":["../../../src/interfaces/CommandProvider.ts"],"names":[],"mappings":"","sourcesContent":["import Inquirer from \"inquirer\";\nimport {Tasks} from \"./Tasks\";\n\nexport type QuestionOptions<T = any> = Inquirer.QuestionCollection<T>;\n\nexport interface CommandProvider<Ctx = any> {\n /**\n * Run a function before the main prompt. Useful for pre-loading data from the file system\n * @param initialOptions\n */\n $beforePrompt?(initialOptions: Partial<Ctx>): Partial<Ctx>;\n\n /**\n * Hook to create the main prompt for the command\n * See https://github.com/enquirer/enquirer for more detail on question configuration.\n * @param initialOptions\n */\n $prompt?<T = any>(initialOptions: Partial<Ctx>): QuestionOptions<T> | Promise<QuestionOptions<T>>;\n\n /**\n * Hook to map options\n * @param ctx\n */\n $mapContext?(ctx: Partial<Ctx>): Ctx;\n\n /**\n * Run something before the exec hook\n * @param ctx\n */\n $beforeExec?(ctx: Ctx): Promise<any>;\n\n /**\n * Run a command\n * @param ctx\n */\n $exec(ctx: Ctx): Tasks | Promise<Tasks> | any | Promise<any>;\n\n /**\n * Run commands after the npm/yarn install\n * @param ctx\n */\n $postInstall?(ctx: Ctx): Tasks | Promise<Tasks> | any | Promise<any>;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageJson.js","sourceRoot":"","sources":["../../../src/interfaces/PackageJson.ts"],"names":[],"mappings":"","sourcesContent":["export interface PackageJson {\n name: string;\n version: string;\n description: string;\n scripts: {[key: string]: string};\n dependencies: {[key: string]: string};\n devDependencies: {[key: string]: string};\n\n [key: string]: any;\n}\n\nexport interface PackageInfo {\n _id: string;\n _rev: string;\n name: string;\n \"dist-tags\": {\n [key: string]: string;\n };\n versions: {\n [key: string]: PackageJson;\n };\n time: {\n [key: string]: string;\n };\n maintainers: {email: string; name: string}[];\n description: string;\n homepage: string;\n keywords: string[];\n repository: {\n type: string;\n url: string;\n };\n author: {\n name: string;\n };\n bugs: {\n url: string;\n };\n license: string;\n readme: string;\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageManager = void 0;
|
|
4
|
+
var PackageManager;
|
|
5
|
+
(function (PackageManager) {
|
|
6
|
+
PackageManager["YARN"] = "yarn";
|
|
7
|
+
PackageManager["NPM"] = "npm";
|
|
8
|
+
PackageManager["PNPM"] = "pnpm";
|
|
9
|
+
})(PackageManager = exports.PackageManager || (exports.PackageManager = {}));
|
|
10
|
+
//# sourceMappingURL=ProjectPreferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectPreferences.js","sourceRoot":"","sources":["../../../src/interfaces/ProjectPreferences.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,6BAAW,CAAA;IACX,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB","sourcesContent":["export enum PackageManager {\n YARN = \"yarn\",\n NPM = \"npm\",\n PNPM = \"pnpm\"\n}\n\ndeclare global {\n namespace TsED {\n interface ProjectPreferences {\n packageManager: PackageManager;\n }\n }\n}\n\nexport interface ProjectPreferences extends TsED.ProjectPreferences, Record<string, any> {}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tasks.js","sourceRoot":"","sources":["../../../src/interfaces/Tasks.ts"],"names":[],"mappings":"","sourcesContent":["import {ListrContext, ListrOptions, ListrTask} from \"listr2\";\n\nexport interface TaskOptions<Ctx = ListrContext> extends ListrOptions<Ctx> {\n concurrent?: boolean | number;\n verbose?: boolean;\n}\n\nexport type Task = ListrTask<any, any>;\nexport type Tasks = Task[];\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./CommandProvider"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./CommandParameters"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./CommandMetadata"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./CliDefaultOptions"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./ProjectPreferences"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./PackageJson"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./Tasks"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAIA,4DAAkC;AAClC,8DAAoC;AACpC,4DAAkC;AAClC,8DAAoC;AACpC,+DAAqC;AACrC,wDAA8B;AAC9B,kDAAwB","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {CommandProvider} from \"./CommandProvider\";\nimport {PackageJson} from \"./PackageJson\";\n\nexport * from \"./CommandProvider\";\nexport * from \"./CommandParameters\";\nexport * from \"./CommandMetadata\";\nexport * from \"./CliDefaultOptions\";\nexport * from \"./ProjectPreferences\";\nexport * from \"./PackageJson\";\nexport * from \"./Tasks\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n /**\n * Load given commands\n */\n commands: Type<CommandProvider>[];\n /**\n * Init Cli with defined argv\n */\n argv?: string[];\n /**\n * The CLI name\n */\n name: string;\n /**\n * The CLI package.json\n */\n pkg?: PackageJson;\n /**\n *\n */\n templateDir?: string;\n /**\n *\n * @param pkg\n */\n defaultProjectPreferences?: (pkg?: any) => Record<string, any>;\n /**\n * Project initial settings.\n */\n project: {\n rootDir?: string;\n srcDir?: string;\n scriptsDir?: string;\n reinstallAfterRun?: boolean;\n };\n /**\n * Enable plugins loading\n */\n plugins: boolean;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerCommand = exports.CommandRegistry = exports.PROVIDER_TYPE_COMMAND = void 0;
|
|
4
|
+
const di_1 = require("@tsed/di");
|
|
5
|
+
exports.PROVIDER_TYPE_COMMAND = "command";
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @type {Registry<Provider<any>, IProvider<any>>}
|
|
9
|
+
*/
|
|
10
|
+
// tslint:disable-next-line: variable-name
|
|
11
|
+
exports.CommandRegistry = di_1.GlobalProviders.createRegistry(exports.PROVIDER_TYPE_COMMAND, di_1.Provider);
|
|
12
|
+
exports.registerCommand = di_1.GlobalProviders.createRegisterFn(exports.PROVIDER_TYPE_COMMAND);
|
|
13
|
+
//# sourceMappingURL=CommandRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandRegistry.js","sourceRoot":"","sources":["../../../src/registries/CommandRegistry.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAEtC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAC/C;;;GAGG;AACH,0CAA0C;AAC7B,QAAA,eAAe,GAAG,oBAAe,CAAC,cAAc,CAAC,6BAAqB,EAAE,aAAQ,CAAC,CAAC;AAElF,QAAA,eAAe,GAAG,oBAAe,CAAC,gBAAgB,CAAC,6BAAqB,CAAC,CAAC","sourcesContent":["import {GlobalProviders, Provider} from \"@tsed/di\";\n\nexport const PROVIDER_TYPE_COMMAND = \"command\";\n/**\n *\n * @type {Registry<Provider<any>, IProvider<any>>}\n */\n// tslint:disable-next-line: variable-name\nexport const CommandRegistry = GlobalProviders.createRegistry(PROVIDER_TYPE_COMMAND, Provider);\n\nexport const registerCommand = GlobalProviders.createRegisterFn(PROVIDER_TYPE_COMMAND);\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliConfiguration = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@tsed/di");
|
|
6
|
+
let CliConfiguration = class CliConfiguration extends di_1.DIConfiguration {
|
|
7
|
+
constructor() {
|
|
8
|
+
super({
|
|
9
|
+
project: {
|
|
10
|
+
root: process.cwd(),
|
|
11
|
+
srcDir: "src"
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
CliConfiguration = tslib_1.__decorate([
|
|
17
|
+
(0, di_1.Injectable)(),
|
|
18
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
19
|
+
], CliConfiguration);
|
|
20
|
+
exports.CliConfiguration = CliConfiguration;
|
|
21
|
+
//# sourceMappingURL=CliConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliConfiguration.js","sourceRoot":"","sources":["../../../src/services/CliConfiguration.ts"],"names":[],"mappings":";;;;AAAA,iCAAqD;AAGrD,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,oBAAe;IACnD;QACE,KAAK,CAAC;YACJ,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;gBACnB,MAAM,EAAE,KAAK;aACd;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AATY,gBAAgB;IAD5B,IAAA,eAAU,GAAE;;GACA,gBAAgB,CAS5B;AATY,4CAAgB","sourcesContent":["import {DIConfiguration, Injectable} from \"@tsed/di\";\n\n@Injectable()\nexport class CliConfiguration extends DIConfiguration {\n constructor() {\n super({\n project: {\n root: process.cwd(),\n srcDir: \"src\"\n }\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliDockerComposeYaml = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@tsed/di");
|
|
6
|
+
const change_case_1 = require("change-case");
|
|
7
|
+
const CliYaml_1 = require("./CliYaml");
|
|
8
|
+
const core_1 = require("@tsed/core");
|
|
9
|
+
let CliDockerComposeYaml = class CliDockerComposeYaml {
|
|
10
|
+
async read() {
|
|
11
|
+
return this.cliYaml.read("docker-compose.yml");
|
|
12
|
+
}
|
|
13
|
+
async write(obj) {
|
|
14
|
+
return this.cliYaml.write("docker-compose.yml", obj);
|
|
15
|
+
}
|
|
16
|
+
async addDatabaseService(name, database) {
|
|
17
|
+
const dockerCompose = await this.read();
|
|
18
|
+
if (dockerCompose) {
|
|
19
|
+
let value;
|
|
20
|
+
switch (database) {
|
|
21
|
+
case "mysql":
|
|
22
|
+
case "mariadb":
|
|
23
|
+
value = {
|
|
24
|
+
image: database === "mysql" ? "mysql:8.0.28-oracle" : "mariadb:10.7.3",
|
|
25
|
+
ports: ["3306:3306"],
|
|
26
|
+
environment: {
|
|
27
|
+
MYSQL_ROOT_PASSWORD: "admin",
|
|
28
|
+
MYSQL_USER: "test",
|
|
29
|
+
MYSQL_PASSWORD: "test",
|
|
30
|
+
MYSQL_DATABASE: "test"
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
break;
|
|
34
|
+
case "postgres":
|
|
35
|
+
value = {
|
|
36
|
+
image: "postgres:9.6.1",
|
|
37
|
+
ports: ["5432:5432"],
|
|
38
|
+
environment: {
|
|
39
|
+
POSTGRES_USER: "test",
|
|
40
|
+
POSTGRES_PASSWORD: "test",
|
|
41
|
+
POSTGRES_DB: "test"
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
break;
|
|
45
|
+
case "cockroachdb":
|
|
46
|
+
value = {
|
|
47
|
+
image: "cockroachdb/cockroach:v2.1.4",
|
|
48
|
+
command: "start --insecure",
|
|
49
|
+
ports: ["26257:26257"]
|
|
50
|
+
};
|
|
51
|
+
break;
|
|
52
|
+
case "mssql":
|
|
53
|
+
value = {
|
|
54
|
+
image: "mcr.microsoft.com/mssql/server:2017-latest",
|
|
55
|
+
command: "start --insecure",
|
|
56
|
+
ports: ["1433:1433"],
|
|
57
|
+
environment: {
|
|
58
|
+
SA_PASSWORD: "Admin12345",
|
|
59
|
+
ACCEPT_EULA: "Y"
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
break;
|
|
63
|
+
case "mongodb":
|
|
64
|
+
value = {
|
|
65
|
+
image: "mongo:4.1",
|
|
66
|
+
ports: ["27017:27017"]
|
|
67
|
+
};
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
(0, core_1.setValue)(dockerCompose, `services.${(0, change_case_1.snakeCase)(name)}`, value);
|
|
71
|
+
await this.write(dockerCompose);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
tslib_1.__decorate([
|
|
76
|
+
(0, di_1.Inject)(),
|
|
77
|
+
tslib_1.__metadata("design:type", CliYaml_1.CliYaml)
|
|
78
|
+
], CliDockerComposeYaml.prototype, "cliYaml", void 0);
|
|
79
|
+
CliDockerComposeYaml = tslib_1.__decorate([
|
|
80
|
+
(0, di_1.Injectable)()
|
|
81
|
+
], CliDockerComposeYaml);
|
|
82
|
+
exports.CliDockerComposeYaml = CliDockerComposeYaml;
|
|
83
|
+
//# sourceMappingURL=CliDockerComposeYaml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliDockerComposeYaml.js","sourceRoot":"","sources":["../../../src/services/CliDockerComposeYaml.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,6CAAsC;AACtC,uCAAkC;AAClC,qCAAoC;AAGpC,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAI/B,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACrD,MAAM,aAAa,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,aAAa,EAAE;YACjB,IAAI,KAAU,CAAC;YACf,QAAQ,QAAQ,EAAE;gBAChB,KAAK,OAAO,CAAC;gBACb,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB;wBACtE,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,mBAAmB,EAAE,OAAO;4BAC5B,UAAU,EAAE,MAAM;4BAClB,cAAc,EAAE,MAAM;4BACtB,cAAc,EAAE,MAAM;yBACvB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU;oBACb,KAAK,GAAG;wBACN,KAAK,EAAE,gBAAgB;wBACvB,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,aAAa,EAAE,MAAM;4BACrB,iBAAiB,EAAE,MAAM;4BACzB,WAAW,EAAE,MAAM;yBACpB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,aAAa;oBAChB,KAAK,GAAG;wBACN,KAAK,EAAE,8BAA8B;wBACrC,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,GAAG;wBACN,KAAK,EAAE,4CAA4C;wBACnD,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,WAAW,EAAE,YAAY;4BACzB,WAAW,EAAE,GAAG;yBACjB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;aACT;YAED,IAAA,eAAQ,EAAC,aAAa,EAAE,YAAY,IAAA,uBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AArEC;IADC,IAAA,WAAM,GAAE;sCACU,iBAAO;qDAAC;AAFhB,oBAAoB;IADhC,IAAA,eAAU,GAAE;GACA,oBAAoB,CAuEhC;AAvEY,oDAAoB","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {snakeCase} from \"change-case\";\nimport {CliYaml} from \"./CliYaml\";\nimport {setValue} from \"@tsed/core\";\n\n@Injectable()\nexport class CliDockerComposeYaml {\n @Inject()\n protected cliYaml: CliYaml;\n\n async read() {\n return this.cliYaml.read(\"docker-compose.yml\");\n }\n\n async write(obj: any) {\n return this.cliYaml.write(\"docker-compose.yml\", obj);\n }\n\n async addDatabaseService(name: string, database: string) {\n const dockerCompose: any = await this.read();\n if (dockerCompose) {\n let value: any;\n switch (database) {\n case \"mysql\":\n case \"mariadb\":\n value = {\n image: database === \"mysql\" ? \"mysql:8.0.28-oracle\" : \"mariadb:10.7.3\",\n ports: [\"3306:3306\"],\n environment: {\n MYSQL_ROOT_PASSWORD: \"admin\",\n MYSQL_USER: \"test\",\n MYSQL_PASSWORD: \"test\",\n MYSQL_DATABASE: \"test\"\n }\n };\n break;\n case \"postgres\":\n value = {\n image: \"postgres:9.6.1\",\n ports: [\"5432:5432\"],\n environment: {\n POSTGRES_USER: \"test\",\n POSTGRES_PASSWORD: \"test\",\n POSTGRES_DB: \"test\"\n }\n };\n break;\n case \"cockroachdb\":\n value = {\n image: \"cockroachdb/cockroach:v2.1.4\",\n command: \"start --insecure\",\n ports: [\"26257:26257\"]\n };\n break;\n case \"mssql\":\n value = {\n image: \"mcr.microsoft.com/mssql/server:2017-latest\",\n command: \"start --insecure\",\n ports: [\"1433:1433\"],\n environment: {\n SA_PASSWORD: \"Admin12345\",\n ACCEPT_EULA: \"Y\"\n }\n };\n break;\n case \"mongodb\":\n value = {\n image: \"mongo:4.1\",\n ports: [\"27017:27017\"]\n };\n break;\n }\n\n setValue(dockerCompose, `services.${snakeCase(name)}`, value);\n await this.write(dockerCompose);\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliExeca = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@tsed/di");
|
|
6
|
+
const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
7
|
+
const operators_1 = require("rxjs/operators");
|
|
8
|
+
require("any-observable/register/rxjs-all");
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
const stream_to_observable_1 = tslib_1.__importDefault(require("@samverschueren/stream-to-observable"));
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
const split_1 = tslib_1.__importDefault(require("split"));
|
|
15
|
+
let CliExeca = class CliExeca {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.raw = execa_1.default;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param cmd
|
|
22
|
+
* @param args
|
|
23
|
+
* @param opts
|
|
24
|
+
*/
|
|
25
|
+
run(cmd, args, opts) {
|
|
26
|
+
const cp = this.raw(cmd, args, opts);
|
|
27
|
+
const stdout = (0, stream_to_observable_1.default)(cp.stdout.pipe((0, split_1.default)()), { await: cp });
|
|
28
|
+
const stderr = (0, stream_to_observable_1.default)(cp.stderr.pipe((0, split_1.default)()), { await: cp });
|
|
29
|
+
return stdout.pipe((0, operators_1.merge)(stderr)).pipe((0, operators_1.filter)(Boolean));
|
|
30
|
+
}
|
|
31
|
+
runSync(cmd, args, opts) {
|
|
32
|
+
return this.raw.sync(cmd, args, opts);
|
|
33
|
+
}
|
|
34
|
+
async getAsync(cmd, args, opts) {
|
|
35
|
+
return (await this.raw(cmd, args, opts)).stdout;
|
|
36
|
+
}
|
|
37
|
+
get(cmd, args, opts) {
|
|
38
|
+
return this.raw.sync(cmd, args, opts).stdout;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
CliExeca = tslib_1.__decorate([
|
|
42
|
+
(0, di_1.Injectable)()
|
|
43
|
+
], CliExeca);
|
|
44
|
+
exports.CliExeca = CliExeca;
|
|
45
|
+
//# sourceMappingURL=CliExeca.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AACpC,0DAA0B;AAC1B,8CAA6C;AAC7C,4CAA0C;AAC1C,6DAA6D;AAC7D,aAAa;AACb,wGAAsE;AACtE,6DAA6D;AAC7D,aAAa;AACb,0DAA0B;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,eAAK,CAAC;IA2BvB,CAAC;IAzBC;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAoB;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QAClE,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport execa from \"execa\";\nimport {filter, merge} from \"rxjs/operators\";\nimport \"any-observable/register/rxjs-all\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport streamToObservable from \"@samverschueren/stream-to-observable\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport split from \"split\";\n\n@Injectable()\nexport class CliExeca {\n readonly raw = execa;\n\n /**\n *\n * @param cmd\n * @param args\n * @param opts\n */\n run(cmd: string, args: string[], opts?: execa.Options) {\n const cp = this.raw(cmd, args, opts);\n const stdout = streamToObservable(cp.stdout!.pipe(split()), {await: cp});\n const stderr = streamToObservable(cp.stderr!.pipe(split()), {await: cp});\n\n return stdout.pipe(merge(stderr)).pipe(filter(Boolean));\n }\n\n runSync(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return this.raw.sync(cmd, args, opts);\n }\n\n async getAsync(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return (await this.raw(cmd, args, opts)).stdout;\n }\n\n get(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return this.raw.sync(cmd, args, opts).stdout;\n }\n}\n"]}
|