@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.
@@ -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
- const container = (0, di_1.createContainer)();
52
- await injector.load(container, module);
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {createContainer, Inject, InjectorService, Module} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport chalk from \"chalk\";\nimport {Command} from \"commander\";\nimport {join, resolve} from \"path\";\nimport updateNotifier from \"update-notifier\";\nimport {CliConfiguration} from \"./services/CliConfiguration\";\nimport {CliPackageJson} from \"./services/CliPackageJson\";\nimport {CliService} from \"./services/CliService\";\nimport {ProjectPackageJson} from \"./services/ProjectPackageJson\";\nimport {createInjector} from \"./utils/createInjector\";\nimport {loadPlugins} from \"./utils/loadPlugins\";\nimport {CliError} from \"./domains/CliError\";\nimport semver from \"semver\";\n\nfunction isHelpManual(argv: string[]) {\n return argv.includes(\"-h\") || argv.includes(\"--help\");\n}\n\n@Module({\n imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]\n})\nexport class CliCore {\n @Inject()\n 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 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 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"]}
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,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAC,GAAG,YAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CACpG,mCAAgB,CAAC,OAAO,CACJ,CAAC;IAEvB,OAAO;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,WAAW;QACX,OAAO;QACP,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;KACzC,CAAC;AACJ,CAAC;AAbD,gDAaC","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 {name, alias, args = {}, allowUnknownOption, description, options = {}} = Store.from(token)?.get(\n CommandStoreKeys.COMMAND\n ) as CommandParameters;\n\n return {\n name,\n alias,\n args,\n description,\n options,\n allowUnknownOption: !!allowUnknownOption\n };\n}\n"]}
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"]}
@@ -1,6 +1,6 @@
1
1
  var CliCore_1;
2
2
  import { __decorate, __metadata } from "tslib";
3
- import { createContainer, Inject, InjectorService, Module } from "@tsed/di";
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
- const container = createContainer();
49
- await injector.load(container, module);
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {createContainer, Inject, InjectorService, Module} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport chalk from \"chalk\";\nimport {Command} from \"commander\";\nimport {join, resolve} from \"path\";\nimport updateNotifier from \"update-notifier\";\nimport {CliConfiguration} from \"./services/CliConfiguration\";\nimport {CliPackageJson} from \"./services/CliPackageJson\";\nimport {CliService} from \"./services/CliService\";\nimport {ProjectPackageJson} from \"./services/ProjectPackageJson\";\nimport {createInjector} from \"./utils/createInjector\";\nimport {loadPlugins} from \"./utils/loadPlugins\";\nimport {CliError} from \"./domains/CliError\";\nimport semver from \"semver\";\n\nfunction isHelpManual(argv: string[]) {\n return argv.includes(\"-h\") || argv.includes(\"--help\");\n}\n\n@Module({\n imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]\n})\nexport class CliCore {\n @Inject()\n 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 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 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"]}
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,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CACpG,gBAAgB,CAAC,OAAO,CACJ,CAAC;IAEvB,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 {name, alias, args = {}, allowUnknownOption, description, options = {}} = Store.from(token)?.get(\n CommandStoreKeys.COMMAND\n ) as CommandParameters;\n\n return {\n name,\n alias,\n args,\n description,\n options,\n allowUnknownOption: !!allowUnknownOption\n };\n}\n"]}
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.25.0",
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": ">=6.95.1",
81
- "@tsed/di": ">=6.95.1"
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/master/packages/cli-core",
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", "jest.config.js"]
11
+ "exclude": ["node_modules", "test", "lib", "coverage", ".nyc_output", "**/*.spec.ts",
12
+ "jest.config.js"
13
+ ]
12
14
  }