@tsed/cli-core 3.25.0 → 4.0.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 +5 -2
- package/lib/cjs/CliCore.js.map +1 -1
- package/lib/cjs/services/CliLoadFile.js +67 -0
- package/lib/cjs/services/CliLoadFile.js.map +1 -0
- package/lib/cjs/services/index.js +1 -0
- package/lib/cjs/services/index.js.map +1 -1
- package/lib/cjs/utils/getCommandMetadata.js.map +1 -1
- package/lib/esm/CliCore.js +6 -3
- package/lib/esm/CliCore.js.map +1 -1
- package/lib/esm/services/CliLoadFile.js +64 -0
- package/lib/esm/services/CliLoadFile.js.map +1 -0
- package/lib/esm/services/index.js +1 -0
- package/lib/esm/services/index.js.map +1 -1
- package/lib/esm/utils/getCommandMetadata.js.map +1 -1
- package/lib/types/services/CliLoadFile.d.ts +13 -0
- package/lib/types/services/index.d.ts +1 -0
- package/package.json +9 -5
- package/tsconfig.compile.esm.json +3 -1
package/lib/cjs/CliCore.js
CHANGED
|
@@ -48,8 +48,11 @@ let CliCore = CliCore_1 = class CliCore {
|
|
|
48
48
|
}
|
|
49
49
|
static async loadInjector(injector, module = CliCore_1) {
|
|
50
50
|
await injector.emit("$beforeInit");
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
injector.addProvider(CliCore_1, {
|
|
52
|
+
useClass: module
|
|
53
|
+
});
|
|
54
|
+
await injector.load();
|
|
55
|
+
await injector.invoke(module);
|
|
53
56
|
await injector.emit("$afterInit");
|
|
54
57
|
injector.settings.set("loaded", true);
|
|
55
58
|
}
|
package/lib/cjs/CliCore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {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 readonly injector: InjectorService;\n\n @Inject()\n readonly 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 create<Cli extends CliCore = CliCore>(settings: Partial<TsED.Configuration>, module: Type = CliCore): Promise<Cli> {\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 return injector.get<Cli>(CliCore)!;\n }\n\n static async bootstrap(settings: Partial<TsED.Configuration>, module: Type = CliCore) {\n const cli = await this.create(settings, module);\n\n return cli.bootstrap();\n }\n\n static async loadInjector(injector: InjectorService, module: Type = CliCore) {\n await injector.emit(\"$beforeInit\");\n\n injector.addProvider(CliCore, {\n useClass: module\n });\n\n await injector.load();\n await injector.invoke(module);\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 async bootstrap() {\n try {\n await this.cliService.parseArgs(this.injector.settings.get(\"argv\")!);\n } catch (er) {\n throw new CliError({origin: er, cli: this});\n }\n\n return this;\n }\n}\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliLoadFile = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@tsed/di");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const ajv_1 = tslib_1.__importDefault(require("ajv"));
|
|
8
|
+
const CliYaml_1 = require("./CliYaml");
|
|
9
|
+
const CliFs_1 = require("./CliFs");
|
|
10
|
+
let CliLoadFile = class CliLoadFile {
|
|
11
|
+
cliYaml;
|
|
12
|
+
cliFs;
|
|
13
|
+
#ajv;
|
|
14
|
+
constructor() {
|
|
15
|
+
const options = {
|
|
16
|
+
verbose: false,
|
|
17
|
+
coerceTypes: true,
|
|
18
|
+
strict: false
|
|
19
|
+
};
|
|
20
|
+
this.#ajv = new ajv_1.default(options);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Load a configuration file from yaml, json
|
|
24
|
+
*/
|
|
25
|
+
async loadFile(path, schema) {
|
|
26
|
+
let config;
|
|
27
|
+
const ext = (0, path_1.extname)(path);
|
|
28
|
+
if ([".yml", ".yaml"].includes(ext)) {
|
|
29
|
+
config = await this.cliYaml.read(path);
|
|
30
|
+
}
|
|
31
|
+
else if ([".json"].includes(ext)) {
|
|
32
|
+
config = await JSON.parse(await this.cliFs.readFile(path, "utf8"));
|
|
33
|
+
}
|
|
34
|
+
else if (!config) {
|
|
35
|
+
throw new Error("Unsupported format file");
|
|
36
|
+
}
|
|
37
|
+
if (schema) {
|
|
38
|
+
const validate = this.#ajv.compile(schema);
|
|
39
|
+
const isValid = validate(config);
|
|
40
|
+
if (!isValid) {
|
|
41
|
+
const [error] = validate.errors;
|
|
42
|
+
throw new Error([
|
|
43
|
+
`${error.instancePath.replace(/\//gi, ".")} `,
|
|
44
|
+
error.message,
|
|
45
|
+
error.params?.allowedValues && `. Allowed values: ${error.params?.allowedValues}`
|
|
46
|
+
]
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.join(""));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return config;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
tslib_1.__decorate([
|
|
55
|
+
(0, di_1.Inject)(),
|
|
56
|
+
tslib_1.__metadata("design:type", CliYaml_1.CliYaml)
|
|
57
|
+
], CliLoadFile.prototype, "cliYaml", void 0);
|
|
58
|
+
tslib_1.__decorate([
|
|
59
|
+
(0, di_1.Inject)(),
|
|
60
|
+
tslib_1.__metadata("design:type", CliFs_1.CliFs)
|
|
61
|
+
], CliLoadFile.prototype, "cliFs", void 0);
|
|
62
|
+
CliLoadFile = tslib_1.__decorate([
|
|
63
|
+
(0, di_1.Injectable)(),
|
|
64
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
65
|
+
], CliLoadFile);
|
|
66
|
+
exports.CliLoadFile = CliLoadFile;
|
|
67
|
+
//# sourceMappingURL=CliLoadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliLoadFile.js","sourceRoot":"","sources":["../../../src/services/CliLoadFile.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,+BAA6B;AAC7B,sDAAgC;AAChC,uCAAkC;AAClC,mCAA8B;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAW;IAEZ,OAAO,CAAU;IAGjB,KAAK,CAAQ;IAEvB,IAAI,CAAM;IAEV;QACE,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,aAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAc,IAAY,EAAE,MAAe;QACvD,IAAI,MAAW,CAAC;QAChB,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC;aAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;SACpE;aAAM,IAAI,CAAC,MAAM,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QAED,IAAI,MAAM,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAO,CAAC;gBAEjC,MAAM,IAAI,KAAK,CACb;oBACE,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;oBAC7C,KAAK,CAAC,OAAO;oBACb,KAAK,CAAC,MAAM,EAAE,aAAa,IAAI,qBAAqB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE;iBAClF;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,EAAE,CAAC,CACZ,CAAC;aACH;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAtDC;IADC,IAAA,WAAM,GAAE;sCACU,iBAAO;4CAAC;AAG3B;IADC,IAAA,WAAM,GAAE;sCACQ,aAAK;0CAAC;AALZ,WAAW;IADvB,IAAA,eAAU,GAAE;;GACA,WAAW,CAwDvB;AAxDY,kCAAW","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {extname} from \"path\";\nimport Ajv, {Schema} from \"ajv\";\nimport {CliYaml} from \"./CliYaml\";\nimport {CliFs} from \"./CliFs\";\n\n@Injectable()\nexport class CliLoadFile {\n @Inject()\n protected cliYaml: CliYaml;\n\n @Inject()\n protected cliFs: CliFs;\n\n #ajv: Ajv;\n\n constructor() {\n const options = {\n verbose: false,\n coerceTypes: true,\n strict: false\n };\n\n this.#ajv = new Ajv(options);\n }\n\n /**\n * Load a configuration file from yaml, json\n */\n async loadFile<Model = any>(path: string, schema?: Schema): Promise<Model> {\n let config: any;\n const ext = extname(path);\n\n if ([\".yml\", \".yaml\"].includes(ext)) {\n config = await this.cliYaml.read(path);\n } else if ([\".json\"].includes(ext)) {\n config = await JSON.parse(await this.cliFs.readFile(path, \"utf8\"));\n } else if (!config) {\n throw new Error(\"Unsupported format file\");\n }\n\n if (schema) {\n const validate = this.#ajv.compile(schema);\n\n const isValid = validate(config);\n\n if (!isValid) {\n const [error] = validate.errors!;\n\n throw new Error(\n [\n `${error.instancePath.replace(/\\//gi, \".\")} `,\n error.message,\n error.params?.allowedValues && `. Allowed values: ${error.params?.allowedValues}`\n ]\n .filter(Boolean)\n .join(\"\")\n );\n }\n }\n\n return config;\n }\n}\n"]}
|
|
@@ -11,6 +11,7 @@ tslib_1.__exportStar(require("./CliFs"), exports);
|
|
|
11
11
|
tslib_1.__exportStar(require("./ProjectPackageJson"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./Renderer"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./CliExeca"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./CliLoadFile"), exports);
|
|
14
15
|
tslib_1.__exportStar(require("./CliYaml"), exports);
|
|
15
16
|
tslib_1.__exportStar(require("./CliDockerComposeYaml"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./NpmRegistryClient"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,uDAA6B;AAC7B,2DAAiC;AACjC,0DAAgC;AAChC,uDAA6B;AAC7B,yDAA+B;AAC/B,kDAAwB;AACxB,+DAAqC;AACrC,qDAA2B;AAC3B,qDAA2B;AAC3B,oDAA0B;AAC1B,iEAAuC;AACvC,8DAAoC","sourcesContent":["export * from \"./CliConfiguration\";\nexport * from \"./CliService\";\nexport * from \"./CliPackageJson\";\nexport * from \"./CliHttpClient\";\nexport * from \"./CliPlugins\";\nexport * from \"./CliRunScript\";\nexport * from \"./CliFs\";\nexport * from \"./ProjectPackageJson\";\nexport * from \"./Renderer\";\nexport * from \"./CliExeca\";\nexport * from \"./CliYaml\";\nexport * from \"./CliDockerComposeYaml\";\nexport * from \"./NpmRegistryClient\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,uDAA6B;AAC7B,2DAAiC;AACjC,0DAAgC;AAChC,uDAA6B;AAC7B,yDAA+B;AAC/B,kDAAwB;AACxB,+DAAqC;AACrC,qDAA2B;AAC3B,qDAA2B;AAC3B,wDAA8B;AAC9B,oDAA0B;AAC1B,iEAAuC;AACvC,8DAAoC","sourcesContent":["export * from \"./CliConfiguration\";\nexport * from \"./CliService\";\nexport * from \"./CliPackageJson\";\nexport * from \"./CliHttpClient\";\nexport * from \"./CliPlugins\";\nexport * from \"./CliRunScript\";\nexport * from \"./CliFs\";\nexport * from \"./ProjectPackageJson\";\nexport * from \"./Renderer\";\nexport * from \"./CliExeca\";\nexport * from \"./CliLoadFile\";\nexport * from \"./CliYaml\";\nexport * from \"./CliDockerComposeYaml\";\nexport * from \"./NpmRegistryClient\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCommandMetadata.js","sourceRoot":"","sources":["../../../src/utils/getCommandMetadata.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,kEAA6D;AAG7D,SAAgB,kBAAkB,CAAC,KAAgB;IACjD,MAAM,
|
|
1
|
+
{"version":3,"file":"getCommandMetadata.js","sourceRoot":"","sources":["../../../src/utils/getCommandMetadata.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,kEAA6D;AAG7D,SAAgB,kBAAkB,CAAC,KAAgB;IACjD,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,GAAG,EAAE,EACT,kBAAkB,EAClB,WAAW,EACX,OAAO,GAAG,EAAE,EACb,GAAG,YAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,mCAAgB,CAAC,OAAO,CAAsB,CAAC;IAE1E,OAAO;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,WAAW;QACX,OAAO;QACP,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;KACzC,CAAC;AACJ,CAAC;AAlBD,gDAkBC","sourcesContent":["import {Store, Type} from \"@tsed/core\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {CommandParameters} from \"../interfaces/CommandParameters\";\n\nexport function getCommandMetadata(token: Type<any>) {\n const {\n name,\n alias,\n args = {},\n allowUnknownOption,\n description,\n options = {}\n } = Store.from(token)?.get(CommandStoreKeys.COMMAND) as CommandParameters;\n\n return {\n name,\n alias,\n args,\n description,\n options,\n allowUnknownOption: !!allowUnknownOption\n };\n}\n"]}
|
package/lib/esm/CliCore.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var CliCore_1;
|
|
2
2
|
import { __decorate, __metadata } from "tslib";
|
|
3
|
-
import {
|
|
3
|
+
import { Inject, InjectorService, Module } from "@tsed/di";
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
import { join, resolve } from "path";
|
|
@@ -45,8 +45,11 @@ let CliCore = CliCore_1 = class CliCore {
|
|
|
45
45
|
}
|
|
46
46
|
static async loadInjector(injector, module = CliCore_1) {
|
|
47
47
|
await injector.emit("$beforeInit");
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
injector.addProvider(CliCore_1, {
|
|
49
|
+
useClass: module
|
|
50
|
+
});
|
|
51
|
+
await injector.load();
|
|
52
|
+
await injector.invoke(module);
|
|
50
53
|
await injector.emit("$afterInit");
|
|
51
54
|
injector.settings.set("loaded", true);
|
|
52
55
|
}
|
package/lib/esm/CliCore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {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 readonly injector: InjectorService;\n\n @Inject()\n readonly 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 create<Cli extends CliCore = CliCore>(settings: Partial<TsED.Configuration>, module: Type = CliCore): Promise<Cli> {\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 return injector.get<Cli>(CliCore)!;\n }\n\n static async bootstrap(settings: Partial<TsED.Configuration>, module: Type = CliCore) {\n const cli = await this.create(settings, module);\n\n return cli.bootstrap();\n }\n\n static async loadInjector(injector: InjectorService, module: Type = CliCore) {\n await injector.emit(\"$beforeInit\");\n\n injector.addProvider(CliCore, {\n useClass: module\n });\n\n await injector.load();\n await injector.invoke(module);\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 async bootstrap() {\n try {\n await this.cliService.parseArgs(this.injector.settings.get(\"argv\")!);\n } catch (er) {\n throw new CliError({origin: er, cli: this});\n }\n\n return this;\n }\n}\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Inject, Injectable } from "@tsed/di";
|
|
3
|
+
import { extname } from "path";
|
|
4
|
+
import Ajv from "ajv";
|
|
5
|
+
import { CliYaml } from "./CliYaml.js";
|
|
6
|
+
import { CliFs } from "./CliFs.js";
|
|
7
|
+
let CliLoadFile = class CliLoadFile {
|
|
8
|
+
cliYaml;
|
|
9
|
+
cliFs;
|
|
10
|
+
#ajv;
|
|
11
|
+
constructor() {
|
|
12
|
+
const options = {
|
|
13
|
+
verbose: false,
|
|
14
|
+
coerceTypes: true,
|
|
15
|
+
strict: false
|
|
16
|
+
};
|
|
17
|
+
this.#ajv = new Ajv(options);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Load a configuration file from yaml, json
|
|
21
|
+
*/
|
|
22
|
+
async loadFile(path, schema) {
|
|
23
|
+
let config;
|
|
24
|
+
const ext = extname(path);
|
|
25
|
+
if ([".yml", ".yaml"].includes(ext)) {
|
|
26
|
+
config = await this.cliYaml.read(path);
|
|
27
|
+
}
|
|
28
|
+
else if ([".json"].includes(ext)) {
|
|
29
|
+
config = await JSON.parse(await this.cliFs.readFile(path, "utf8"));
|
|
30
|
+
}
|
|
31
|
+
else if (!config) {
|
|
32
|
+
throw new Error("Unsupported format file");
|
|
33
|
+
}
|
|
34
|
+
if (schema) {
|
|
35
|
+
const validate = this.#ajv.compile(schema);
|
|
36
|
+
const isValid = validate(config);
|
|
37
|
+
if (!isValid) {
|
|
38
|
+
const [error] = validate.errors;
|
|
39
|
+
throw new Error([
|
|
40
|
+
`${error.instancePath.replace(/\//gi, ".")} `,
|
|
41
|
+
error.message,
|
|
42
|
+
error.params?.allowedValues && `. Allowed values: ${error.params?.allowedValues}`
|
|
43
|
+
]
|
|
44
|
+
.filter(Boolean)
|
|
45
|
+
.join(""));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return config;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
__decorate([
|
|
52
|
+
Inject(),
|
|
53
|
+
__metadata("design:type", CliYaml)
|
|
54
|
+
], CliLoadFile.prototype, "cliYaml", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
Inject(),
|
|
57
|
+
__metadata("design:type", CliFs)
|
|
58
|
+
], CliLoadFile.prototype, "cliFs", void 0);
|
|
59
|
+
CliLoadFile = __decorate([
|
|
60
|
+
Injectable(),
|
|
61
|
+
__metadata("design:paramtypes", [])
|
|
62
|
+
], CliLoadFile);
|
|
63
|
+
export { CliLoadFile };
|
|
64
|
+
//# sourceMappingURL=CliLoadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliLoadFile.js","sourceRoot":"","sources":["../../../src/services/CliLoadFile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAa,MAAM,KAAK,CAAC;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAW;IAEZ,OAAO,CAAU;IAGjB,KAAK,CAAQ;IAEvB,IAAI,CAAM;IAEV;QACE,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAc,IAAY,EAAE,MAAe;QACvD,IAAI,MAAW,CAAC;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC;aAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;SACpE;aAAM,IAAI,CAAC,MAAM,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QAED,IAAI,MAAM,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAO,CAAC;gBAEjC,MAAM,IAAI,KAAK,CACb;oBACE,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;oBAC7C,KAAK,CAAC,OAAO;oBACb,KAAK,CAAC,MAAM,EAAE,aAAa,IAAI,qBAAqB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE;iBAClF;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,EAAE,CAAC,CACZ,CAAC;aACH;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAtDC;IADC,MAAM,EAAE;8BACU,OAAO;4CAAC;AAG3B;IADC,MAAM,EAAE;8BACQ,KAAK;0CAAC;AALZ,WAAW;IADvB,UAAU,EAAE;;GACA,WAAW,CAwDvB;SAxDY,WAAW","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {extname} from \"path\";\nimport Ajv, {Schema} from \"ajv\";\nimport {CliYaml} from \"./CliYaml\";\nimport {CliFs} from \"./CliFs\";\n\n@Injectable()\nexport class CliLoadFile {\n @Inject()\n protected cliYaml: CliYaml;\n\n @Inject()\n protected cliFs: CliFs;\n\n #ajv: Ajv;\n\n constructor() {\n const options = {\n verbose: false,\n coerceTypes: true,\n strict: false\n };\n\n this.#ajv = new Ajv(options);\n }\n\n /**\n * Load a configuration file from yaml, json\n */\n async loadFile<Model = any>(path: string, schema?: Schema): Promise<Model> {\n let config: any;\n const ext = extname(path);\n\n if ([\".yml\", \".yaml\"].includes(ext)) {\n config = await this.cliYaml.read(path);\n } else if ([\".json\"].includes(ext)) {\n config = await JSON.parse(await this.cliFs.readFile(path, \"utf8\"));\n } else if (!config) {\n throw new Error(\"Unsupported format file\");\n }\n\n if (schema) {\n const validate = this.#ajv.compile(schema);\n\n const isValid = validate(config);\n\n if (!isValid) {\n const [error] = validate.errors!;\n\n throw new Error(\n [\n `${error.instancePath.replace(/\\//gi, \".\")} `,\n error.message,\n error.params?.allowedValues && `. Allowed values: ${error.params?.allowedValues}`\n ]\n .filter(Boolean)\n .join(\"\")\n );\n }\n }\n\n return config;\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ export * from "./CliFs.js";
|
|
|
8
8
|
export * from "./ProjectPackageJson.js";
|
|
9
9
|
export * from "./Renderer.js";
|
|
10
10
|
export * from "./CliExeca.js";
|
|
11
|
+
export * from "./CliLoadFile.js";
|
|
11
12
|
export * from "./CliYaml.js";
|
|
12
13
|
export * from "./CliDockerComposeYaml.js";
|
|
13
14
|
export * from "./NpmRegistryClient.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./CliConfiguration\";\nexport * from \"./CliService\";\nexport * from \"./CliPackageJson\";\nexport * from \"./CliHttpClient\";\nexport * from \"./CliPlugins\";\nexport * from \"./CliRunScript\";\nexport * from \"./CliFs\";\nexport * from \"./ProjectPackageJson\";\nexport * from \"./Renderer\";\nexport * from \"./CliExeca\";\nexport * from \"./CliYaml\";\nexport * from \"./CliDockerComposeYaml\";\nexport * from \"./NpmRegistryClient\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./CliConfiguration\";\nexport * from \"./CliService\";\nexport * from \"./CliPackageJson\";\nexport * from \"./CliHttpClient\";\nexport * from \"./CliPlugins\";\nexport * from \"./CliRunScript\";\nexport * from \"./CliFs\";\nexport * from \"./ProjectPackageJson\";\nexport * from \"./Renderer\";\nexport * from \"./CliExeca\";\nexport * from \"./CliLoadFile\";\nexport * from \"./CliYaml\";\nexport * from \"./CliDockerComposeYaml\";\nexport * from \"./NpmRegistryClient\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCommandMetadata.js","sourceRoot":"","sources":["../../../src/utils/getCommandMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAO,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAG7D,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IACjD,MAAM,
|
|
1
|
+
{"version":3,"file":"getCommandMetadata.js","sourceRoot":"","sources":["../../../src/utils/getCommandMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAO,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAG7D,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IACjD,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,GAAG,EAAE,EACT,kBAAkB,EAClB,WAAW,EACX,OAAO,GAAG,EAAE,EACb,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAsB,CAAC;IAE1E,OAAO;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,WAAW;QACX,OAAO;QACP,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;KACzC,CAAC;AACJ,CAAC","sourcesContent":["import {Store, Type} from \"@tsed/core\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {CommandParameters} from \"../interfaces/CommandParameters\";\n\nexport function getCommandMetadata(token: Type<any>) {\n const {\n name,\n alias,\n args = {},\n allowUnknownOption,\n description,\n options = {}\n } = Store.from(token)?.get(CommandStoreKeys.COMMAND) as CommandParameters;\n\n return {\n name,\n alias,\n args,\n description,\n options,\n allowUnknownOption: !!allowUnknownOption\n };\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "ajv";
|
|
2
|
+
import { CliYaml } from "./CliYaml";
|
|
3
|
+
import { CliFs } from "./CliFs";
|
|
4
|
+
export declare class CliLoadFile {
|
|
5
|
+
#private;
|
|
6
|
+
protected cliYaml: CliYaml;
|
|
7
|
+
protected cliFs: CliFs;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Load a configuration file from yaml, json
|
|
11
|
+
*/
|
|
12
|
+
loadFile<Model = any>(path: string, schema?: Schema): Promise<Model>;
|
|
13
|
+
}
|
|
@@ -8,6 +8,7 @@ export * from "./CliFs";
|
|
|
8
8
|
export * from "./ProjectPackageJson";
|
|
9
9
|
export * from "./Renderer";
|
|
10
10
|
export * from "./CliExeca";
|
|
11
|
+
export * from "./CliLoadFile";
|
|
11
12
|
export * from "./CliYaml";
|
|
12
13
|
export * from "./CliDockerComposeYaml";
|
|
13
14
|
export * from "./NpmRegistryClient";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/cli-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-rc.2",
|
|
4
4
|
"description": "Build your CLI with TypeScript and Decorators",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@npmcli/run-script": "3.0.1",
|
|
32
32
|
"@tsed/logger": ">=6.1.1",
|
|
33
|
+
"ajv": "8.11.0",
|
|
33
34
|
"axios": "0.26.1",
|
|
34
35
|
"chalk": "4.1.2",
|
|
35
36
|
"change-case": "^4.1.2",
|
|
@@ -77,14 +78,17 @@
|
|
|
77
78
|
"@types/url-parse": "^1.4.3"
|
|
78
79
|
},
|
|
79
80
|
"peerDependencies": {
|
|
80
|
-
"@tsed/core": ">=
|
|
81
|
-
"@tsed/di": ">=
|
|
81
|
+
"@tsed/core": ">=7.0.0-rc.5",
|
|
82
|
+
"@tsed/di": ">=7.0.0-rc.5"
|
|
82
83
|
},
|
|
83
84
|
"repository": "https://github.com/tsedio/tsed-cli",
|
|
84
85
|
"bugs": {
|
|
85
86
|
"url": "https://github.com/tsedio/tsed-cli/issues"
|
|
86
87
|
},
|
|
87
|
-
"homepage": "https://github.com/tsedio/tsed-cli/tree/
|
|
88
|
+
"homepage": "https://github.com/tsedio/tsed-cli/tree/rc/packages/cli-core",
|
|
88
89
|
"author": "Romain Lenzotti",
|
|
89
|
-
"license": "MIT"
|
|
90
|
+
"license": "MIT",
|
|
91
|
+
"publishConfig": {
|
|
92
|
+
"tag": "rc"
|
|
93
|
+
}
|
|
90
94
|
}
|
|
@@ -8,5 +8,7 @@
|
|
|
8
8
|
"declaration": true,
|
|
9
9
|
"declarationDir": "./lib/types"
|
|
10
10
|
},
|
|
11
|
-
"exclude": ["node_modules", "test", "lib", "coverage", ".nyc_output", "**/*.spec.ts",
|
|
11
|
+
"exclude": ["node_modules", "test", "lib", "coverage", ".nyc_output", "**/*.spec.ts",
|
|
12
|
+
"jest.config.js"
|
|
13
|
+
]
|
|
12
14
|
}
|