@pristine-ts/cli 1.0.440 → 2.0.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/dist/bin/pristine.cjs +7 -0
- package/dist/lib/cjs/bin.js +15 -1
- package/dist/lib/cjs/bin.js.map +1 -1
- package/dist/lib/cjs/bootstrap/app-module-loader.js +321 -0
- package/dist/lib/cjs/bootstrap/app-module-loader.js.map +1 -0
- package/dist/lib/cjs/bootstrap/bootstrap.js +31 -0
- package/dist/lib/cjs/bootstrap/bootstrap.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-manifest-checker.js +67 -0
- package/dist/lib/cjs/bootstrap/build-manifest-checker.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-manifest-reader.js +44 -0
- package/dist/lib/cjs/bootstrap/build-manifest-reader.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-manifest-staleness.enum.js +23 -0
- package/dist/lib/cjs/bootstrap/build-manifest-staleness.enum.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-manifest-writer.js +55 -0
- package/dist/lib/cjs/bootstrap/build-manifest-writer.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-manifest.js +31 -0
- package/dist/lib/cjs/bootstrap/build-manifest.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-runner.js +44 -0
- package/dist/lib/cjs/bootstrap/build-runner.js.map +1 -0
- package/dist/lib/cjs/bootstrap/build-staleness-prompt.js +90 -0
- package/dist/lib/cjs/bootstrap/build-staleness-prompt.js.map +1 -0
- package/dist/lib/cjs/bootstrap/dynamic-importer.js +43 -0
- package/dist/lib/cjs/bootstrap/dynamic-importer.js.map +1 -0
- package/dist/lib/cjs/bootstrap/init-prompt.js +127 -0
- package/dist/lib/cjs/bootstrap/init-prompt.js.map +1 -0
- package/dist/lib/cjs/bootstrap/loaded-app-module.js +29 -0
- package/dist/lib/cjs/bootstrap/loaded-app-module.js.map +1 -0
- package/dist/lib/cjs/bootstrap/loaded-plugin.js +22 -0
- package/dist/lib/cjs/bootstrap/loaded-plugin.js.map +1 -0
- package/dist/lib/cjs/bootstrap/plugin-loader.js +149 -0
- package/dist/lib/cjs/bootstrap/plugin-loader.js.map +1 -0
- package/dist/lib/cjs/bootstrap/source-hasher.js +41 -0
- package/dist/lib/cjs/bootstrap/source-hasher.js.map +1 -0
- package/dist/lib/cjs/cli.js +94 -111
- package/dist/lib/cjs/cli.js.map +1 -1
- package/dist/lib/cjs/cli.module.js +9 -1
- package/dist/lib/cjs/cli.module.js.map +1 -1
- package/dist/lib/cjs/commands/build-alias.command.js +50 -0
- package/dist/lib/cjs/commands/build-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/build.command.js +173 -0
- package/dist/lib/cjs/commands/build.command.js.map +1 -0
- package/dist/lib/cjs/commands/commands.js +15 -0
- package/dist/lib/cjs/commands/commands.js.map +1 -1
- package/dist/lib/cjs/commands/config-print.command.js +75 -0
- package/dist/lib/cjs/commands/config-print.command.js.map +1 -0
- package/dist/lib/cjs/commands/help-alias.command.js +52 -0
- package/dist/lib/cjs/commands/help-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/help.command.js +44 -10
- package/dist/lib/cjs/commands/help.command.js.map +1 -1
- package/dist/lib/cjs/commands/info-alias.command.js +50 -0
- package/dist/lib/cjs/commands/info-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/info.command.js +162 -0
- package/dist/lib/cjs/commands/info.command.js.map +1 -0
- package/dist/lib/cjs/commands/init-alias.command.js +51 -0
- package/dist/lib/cjs/commands/init-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/init.command-options.js +53 -0
- package/dist/lib/cjs/commands/init.command-options.js.map +1 -0
- package/dist/lib/cjs/commands/init.command.js +249 -0
- package/dist/lib/cjs/commands/init.command.js.map +1 -0
- package/dist/lib/cjs/commands/list-alias.command.js +50 -0
- package/dist/lib/cjs/commands/list-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/list.command.js +7 -1
- package/dist/lib/cjs/commands/list.command.js.map +1 -1
- package/dist/lib/cjs/commands/start-alias.command.js +51 -0
- package/dist/lib/cjs/commands/start-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/start.command-options.js +34 -0
- package/dist/lib/cjs/commands/start.command-options.js.map +1 -0
- package/dist/lib/cjs/commands/start.command.js +169 -0
- package/dist/lib/cjs/commands/start.command.js.map +1 -0
- package/dist/lib/cjs/commands/verify-alias.command.js +50 -0
- package/dist/lib/cjs/commands/verify-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/verify.command.js +71 -0
- package/dist/lib/cjs/commands/verify.command.js.map +1 -0
- package/dist/lib/cjs/config/config-loader.js +136 -0
- package/dist/lib/cjs/config/config-loader.js.map +1 -0
- package/dist/lib/cjs/config/config-provenance.enum.js +15 -0
- package/dist/lib/cjs/config/config-provenance.enum.js.map +1 -0
- package/dist/lib/cjs/config/config.js +22 -0
- package/dist/lib/cjs/config/config.js.map +1 -0
- package/dist/lib/cjs/config/define-config.js +18 -0
- package/dist/lib/cjs/config/define-config.js.map +1 -0
- package/dist/lib/cjs/config/pristine-config.interface.js +3 -0
- package/dist/lib/cjs/config/pristine-config.interface.js.map +1 -0
- package/dist/lib/cjs/config/resolved-pristine-config.js +25 -0
- package/dist/lib/cjs/config/resolved-pristine-config.js.map +1 -0
- package/dist/lib/cjs/event-handlers/cli.event-handler.js +69 -48
- package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/lib/esm/bin.js +15 -1
- package/dist/lib/esm/bin.js.map +1 -1
- package/dist/lib/esm/bootstrap/app-module-loader.js +315 -0
- package/dist/lib/esm/bootstrap/app-module-loader.js.map +1 -0
- package/dist/lib/esm/bootstrap/bootstrap.js +15 -0
- package/dist/lib/esm/bootstrap/bootstrap.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-manifest-checker.js +61 -0
- package/dist/lib/esm/bootstrap/build-manifest-checker.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-manifest-reader.js +38 -0
- package/dist/lib/esm/bootstrap/build-manifest-reader.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-manifest-staleness.enum.js +20 -0
- package/dist/lib/esm/bootstrap/build-manifest-staleness.enum.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-manifest-writer.js +49 -0
- package/dist/lib/esm/bootstrap/build-manifest-writer.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-manifest.js +27 -0
- package/dist/lib/esm/bootstrap/build-manifest.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-runner.js +41 -0
- package/dist/lib/esm/bootstrap/build-runner.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-staleness-prompt.js +87 -0
- package/dist/lib/esm/bootstrap/build-staleness-prompt.js.map +1 -0
- package/dist/lib/esm/bootstrap/dynamic-importer.js +40 -0
- package/dist/lib/esm/bootstrap/dynamic-importer.js.map +1 -0
- package/dist/lib/esm/bootstrap/init-prompt.js +124 -0
- package/dist/lib/esm/bootstrap/init-prompt.js.map +1 -0
- package/dist/lib/esm/bootstrap/loaded-app-module.js +25 -0
- package/dist/lib/esm/bootstrap/loaded-app-module.js.map +1 -0
- package/dist/lib/esm/bootstrap/loaded-plugin.js +18 -0
- package/dist/lib/esm/bootstrap/loaded-plugin.js.map +1 -0
- package/dist/lib/esm/bootstrap/plugin-loader.js +143 -0
- package/dist/lib/esm/bootstrap/plugin-loader.js.map +1 -0
- package/dist/lib/esm/bootstrap/source-hasher.js +35 -0
- package/dist/lib/esm/bootstrap/source-hasher.js.map +1 -0
- package/dist/lib/esm/cli.js +109 -0
- package/dist/lib/esm/cli.js.map +1 -0
- package/dist/lib/esm/cli.module.js +7 -0
- package/dist/lib/esm/cli.module.js.map +1 -1
- package/dist/lib/esm/commands/build-alias.command.js +47 -0
- package/dist/lib/esm/commands/build-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/build.command.js +167 -0
- package/dist/lib/esm/commands/build.command.js.map +1 -0
- package/dist/lib/esm/commands/commands.js +15 -0
- package/dist/lib/esm/commands/commands.js.map +1 -1
- package/dist/lib/esm/commands/config-print.command.js +69 -0
- package/dist/lib/esm/commands/config-print.command.js.map +1 -0
- package/dist/lib/esm/commands/help-alias.command.js +49 -0
- package/dist/lib/esm/commands/help-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/help.command.js +44 -10
- package/dist/lib/esm/commands/help.command.js.map +1 -1
- package/dist/lib/esm/commands/info-alias.command.js +47 -0
- package/dist/lib/esm/commands/info-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/info.command.js +156 -0
- package/dist/lib/esm/commands/info.command.js.map +1 -0
- package/dist/lib/esm/commands/init-alias.command.js +48 -0
- package/dist/lib/esm/commands/init-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/init.command-options.js +49 -0
- package/dist/lib/esm/commands/init.command-options.js.map +1 -0
- package/dist/lib/esm/commands/init.command.js +243 -0
- package/dist/lib/esm/commands/init.command.js.map +1 -0
- package/dist/lib/esm/commands/list-alias.command.js +47 -0
- package/dist/lib/esm/commands/list-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/list.command.js +8 -2
- package/dist/lib/esm/commands/list.command.js.map +1 -1
- package/dist/lib/esm/commands/start-alias.command.js +48 -0
- package/dist/lib/esm/commands/start-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/start.command-options.js +30 -0
- package/dist/lib/esm/commands/start.command-options.js.map +1 -0
- package/dist/lib/esm/commands/start.command.js +166 -0
- package/dist/lib/esm/commands/start.command.js.map +1 -0
- package/dist/lib/esm/commands/verify-alias.command.js +47 -0
- package/dist/lib/esm/commands/verify-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/verify.command.js +68 -0
- package/dist/lib/esm/commands/verify.command.js.map +1 -0
- package/dist/lib/esm/config/config-loader.js +130 -0
- package/dist/lib/esm/config/config-loader.js.map +1 -0
- package/dist/lib/esm/config/config-provenance.enum.js +12 -0
- package/dist/lib/esm/config/config-provenance.enum.js.map +1 -0
- package/dist/lib/esm/config/config.js +6 -0
- package/dist/lib/esm/config/config.js.map +1 -0
- package/dist/lib/esm/config/define-config.js +14 -0
- package/dist/lib/esm/config/define-config.js.map +1 -0
- package/dist/lib/esm/config/pristine-config.interface.js +2 -0
- package/dist/lib/esm/config/pristine-config.interface.js.map +1 -0
- package/dist/lib/esm/config/resolved-pristine-config.js +21 -0
- package/dist/lib/esm/config/resolved-pristine-config.js.map +1 -0
- package/dist/lib/esm/event-handlers/cli.event-handler.js +69 -48
- package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/types/bootstrap/app-module-loader.d.ts +83 -0
- package/dist/types/bootstrap/bootstrap.d.ts +14 -0
- package/dist/types/bootstrap/build-manifest-checker.d.ts +19 -0
- package/dist/types/bootstrap/build-manifest-reader.d.ts +14 -0
- package/dist/types/bootstrap/build-manifest-staleness.enum.d.ts +18 -0
- package/dist/types/bootstrap/build-manifest-writer.d.ts +19 -0
- package/dist/types/bootstrap/build-manifest.d.ts +29 -0
- package/dist/types/bootstrap/build-runner.d.ts +16 -0
- package/dist/types/bootstrap/build-staleness-prompt.d.ts +27 -0
- package/dist/types/bootstrap/dynamic-importer.d.ts +13 -0
- package/dist/types/bootstrap/init-prompt.d.ts +38 -0
- package/dist/types/bootstrap/loaded-app-module.d.ts +40 -0
- package/dist/types/bootstrap/loaded-plugin.d.ts +20 -0
- package/dist/types/bootstrap/plugin-loader.d.ts +35 -0
- package/dist/types/bootstrap/source-hasher.d.ts +15 -0
- package/dist/types/cli.d.ts +12 -0
- package/dist/types/cli.module.d.ts +3 -0
- package/dist/types/commands/build-alias.command.d.ts +15 -0
- package/dist/types/commands/build.command.d.ts +47 -0
- package/dist/types/commands/commands.d.ts +15 -0
- package/dist/types/commands/config-print.command.d.ts +18 -0
- package/dist/types/commands/help-alias.command.d.ts +17 -0
- package/dist/types/commands/help.command.d.ts +19 -1
- package/dist/types/commands/info-alias.command.d.ts +15 -0
- package/dist/types/commands/info.command.d.ts +41 -0
- package/dist/types/commands/init-alias.command.d.ts +16 -0
- package/dist/types/commands/init.command-options.d.ts +22 -0
- package/dist/types/commands/init.command.d.ts +60 -0
- package/dist/types/commands/list-alias.command.d.ts +15 -0
- package/dist/types/commands/list.command.d.ts +6 -0
- package/dist/types/commands/start-alias.command.d.ts +16 -0
- package/dist/types/commands/start.command-options.d.ts +11 -0
- package/dist/types/commands/start.command.d.ts +47 -0
- package/dist/types/commands/verify-alias.command.d.ts +15 -0
- package/dist/types/commands/verify.command.d.ts +24 -0
- package/dist/types/config/config-loader.d.ts +40 -0
- package/dist/types/config/config-provenance.enum.d.ts +10 -0
- package/dist/types/config/config.d.ts +5 -0
- package/dist/types/config/define-config.d.ts +14 -0
- package/dist/types/config/pristine-config.interface.d.ts +67 -0
- package/dist/types/config/resolved-pristine-config.d.ts +28 -0
- package/dist/types/event-handlers/cli.event-handler.d.ts +30 -3
- package/dist/types/interfaces/command.interface.d.ts +31 -3
- package/package.json +16 -13
- package/readme.md +1023 -17
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.VerifyAliasCommand = void 0;
|
|
22
|
+
const common_1 = require("@pristine-ts/common");
|
|
23
|
+
const tsyringe_1 = require("tsyringe");
|
|
24
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
25
|
+
const verify_command_1 = require("./verify.command");
|
|
26
|
+
/**
|
|
27
|
+
* Top-level alias for the framework-reserved `p:verify` command. Injects the delegate
|
|
28
|
+
* directly via standard DI.
|
|
29
|
+
*/
|
|
30
|
+
let VerifyAliasCommand = class VerifyAliasCommand {
|
|
31
|
+
constructor(delegate) {
|
|
32
|
+
this.delegate = delegate;
|
|
33
|
+
this.optionsType = null;
|
|
34
|
+
this.name = "verify";
|
|
35
|
+
this.description = "Alias for p:verify.";
|
|
36
|
+
}
|
|
37
|
+
run(args) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return this.delegate.run(args);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.VerifyAliasCommand = VerifyAliasCommand;
|
|
44
|
+
exports.VerifyAliasCommand = VerifyAliasCommand = __decorate([
|
|
45
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
46
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
47
|
+
(0, tsyringe_1.injectable)(),
|
|
48
|
+
__metadata("design:paramtypes", [verify_command_1.VerifyCommand])
|
|
49
|
+
], VerifyAliasCommand);
|
|
50
|
+
//# sourceMappingURL=verify-alias.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/verify-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,gDAAgF;AAChF,uCAAoC;AAGpC,8DAAuD;AACvD,qDAA+C;AAE/C;;;GAGG;AAII,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAK7B,YAA6B,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;QAJpD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,qBAAqB,CAAC;IAGpC,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,gDAAkB;6BAAlB,kBAAkB;IAH9B,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAM4B,8BAAa;GALzC,kBAAkB,CAW9B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.VerifyCommand = void 0;
|
|
25
|
+
const common_1 = require("@pristine-ts/common");
|
|
26
|
+
const tsyringe_1 = require("tsyringe");
|
|
27
|
+
const core_1 = require("@pristine-ts/core");
|
|
28
|
+
const exit_code_enum_1 = require("../enums/exit-code.enum");
|
|
29
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
30
|
+
const app_module_loader_1 = require("../bootstrap/app-module-loader");
|
|
31
|
+
/**
|
|
32
|
+
* Verifies that the consumer's AppModule can be instantiated against its configuration.
|
|
33
|
+
* Builds a fresh throw-away kernel, runs every boot phase capturing per-phase outcomes,
|
|
34
|
+
* executes every embedder-registered `InstantiationTestInterface`, and routes the resulting
|
|
35
|
+
* report through the project's `LogHandlerInterface`.
|
|
36
|
+
*
|
|
37
|
+
* Note: this command runs after the CLI's own `kernel.start()` has succeeded, so it cannot
|
|
38
|
+
* be used to debug a configuration that is so broken the CLI can't start. For that case,
|
|
39
|
+
* call `kernel.verifyInstantiation(...)` directly from a small script that imports your
|
|
40
|
+
* AppModule.
|
|
41
|
+
*/
|
|
42
|
+
let VerifyCommand = class VerifyCommand {
|
|
43
|
+
constructor(logHandler, appModuleLoader) {
|
|
44
|
+
this.logHandler = logHandler;
|
|
45
|
+
this.appModuleLoader = appModuleLoader;
|
|
46
|
+
this.optionsType = null;
|
|
47
|
+
this.name = "p:verify";
|
|
48
|
+
this.description = "Verify the AppModule boots cleanly and run all registered InstantiationTests.";
|
|
49
|
+
}
|
|
50
|
+
run(args) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const skipTests = (args === null || args === void 0 ? void 0 : args["skip-tests"]) === true || (args === null || args === void 0 ? void 0 : args.skipTests) === true;
|
|
53
|
+
const { appModule, configuration } = yield this.appModuleLoader.load();
|
|
54
|
+
const kernel = new core_1.Kernel();
|
|
55
|
+
const report = yield kernel.verifyInstantiation(appModule, configuration, {
|
|
56
|
+
runInstantiationTests: !skipTests,
|
|
57
|
+
});
|
|
58
|
+
report.log(this.logHandler);
|
|
59
|
+
return report.hasErrors ? exit_code_enum_1.ExitCodeEnum.Error : exit_code_enum_1.ExitCodeEnum.Success;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.VerifyCommand = VerifyCommand;
|
|
64
|
+
exports.VerifyCommand = VerifyCommand = __decorate([
|
|
65
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
66
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
67
|
+
(0, tsyringe_1.injectable)(),
|
|
68
|
+
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
69
|
+
__metadata("design:paramtypes", [Object, app_module_loader_1.AppModuleLoader])
|
|
70
|
+
], VerifyCommand);
|
|
71
|
+
//# sourceMappingURL=verify.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.command.js","sourceRoot":"","sources":["../../../../src/commands/verify.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAgF;AAChF,uCAA4C;AAC5C,4CAAyC;AAGzC,4DAAqD;AACrD,8DAAuD;AACvD,sEAA+D;AAE/D;;;;;;;;;;GAUG;AAII,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKxB,YACiC,UAAgD,EAC9D,eAAgC;QADD,eAAU,GAAV,UAAU,CAAqB;QAC9D,oBAAe,GAAf,eAAe,CAAiB;QANnD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,UAAU,CAAC;QAClB,gBAAW,GAAG,+EAA+E,CAAC;IAM9F,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,MAAM,SAAS,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,YAAY,CAAC,MAAK,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,MAAK,IAAI,CAAC;YAE5E,MAAM,EAAC,SAAS,EAAE,aAAa,EAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAErE,MAAM,MAAM,GAAG,IAAI,aAAM,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE;gBACxE,qBAAqB,EAAE,CAAC,SAAS;aAClC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE5B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,6BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,6BAAY,CAAC,OAAO,CAAC;QACtE,CAAC;KAAA;CACF,CAAA;AAzBY,sCAAa;wBAAb,aAAa;IAHzB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;IAOR,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;6CACI,mCAAe;GAPxC,aAAa,CAyBzB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.ConfigLoader = void 0;
|
|
25
|
+
const tsyringe_1 = require("tsyringe");
|
|
26
|
+
const fs_1 = __importDefault(require("fs"));
|
|
27
|
+
const path_1 = __importDefault(require("path"));
|
|
28
|
+
const config_provenance_enum_1 = require("./config-provenance.enum");
|
|
29
|
+
const resolved_pristine_config_1 = require("./resolved-pristine-config");
|
|
30
|
+
const dynamic_importer_1 = require("../bootstrap/dynamic-importer");
|
|
31
|
+
/**
|
|
32
|
+
* Loads `pristine.config.ts` (preferred) or `pristine.config.js` (escape hatch for
|
|
33
|
+
* pure-JS projects). Walks up from `process.cwd()` looking for the file, then loads it
|
|
34
|
+
* through `jiti` (for `.ts`) or Node's dynamic `import()` (for `.js`).
|
|
35
|
+
*
|
|
36
|
+
* Returns a `ResolvedPristineConfig` carrying the file path (when found) and per-field
|
|
37
|
+
* provenance, which `pristine p:config:print` uses to render an annotated dump.
|
|
38
|
+
*/
|
|
39
|
+
let ConfigLoader = class ConfigLoader {
|
|
40
|
+
constructor(dynamicImporter) {
|
|
41
|
+
this.dynamicImporter = dynamicImporter;
|
|
42
|
+
/**
|
|
43
|
+
* File names searched for, in order. `.ts` is the canonical form — `defineConfig()`
|
|
44
|
+
* gives full IDE autocomplete and every Pristine project ships a TS toolchain anyway.
|
|
45
|
+
* `.js` is the escape hatch for the rare pure-JS project that cannot have a `.ts`
|
|
46
|
+
* file at the root.
|
|
47
|
+
*/
|
|
48
|
+
this.configFileNames = [
|
|
49
|
+
"pristine.config.ts",
|
|
50
|
+
"pristine.config.js",
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
load(options) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
var _a;
|
|
56
|
+
const startDir = (_a = options === null || options === void 0 ? void 0 : options.startDir) !== null && _a !== void 0 ? _a : process.cwd();
|
|
57
|
+
let configFilePath;
|
|
58
|
+
if ((options === null || options === void 0 ? void 0 : options.explicitPath) !== undefined) {
|
|
59
|
+
const abs = path_1.default.resolve(startDir, options.explicitPath);
|
|
60
|
+
if (fs_1.default.existsSync(abs) === false) {
|
|
61
|
+
throw new Error(`[pristine] Config file not found: '${options.explicitPath}' (resolved to '${abs}')`);
|
|
62
|
+
}
|
|
63
|
+
configFilePath = abs;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
configFilePath = this.findConfigFile(startDir);
|
|
67
|
+
}
|
|
68
|
+
if (configFilePath === undefined) {
|
|
69
|
+
return new resolved_pristine_config_1.ResolvedPristineConfig({}, undefined, {});
|
|
70
|
+
}
|
|
71
|
+
const config = yield this.importConfigFile(configFilePath);
|
|
72
|
+
const provenance = {};
|
|
73
|
+
for (const key of Object.keys(config)) {
|
|
74
|
+
provenance[key] = config_provenance_enum_1.ConfigProvenanceEnum.ConfigFile;
|
|
75
|
+
}
|
|
76
|
+
return new resolved_pristine_config_1.ResolvedPristineConfig(config, configFilePath, provenance);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Walks up from `startDir` looking for a config file with any of the supported names.
|
|
81
|
+
* Stops at the first match, returning the absolute path. Stops at the filesystem root
|
|
82
|
+
* without finding anything → returns undefined. Walking up matters in monorepos: a CLI
|
|
83
|
+
* invoked in `packages/foo/` should still find a `pristine.config.ts` at the repo root.
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
findConfigFile(startDir) {
|
|
87
|
+
let current = path_1.default.resolve(startDir);
|
|
88
|
+
while (true) {
|
|
89
|
+
for (const name of this.configFileNames) {
|
|
90
|
+
const candidate = path_1.default.join(current, name);
|
|
91
|
+
if (fs_1.default.existsSync(candidate) && fs_1.default.statSync(candidate).isFile()) {
|
|
92
|
+
return candidate;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const parent = path_1.default.dirname(current);
|
|
96
|
+
// path.dirname of root === root; we've hit the filesystem boundary.
|
|
97
|
+
if (parent === current)
|
|
98
|
+
return undefined;
|
|
99
|
+
current = parent;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Loads a config file from `absolutePath`. `.ts` goes through `jiti`; `.js` uses Node's
|
|
104
|
+
* native dynamic `import()`. Extracts the default export, falling back to a named
|
|
105
|
+
* `pristineConfig` export for users who prefer not to use `export default`.
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
importConfigFile(absolutePath) {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
var _a, _b, _c, _d;
|
|
111
|
+
const ext = path_1.default.extname(absolutePath).toLowerCase();
|
|
112
|
+
let loaded;
|
|
113
|
+
if (ext === ".ts") {
|
|
114
|
+
const jitiModule = yield this.dynamicImporter.import("jiti");
|
|
115
|
+
const createJiti = (_b = (_a = jitiModule.default) !== null && _a !== void 0 ? _a : jitiModule.createJiti) !== null && _b !== void 0 ? _b : jitiModule;
|
|
116
|
+
const jiti = createJiti(absolutePath, { interopDefault: true });
|
|
117
|
+
loaded = jiti(absolutePath);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
loaded = yield this.dynamicImporter.import(`file://${absolutePath}`);
|
|
121
|
+
}
|
|
122
|
+
const config = (_d = (_c = loaded === null || loaded === void 0 ? void 0 : loaded.default) !== null && _c !== void 0 ? _c : loaded === null || loaded === void 0 ? void 0 : loaded.pristineConfig) !== null && _d !== void 0 ? _d : loaded;
|
|
123
|
+
if (!config || typeof config !== "object") {
|
|
124
|
+
throw new Error(`[pristine] Config file at '${absolutePath}' did not export a valid configuration. ` +
|
|
125
|
+
`Use \`export default defineConfig({ ... })\` or \`export const pristineConfig = { ... }\`.`);
|
|
126
|
+
}
|
|
127
|
+
return config;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
exports.ConfigLoader = ConfigLoader;
|
|
132
|
+
exports.ConfigLoader = ConfigLoader = __decorate([
|
|
133
|
+
(0, tsyringe_1.injectable)(),
|
|
134
|
+
__metadata("design:paramtypes", [dynamic_importer_1.DynamicImporter])
|
|
135
|
+
], ConfigLoader);
|
|
136
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigProvenanceEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Where a resolved configuration value originated. Used by `pristine p:config:print` to
|
|
6
|
+
* annotate output so users can tell whether a value comes from their config file, a
|
|
7
|
+
* deprecated `package.json` field, or the CLI's built-in defaults.
|
|
8
|
+
*/
|
|
9
|
+
var ConfigProvenanceEnum;
|
|
10
|
+
(function (ConfigProvenanceEnum) {
|
|
11
|
+
ConfigProvenanceEnum["ConfigFile"] = "config-file";
|
|
12
|
+
ConfigProvenanceEnum["PackageJsonDeprecated"] = "package-json-deprecated";
|
|
13
|
+
ConfigProvenanceEnum["Default"] = "default";
|
|
14
|
+
})(ConfigProvenanceEnum || (exports.ConfigProvenanceEnum = ConfigProvenanceEnum = {}));
|
|
15
|
+
//# sourceMappingURL=config-provenance.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-provenance.enum.js","sourceRoot":"","sources":["../../../../src/config/config-provenance.enum.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,kDAA0B,CAAA;IAC1B,yEAAiD,CAAA;IACjD,2CAAmB,CAAA;AACrB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./config-loader"), exports);
|
|
18
|
+
__exportStar(require("./config-provenance.enum"), exports);
|
|
19
|
+
__exportStar(require("./define-config"), exports);
|
|
20
|
+
__exportStar(require("./pristine-config.interface"), exports);
|
|
21
|
+
__exportStar(require("./resolved-pristine-config"), exports);
|
|
22
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/config/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,2DAAyC;AACzC,kDAAgC;AAChC,8DAA4C;AAC5C,6DAA2C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineConfig = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Identity helper that gives an authored `pristine.config.ts` full type checking and
|
|
6
|
+
* autocomplete. Implementation is intentionally trivial — the types do all the work.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* import {defineConfig} from "@pristine-ts/cli";
|
|
10
|
+
*
|
|
11
|
+
* export default defineConfig({
|
|
12
|
+
* appModule: { path: "dist/app.module.js" },
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
const defineConfig = (config) => config;
|
|
17
|
+
exports.defineConfig = defineConfig;
|
|
18
|
+
//# sourceMappingURL=define-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-config.js","sourceRoot":"","sources":["../../../../src/config/define-config.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;GAWG;AACI,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAkB,EAAE,CAAC,MAAM,CAAC;AAAlE,QAAA,YAAY,gBAAsD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pristine-config.interface.js","sourceRoot":"","sources":["../../../../src/config/pristine-config.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResolvedPristineConfig = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A loaded `PristineConfig` augmented with discovery metadata. `ConfigLoader` returns this
|
|
6
|
+
* shape; the raw `PristineConfig` is what users author.
|
|
7
|
+
*/
|
|
8
|
+
class ResolvedPristineConfig {
|
|
9
|
+
constructor(config,
|
|
10
|
+
/** Absolute path to the config file that was loaded, if any. */
|
|
11
|
+
configFilePath,
|
|
12
|
+
/**
|
|
13
|
+
* Per-top-level-field provenance markers, mainly for `pristine p:config:print`. Keys are
|
|
14
|
+
* top-level fields of `PristineConfig` (`appModule`, `build`, `start`, `plugins`,
|
|
15
|
+
* `kernelConfiguration`); values are the `ConfigProvenanceEnum` describing where each
|
|
16
|
+
* came from.
|
|
17
|
+
*/
|
|
18
|
+
provenance) {
|
|
19
|
+
this.config = config;
|
|
20
|
+
this.configFilePath = configFilePath;
|
|
21
|
+
this.provenance = provenance;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ResolvedPristineConfig = ResolvedPristineConfig;
|
|
25
|
+
//# sourceMappingURL=resolved-pristine-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-pristine-config.js","sourceRoot":"","sources":["../../../../src/config/resolved-pristine-config.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,sBAAsB;IACjC,YACkB,MAAsB;IACtC,gEAAgE;IAChD,cAAkC;IAClD;;;;;OAKG;IACa,UAAgD;QAThD,WAAM,GAAN,MAAM,CAAgB;QAEtB,mBAAc,GAAd,cAAc,CAAoB;QAOlC,eAAU,GAAV,UAAU,CAAsC;IAElE,CAAC;CACF;AAdD,wDAcC"}
|
|
@@ -24,76 +24,98 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
exports.CliEventHandler = void 0;
|
|
25
25
|
const tsyringe_1 = require("tsyringe");
|
|
26
26
|
const command_event_payload_1 = require("../event-payloads/command.event-payload");
|
|
27
|
-
const command_event_response_type_1 = require("../types/command-event-response.type");
|
|
28
27
|
const common_1 = require("@pristine-ts/common");
|
|
29
28
|
const command_not_found_error_1 = require("../errors/command-not-found.error");
|
|
30
29
|
const class_validator_1 = require("@pristine-ts/class-validator");
|
|
31
30
|
const console_manager_1 = require("../managers/console.manager");
|
|
32
31
|
const exit_code_enum_1 = require("../enums/exit-code.enum");
|
|
33
32
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
34
|
-
const
|
|
33
|
+
const class_transformer_1 = require("class-transformer");
|
|
35
34
|
let CliEventHandler = class CliEventHandler {
|
|
36
|
-
constructor(logHandler, validator, consoleManager,
|
|
35
|
+
constructor(logHandler, validator, consoleManager, commands) {
|
|
37
36
|
this.logHandler = logHandler;
|
|
38
37
|
this.validator = validator;
|
|
39
38
|
this.consoleManager = consoleManager;
|
|
40
|
-
this.dataMapper = dataMapper;
|
|
41
39
|
this.commands = commands;
|
|
42
40
|
}
|
|
43
41
|
handle(event) {
|
|
44
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
|
|
46
|
-
const command = this.commands.find(
|
|
43
|
+
var _a;
|
|
44
|
+
const command = this.commands.find(c => c.name === event.payload.name);
|
|
47
45
|
if (command === undefined) {
|
|
48
46
|
throw new command_not_found_error_1.CommandNotFoundError(event.payload.name);
|
|
49
47
|
}
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
48
|
+
const resolution = yield this.resolveArgs(command, (_a = event.payload.arguments) !== null && _a !== void 0 ? _a : {});
|
|
49
|
+
if (resolution.exitCode !== undefined) {
|
|
50
|
+
// Mapping or validation failed. Already-rendered errors are on the console.
|
|
51
|
+
this.logExitStatus(event.payload.name, resolution.exitCode);
|
|
52
|
+
process.exit(resolution.exitCode);
|
|
53
|
+
}
|
|
54
|
+
const exitCode = yield command.run(resolution.args);
|
|
55
|
+
this.logExitStatus(event.payload.name, exitCode);
|
|
56
|
+
process.exit(exitCode);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Maps `rawArgs` (the parsed argv shape produced by `CommandEventMapper`) into a typed
|
|
61
|
+
* instance of `command.optionsType`, then runs `class-validator` against the instance.
|
|
62
|
+
*
|
|
63
|
+
* For commands that opt out of typed options (`optionsType === null`), passes the raw
|
|
64
|
+
* args through unchanged — the legacy escape hatch for commands that want to handle
|
|
65
|
+
* argv parsing themselves.
|
|
66
|
+
*
|
|
67
|
+
* Mapping or validation failures print the underlying error to the console and return an
|
|
68
|
+
* `exitCode` so the caller can exit non-zero. Success returns the typed instance under
|
|
69
|
+
* `args`. The two are mutually exclusive — see `ResolvedCommandArgs`.
|
|
70
|
+
*/
|
|
71
|
+
resolveArgs(command, rawArgs) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
if (command.optionsType === null) {
|
|
74
|
+
return { args: rawArgs };
|
|
62
75
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.consoleManager.writeLine("/t/t- [" + constraint + "]: " + message);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
return new command_event_response_type_1.CommandEventResponse(event, exit_code_enum_1.ExitCodeEnum.Error);
|
|
76
|
+
let mapped;
|
|
77
|
+
try {
|
|
78
|
+
// class-transformer's plainToInstance is what produces a real instance of the
|
|
79
|
+
// options class (with the prototype, decorator metadata, and class-validator hooks
|
|
80
|
+
// intact). DataMapper.autoMap would return a plain object instead, which causes
|
|
81
|
+
// class-validator to silently report no errors because it can't find decorator
|
|
82
|
+
// metadata on a non-instance — exactly the bug this rewrite fixes.
|
|
83
|
+
mapped = (0, class_transformer_1.plainToInstance)(command.optionsType, rawArgs);
|
|
75
84
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
mappedArguments);
|
|
80
|
-
// Log the status and the command
|
|
81
|
-
let status;
|
|
82
|
-
switch (exitCode) {
|
|
83
|
-
case exit_code_enum_1.ExitCodeEnum.Success:
|
|
84
|
-
status = "Success";
|
|
85
|
-
break;
|
|
86
|
-
default:
|
|
87
|
-
status = "Error";
|
|
88
|
-
break;
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.consoleManager.writeError(`Failed to map CLI arguments to '${command.optionsType.name}': ${error.message}`);
|
|
87
|
+
return { exitCode: exit_code_enum_1.ExitCodeEnum.Error };
|
|
89
88
|
}
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
const validationErrors = yield this.validator.validate(mapped);
|
|
90
|
+
if (validationErrors.length === 0) {
|
|
91
|
+
return { args: mapped };
|
|
92
|
+
}
|
|
93
|
+
for (const error of validationErrors) {
|
|
94
|
+
this.consoleManager.writeLine(`Errors with argument '${error.property}'. The following constraints failed:`);
|
|
95
|
+
for (const constraintKey in error.constraints) {
|
|
96
|
+
// `@pristine-ts/class-validator` stores constraints as `{keyname, message}` objects
|
|
97
|
+
// rather than the plain strings vanilla class-validator uses. Extract the message
|
|
98
|
+
// when present, falling back to JSON for unknown shapes so we never print
|
|
99
|
+
// `[object Object]`.
|
|
100
|
+
const constraint = error.constraints[constraintKey];
|
|
101
|
+
const message = typeof constraint === "string"
|
|
102
|
+
? constraint
|
|
103
|
+
: (constraint && typeof constraint === "object" && typeof constraint.message === "string")
|
|
104
|
+
? constraint.message
|
|
105
|
+
: JSON.stringify(constraint);
|
|
106
|
+
this.consoleManager.writeLine(`\t- [${constraintKey}]: ${message}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return { exitCode: exit_code_enum_1.ExitCodeEnum.Error };
|
|
92
110
|
});
|
|
93
111
|
}
|
|
94
112
|
supports(event) {
|
|
95
113
|
return event.payload instanceof command_event_payload_1.CommandEventPayload;
|
|
96
114
|
}
|
|
115
|
+
logExitStatus(commandName, exitCode) {
|
|
116
|
+
const status = exitCode === exit_code_enum_1.ExitCodeEnum.Success ? "Success" : "Error";
|
|
117
|
+
this.consoleManager.writeLine(`[status:'${status}', code:'${exitCode}'] - Command '${commandName}' exited.`);
|
|
118
|
+
}
|
|
97
119
|
};
|
|
98
120
|
exports.CliEventHandler = CliEventHandler;
|
|
99
121
|
exports.CliEventHandler = CliEventHandler = __decorate([
|
|
@@ -101,9 +123,8 @@ exports.CliEventHandler = CliEventHandler = __decorate([
|
|
|
101
123
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
102
124
|
(0, tsyringe_1.injectable)(),
|
|
103
125
|
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
104
|
-
__param(
|
|
126
|
+
__param(3, (0, tsyringe_1.injectAll)(common_1.ServiceDefinitionTagEnum.Command)),
|
|
105
127
|
__metadata("design:paramtypes", [Object, class_validator_1.Validator,
|
|
106
|
-
console_manager_1.ConsoleManager,
|
|
107
|
-
data_mapping_common_1.DataMapper, Array])
|
|
128
|
+
console_manager_1.ConsoleManager, Array])
|
|
108
129
|
], CliEventHandler);
|
|
109
130
|
//# sourceMappingURL=cli.event-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/cli.event-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAuD;AAEvD,mFAA4E;
|
|
1
|
+
{"version":3,"file":"cli.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/cli.event-handler.ts"],"names":[],"mappings":"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"}
|