@tsed/cli-core 3.20.16 → 3.21.0-rc.2
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,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.insertImport = void 0;
|
|
4
|
+
function insertImport(fileContent, content) {
|
|
5
|
+
const lines = fileContent.split("\n");
|
|
6
|
+
const index = lines.findIndex((line) => {
|
|
7
|
+
if (line.startsWith("#!")) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
return !line.startsWith("import ");
|
|
11
|
+
});
|
|
12
|
+
lines[index] = content + "\n" + lines[index];
|
|
13
|
+
return lines.join("\n");
|
|
14
|
+
}
|
|
15
|
+
exports.insertImport = insertImport;
|
|
16
|
+
//# sourceMappingURL=insertImport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertImport.js","sourceRoot":"","sources":["../../../../src/utils/renderer/insertImport.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,WAAmB,EAAE,OAAe;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAbD,oCAaC","sourcesContent":["export function insertImport(fileContent: string, content: string) {\n const lines = fileContent.split(\"\\n\");\n\n const index = lines.findIndex((line) => {\n if (line.startsWith(\"#!\")) {\n return false;\n }\n return !line.startsWith(\"import \");\n });\n\n lines[index] = content + \"\\n\" + lines[index];\n\n return lines.join(\"\\n\");\n}\n"]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var CliCore_1;
|
|
2
|
+
import { __decorate, __metadata } from "tslib";
|
|
3
|
+
import { createContainer, Inject, InjectorService, Module } from "@tsed/di";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
import { join, resolve } from "path";
|
|
7
|
+
import updateNotifier from "update-notifier";
|
|
8
|
+
import { CliConfiguration } from "./services/CliConfiguration.js";
|
|
9
|
+
import { CliPackageJson } from "./services/CliPackageJson.js";
|
|
10
|
+
import { CliService } from "./services/CliService.js";
|
|
11
|
+
import { ProjectPackageJson } from "./services/ProjectPackageJson.js";
|
|
12
|
+
import { createInjector } from "./utils/createInjector.js";
|
|
13
|
+
import { loadPlugins } from "./utils/loadPlugins.js";
|
|
14
|
+
import { CliError } from "./domains/CliError.js";
|
|
15
|
+
import semver from "semver";
|
|
16
|
+
function isHelpManual(argv) {
|
|
17
|
+
return argv.includes("-h") || argv.includes("--help");
|
|
18
|
+
}
|
|
19
|
+
let CliCore = CliCore_1 = class CliCore {
|
|
20
|
+
static checkNodeVersion(wanted, id) {
|
|
21
|
+
if (!semver.satisfies(process.version, wanted)) {
|
|
22
|
+
console.log(chalk.red("You are using Node " +
|
|
23
|
+
process.version +
|
|
24
|
+
", but this version of " +
|
|
25
|
+
id +
|
|
26
|
+
" requires Node " +
|
|
27
|
+
wanted +
|
|
28
|
+
".\nPlease upgrade your Node version."));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
static async bootstrap(settings, module = CliCore_1) {
|
|
34
|
+
const injector = this.createInjector(settings);
|
|
35
|
+
settings.plugins && (await loadPlugins(injector));
|
|
36
|
+
await this.loadInjector(injector, module);
|
|
37
|
+
await injector.emit("$onReady");
|
|
38
|
+
const cli = injector.get(CliCore_1);
|
|
39
|
+
try {
|
|
40
|
+
await cli.cliService.parseArgs(injector.settings.get("argv"));
|
|
41
|
+
}
|
|
42
|
+
catch (er) {
|
|
43
|
+
throw new CliError({ origin: er, cli });
|
|
44
|
+
}
|
|
45
|
+
return cli;
|
|
46
|
+
}
|
|
47
|
+
static async loadInjector(injector, module = CliCore_1) {
|
|
48
|
+
await injector.emit("$beforeInit");
|
|
49
|
+
const container = createContainer();
|
|
50
|
+
await injector.load(container, module);
|
|
51
|
+
await injector.emit("$afterInit");
|
|
52
|
+
injector.settings.set("loaded", true);
|
|
53
|
+
}
|
|
54
|
+
static updateNotifier(pkg) {
|
|
55
|
+
updateNotifier({ pkg, updateCheckInterval: 0 }).notify();
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
static createInjector(settings) {
|
|
59
|
+
const argv = settings.argv || process.argv;
|
|
60
|
+
return createInjector({
|
|
61
|
+
...settings,
|
|
62
|
+
name: settings.name || "tsed",
|
|
63
|
+
argv,
|
|
64
|
+
project: {
|
|
65
|
+
rootDir: this.getProjectRoot(argv),
|
|
66
|
+
srcDir: "src",
|
|
67
|
+
scriptsDir: "scripts",
|
|
68
|
+
...(settings.project || {})
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
static getProjectRoot(argv) {
|
|
73
|
+
if (!isHelpManual(argv)) {
|
|
74
|
+
const projectRoot = new Command().option("-r, --root-dir <path>", "Project root directory").allowUnknownOption(true).parse(argv).opts().rootDir || "";
|
|
75
|
+
return resolve(join(process.cwd(), projectRoot));
|
|
76
|
+
}
|
|
77
|
+
return process.cwd();
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
__decorate([
|
|
81
|
+
Inject(),
|
|
82
|
+
__metadata("design:type", InjectorService)
|
|
83
|
+
], CliCore.prototype, "injector", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
Inject(),
|
|
86
|
+
__metadata("design:type", CliService)
|
|
87
|
+
], CliCore.prototype, "cliService", void 0);
|
|
88
|
+
CliCore = CliCore_1 = __decorate([
|
|
89
|
+
Module({
|
|
90
|
+
imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]
|
|
91
|
+
})
|
|
92
|
+
], CliCore);
|
|
93
|
+
export { CliCore };
|
|
94
|
+
//# sourceMappingURL=CliCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACnC,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,SAAS,YAAY,CAAC,IAAc;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxD,CAAC;AAKD,IAAa,OAAO,eAApB,MAAa,OAAO;IAOlB,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,EAAU;QAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;YAC9C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,qBAAqB;gBACnB,OAAO,CAAC,OAAO;gBACf,wBAAwB;gBACxB,EAAE;gBACF,iBAAiB;gBACjB,MAAM;gBACN,sCAAsC,CACzC,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAqC,EAAE,SAAe,SAAO;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE/C,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE1C,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAU,SAAO,CAAE,CAAC;QAE5C,IAAI;YACF,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC;SAChE;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,QAAQ,CAAC,EAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAC,CAAC,CAAC;SACvC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAyB,EAAE,SAAe,SAAO;QACzE,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;QAEpC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEvC,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAElC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAQ;QAC5B,cAAc,CAAC,EAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,MAAM,CAAC,cAAc,CAAC,QAAqC;QACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAE3C,OAAO,cAAc,CAAC;YACpB,GAAG,QAAQ;YACX,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,MAAM;YAC7B,IAAI;YACJ,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBAClC,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAES,MAAM,CAAC,cAAc,CAAC,IAAc;QAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,WAAW,GACf,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;YAEpI,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;SAClD;QAED,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAvFC;IADC,MAAM,EAAE;8BACC,eAAe;yCAAC;AAG1B;IADC,MAAM,EAAE;8BACG,UAAU;2CAAC;AALZ,OAAO;IAHnB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,CAAC;KAC5E,CAAC;GACW,OAAO,CAyFnB;SAzFY,OAAO","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,7 @@
|
|
|
1
|
+
import { useDecorators, StoreSet } from "@tsed/core";
|
|
2
|
+
import { CommandStoreKeys } from "../domains/CommandStoreKeys.js";
|
|
3
|
+
import { registerCommand } from "../registries/CommandRegistry.js";
|
|
4
|
+
export function Command(options) {
|
|
5
|
+
return useDecorators(registerCommand, StoreSet(CommandStoreKeys.COMMAND, options));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/decorators/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAE9D,MAAM,UAAU,OAAO,CAAC,OAA0B;IAChD,OAAO,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAQ,CAAC;AAC5F,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC","sourcesContent":["export * from \"./command\";\nexport * from \"./onAdd\";\nexport * from \"./onExec\";\nexport * from \"./onPostInstall\";\nexport * from \"./onPrompt\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/decorators/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,EAAE,CAAC,QAAgB,EAAE,IAAY;IAC/C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,UAAU,CAAC,QAAQ,EAAE;YACnB,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC,CAAC,MAAM,CAAC,CAAC;IACb,CAAC,CAAC;AACJ,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"onAdd.js","sourceRoot":"","sources":["../../../src/decorators/onAdd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,KAAK,CAAC,SAAiB;IACrC,OAAO,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"onExec.js","sourceRoot":"","sources":["../../../src/decorators/onExec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"onPostInstall.js","sourceRoot":"","sources":["../../../src/decorators/onPostInstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"onPrompt.js","sourceRoot":"","sources":["../../../src/decorators/onPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"CliError.js","sourceRoot":"","sources":["../../../src/domains/CliError.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,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","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,9 @@
|
|
|
1
|
+
export var CommandStoreKeys;
|
|
2
|
+
(function (CommandStoreKeys) {
|
|
3
|
+
CommandStoreKeys["COMMAND"] = "command";
|
|
4
|
+
CommandStoreKeys["ADD"] = "$onAdd";
|
|
5
|
+
CommandStoreKeys["EXEC_HOOKS"] = "$onExec";
|
|
6
|
+
CommandStoreKeys["POST_INSTALL_HOOKS"] = "$onPostInstall";
|
|
7
|
+
CommandStoreKeys["PROMPT_HOOKS"] = "$onPrompt";
|
|
8
|
+
})(CommandStoreKeys || (CommandStoreKeys = {}));
|
|
9
|
+
//# sourceMappingURL=CommandStoreKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandStoreKeys.js","sourceRoot":"","sources":["../../../src/domains/CommandStoreKeys.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,kCAAc,CAAA;IACd,0CAAsB,CAAA;IACtB,yDAAqC,CAAA;IACrC,8CAA0B,CAAA;AAC5B,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,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/esm/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Inquirer from "inquirer";
|
|
2
|
+
export * from "@tsed/core";
|
|
3
|
+
export * from "@tsed/logger";
|
|
4
|
+
export { Inject, registerProvider, Injectable, Constant, Value, Configuration, LocalsContainer, Module, Opts, UseOpts, OverrideProvider, InjectorService, Container, DITest } from "@tsed/di";
|
|
5
|
+
export * from "./interfaces.js";
|
|
6
|
+
export * from "./decorators.js";
|
|
7
|
+
export * from "./services.js";
|
|
8
|
+
export * from "./utils.js";
|
|
9
|
+
export * from "./CliCore.js";
|
|
10
|
+
export { Inquirer };
|
|
11
|
+
import "./utils/patchCommander.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,KAAK,EACL,aAAa,EACb,eAAe,EAGf,MAAM,EACN,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,eAAe,EAGf,SAAS,EACT,MAAM,EACP,MAAM,UAAU,CAAC;AAClB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,CAAC;AAElB,OAAO,wBAAwB,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectPreferences.js","sourceRoot":"","sources":["../../../src/interfaces/ProjectPreferences.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,6BAAW,CAAA;IACX,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,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,8 @@
|
|
|
1
|
+
export * from "./CommandProvider.js";
|
|
2
|
+
export * from "./CommandParameters.js";
|
|
3
|
+
export * from "./CommandMetadata.js";
|
|
4
|
+
export * from "./CliDefaultOptions.js";
|
|
5
|
+
export * from "./ProjectPreferences.js";
|
|
6
|
+
export * from "./PackageJson.js";
|
|
7
|
+
export * from "./Tasks.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC","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,10 @@
|
|
|
1
|
+
import { GlobalProviders, Provider } from "@tsed/di";
|
|
2
|
+
export const PROVIDER_TYPE_COMMAND = "command";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @type {Registry<Provider<any>, IProvider<any>>}
|
|
6
|
+
*/
|
|
7
|
+
// tslint:disable-next-line: variable-name
|
|
8
|
+
export const CommandRegistry = GlobalProviders.createRegistry(PROVIDER_TYPE_COMMAND, Provider);
|
|
9
|
+
export const registerCommand = GlobalProviders.createRegisterFn(PROVIDER_TYPE_COMMAND);
|
|
10
|
+
//# sourceMappingURL=CommandRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandRegistry.js","sourceRoot":"","sources":["../../../src/registries/CommandRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAC/C;;;GAGG;AACH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,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,18 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { DIConfiguration, Injectable } from "@tsed/di";
|
|
3
|
+
let CliConfiguration = class CliConfiguration extends DIConfiguration {
|
|
4
|
+
constructor() {
|
|
5
|
+
super({
|
|
6
|
+
project: {
|
|
7
|
+
root: process.cwd(),
|
|
8
|
+
srcDir: "src"
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
CliConfiguration = __decorate([
|
|
14
|
+
Injectable(),
|
|
15
|
+
__metadata("design:paramtypes", [])
|
|
16
|
+
], CliConfiguration);
|
|
17
|
+
export { CliConfiguration };
|
|
18
|
+
//# sourceMappingURL=CliConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliConfiguration.js","sourceRoot":"","sources":["../../../src/services/CliConfiguration.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAGrD,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,eAAe;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,UAAU,EAAE;;GACA,gBAAgB,CAS5B;SATY,gBAAgB","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,80 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Inject, Injectable } from "@tsed/di";
|
|
3
|
+
import { snakeCase } from "change-case";
|
|
4
|
+
import { CliYaml } from "./CliYaml.js";
|
|
5
|
+
import { setValue } from "@tsed/core";
|
|
6
|
+
let CliDockerComposeYaml = class CliDockerComposeYaml {
|
|
7
|
+
async read() {
|
|
8
|
+
return this.cliYaml.read("docker-compose.yml");
|
|
9
|
+
}
|
|
10
|
+
async write(obj) {
|
|
11
|
+
return this.cliYaml.write("docker-compose.yml", obj);
|
|
12
|
+
}
|
|
13
|
+
async addDatabaseService(name, database) {
|
|
14
|
+
const dockerCompose = await this.read();
|
|
15
|
+
if (dockerCompose) {
|
|
16
|
+
let value;
|
|
17
|
+
switch (database) {
|
|
18
|
+
case "mysql":
|
|
19
|
+
case "mariadb":
|
|
20
|
+
value = {
|
|
21
|
+
image: database === "mysql" ? "mysql:8.0.28-oracle" : "mariadb:10.7.3",
|
|
22
|
+
ports: ["3306:3306"],
|
|
23
|
+
environment: {
|
|
24
|
+
MYSQL_ROOT_PASSWORD: "admin",
|
|
25
|
+
MYSQL_USER: "test",
|
|
26
|
+
MYSQL_PASSWORD: "test",
|
|
27
|
+
MYSQL_DATABASE: "test"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
break;
|
|
31
|
+
case "postgres":
|
|
32
|
+
value = {
|
|
33
|
+
image: "postgres:9.6.1",
|
|
34
|
+
ports: ["5432:5432"],
|
|
35
|
+
environment: {
|
|
36
|
+
POSTGRES_USER: "test",
|
|
37
|
+
POSTGRES_PASSWORD: "test",
|
|
38
|
+
POSTGRES_DB: "test"
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
break;
|
|
42
|
+
case "cockroachdb":
|
|
43
|
+
value = {
|
|
44
|
+
image: "cockroachdb/cockroach:v2.1.4",
|
|
45
|
+
command: "start --insecure",
|
|
46
|
+
ports: ["26257:26257"]
|
|
47
|
+
};
|
|
48
|
+
break;
|
|
49
|
+
case "mssql":
|
|
50
|
+
value = {
|
|
51
|
+
image: "mcr.microsoft.com/mssql/server:2017-latest",
|
|
52
|
+
command: "start --insecure",
|
|
53
|
+
ports: ["1433:1433"],
|
|
54
|
+
environment: {
|
|
55
|
+
SA_PASSWORD: "Admin12345",
|
|
56
|
+
ACCEPT_EULA: "Y"
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
break;
|
|
60
|
+
case "mongodb":
|
|
61
|
+
value = {
|
|
62
|
+
image: "mongo:4.1",
|
|
63
|
+
ports: ["27017:27017"]
|
|
64
|
+
};
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
setValue(dockerCompose, `services.${snakeCase(name)}`, value);
|
|
68
|
+
await this.write(dockerCompose);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
__decorate([
|
|
73
|
+
Inject(),
|
|
74
|
+
__metadata("design:type", CliYaml)
|
|
75
|
+
], CliDockerComposeYaml.prototype, "cliYaml", void 0);
|
|
76
|
+
CliDockerComposeYaml = __decorate([
|
|
77
|
+
Injectable()
|
|
78
|
+
], CliDockerComposeYaml);
|
|
79
|
+
export { CliDockerComposeYaml };
|
|
80
|
+
//# sourceMappingURL=CliDockerComposeYaml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliDockerComposeYaml.js","sourceRoot":"","sources":["../../../src/services/CliDockerComposeYaml.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;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,QAAQ,CAAC,aAAa,EAAE,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AArEC;IADC,MAAM,EAAE;8BACU,OAAO;qDAAC;AAFhB,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CAuEhC;SAvEY,oBAAoB","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,42 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from "@tsed/di";
|
|
3
|
+
import execa from "execa";
|
|
4
|
+
import { filter, merge } from "rxjs/operators";
|
|
5
|
+
import "any-observable/register/rxjs-all";
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
import streamToObservable from "@samverschueren/stream-to-observable";
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
import split from "split";
|
|
12
|
+
let CliExeca = class CliExeca {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.raw = execa;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param cmd
|
|
19
|
+
* @param args
|
|
20
|
+
* @param opts
|
|
21
|
+
*/
|
|
22
|
+
run(cmd, args, opts) {
|
|
23
|
+
const cp = this.raw(cmd, args, opts);
|
|
24
|
+
const stdout = streamToObservable(cp.stdout.pipe(split()), { await: cp });
|
|
25
|
+
const stderr = streamToObservable(cp.stderr.pipe(split()), { await: cp });
|
|
26
|
+
return stdout.pipe(merge(stderr)).pipe(filter(Boolean));
|
|
27
|
+
}
|
|
28
|
+
runSync(cmd, args, opts) {
|
|
29
|
+
return this.raw.sync(cmd, args, opts);
|
|
30
|
+
}
|
|
31
|
+
async getAsync(cmd, args, opts) {
|
|
32
|
+
return (await this.raw(cmd, args, opts)).stdout;
|
|
33
|
+
}
|
|
34
|
+
get(cmd, args, opts) {
|
|
35
|
+
return this.raw.sync(cmd, args, opts).stdout;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
CliExeca = __decorate([
|
|
39
|
+
Injectable()
|
|
40
|
+
], CliExeca);
|
|
41
|
+
export { CliExeca };
|
|
42
|
+
//# sourceMappingURL=CliExeca.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,6DAA6D;AAC7D,aAAa;AACb,OAAO,kBAAkB,MAAM,sCAAsC,CAAC;AACtE,6DAA6D;AAC7D,aAAa;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,KAAK,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,kBAAkB,CAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,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,UAAU,EAAE;GACA,QAAQ,CA4BpB;SA5BY,QAAQ","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"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from "@tsed/di";
|
|
3
|
+
import Fs from "fs-extra";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
import { normalizePath } from "../utils/normalizePath.js";
|
|
6
|
+
let CliFs = class CliFs {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.raw = Fs;
|
|
9
|
+
}
|
|
10
|
+
exists(path) {
|
|
11
|
+
return this.raw.existsSync(path);
|
|
12
|
+
}
|
|
13
|
+
join(...args) {
|
|
14
|
+
return normalizePath(join(...args));
|
|
15
|
+
}
|
|
16
|
+
async readFile(file, encoding) {
|
|
17
|
+
return this.raw.readFile(file, encoding);
|
|
18
|
+
}
|
|
19
|
+
writeFileSync(path, data, options) {
|
|
20
|
+
return this.raw.writeFileSync(path, data, options);
|
|
21
|
+
}
|
|
22
|
+
writeFile(file, data, options) {
|
|
23
|
+
return this.raw.writeFile(file, data, options);
|
|
24
|
+
}
|
|
25
|
+
ensureDir(path, options) {
|
|
26
|
+
return this.raw.ensureDir(path, options);
|
|
27
|
+
}
|
|
28
|
+
ensureDirSync(path, options) {
|
|
29
|
+
return this.raw.ensureDirSync(path, options);
|
|
30
|
+
}
|
|
31
|
+
findUpFile(root, file) {
|
|
32
|
+
return [join(root, file), join(root, "..", file), join(root, "..", "..", file), join(root, "..", "..", "..", file)].find((path) => this.exists(path));
|
|
33
|
+
}
|
|
34
|
+
async importModule(mod, root = process.cwd()) {
|
|
35
|
+
try {
|
|
36
|
+
if (process.env.NODE_ENV === "development") {
|
|
37
|
+
return await import(mod);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (er) { }
|
|
41
|
+
const path = this.findUpFile(root, join("node_modules", mod));
|
|
42
|
+
if (path) {
|
|
43
|
+
return import(path);
|
|
44
|
+
}
|
|
45
|
+
return import(mod);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
CliFs = __decorate([
|
|
49
|
+
Injectable()
|
|
50
|
+
], CliFs);
|
|
51
|
+
export { CliFs };
|
|
52
|
+
//# sourceMappingURL=CliFs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliFs.js","sourceRoot":"","sources":["../../../src/services/CliFs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAGrD,IAAa,KAAK,GAAlB,MAAa,KAAK;IAAlB;QACE,QAAG,GAAG,EAAE,CAAC;IAmDX,CAAC;IAjDC,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,IAAc;QACpB,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAc,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAgC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,OAAe,OAAO,CAAC,GAAG,EAAE;QAC1D,IAAI;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;gBAC1C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;aAC1B;SACF;QAAC,OAAO,EAAE,EAAE,GAAE;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9D,IAAI,IAAI,EAAE;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;AApDY,KAAK;IADjB,UAAU,EAAE;GACA,KAAK,CAoDjB;SApDY,KAAK","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport {PathLike, WriteFileOptions} from \"fs\";\nimport Fs from \"fs-extra\";\nimport {EnsureOptions} from \"fs-extra\";\nimport {join} from \"path\";\nimport {normalizePath} from \"../utils/normalizePath\";\n\n@Injectable()\nexport class CliFs {\n raw = Fs;\n\n exists(path: string) {\n return this.raw.existsSync(path);\n }\n\n join(...args: string[]) {\n return normalizePath(join(...args));\n }\n\n async readFile(file: string | Buffer | number, encoding?: any): Promise<string> {\n return this.raw.readFile(file, encoding) as any;\n }\n\n writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions) {\n return this.raw.writeFileSync(path, data, options);\n }\n\n writeFile(file: string | Buffer | number, data: any, options?: WriteFileOptions | string) {\n return this.raw.writeFile(file, data, options as any);\n }\n\n ensureDir(path: string, options?: EnsureOptions | number) {\n return this.raw.ensureDir(path, options);\n }\n\n ensureDirSync(path: string, options?: EnsureOptions | number): void {\n return this.raw.ensureDirSync(path, options);\n }\n\n findUpFile(root: string, file: string) {\n return [join(root, file), join(root, \"..\", file), join(root, \"..\", \"..\", file), join(root, \"..\", \"..\", \"..\", file)].find((path) =>\n this.exists(path)\n );\n }\n\n async importModule(mod: string, root: string = process.cwd()) {\n try {\n if (process.env.NODE_ENV === \"development\") {\n return await import(mod);\n }\n } catch (er) {}\n\n const path = this.findUpFile(root, join(\"node_modules\", mod));\n\n if (path) {\n return import(path);\n }\n\n return import(mod);\n }\n}\n"]}
|