@pristine-ts/cli 2.0.5 → 2.0.7
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/lib/cjs/bootstrap/build-runner.js +1 -1
- package/dist/lib/cjs/cli.module.js +12 -7
- package/dist/lib/cjs/cli.module.js.map +1 -1
- package/dist/lib/cjs/commands/build.command.js +15 -14
- package/dist/lib/cjs/commands/build.command.js.map +1 -1
- package/dist/lib/cjs/commands/config-print.command.js +16 -11
- package/dist/lib/cjs/commands/config-print.command.js.map +1 -1
- package/dist/lib/cjs/commands/help.command.js +17 -17
- package/dist/lib/cjs/commands/help.command.js.map +1 -1
- package/dist/lib/cjs/commands/info.command.js +26 -21
- package/dist/lib/cjs/commands/info.command.js.map +1 -1
- package/dist/lib/cjs/commands/init.command.js +22 -21
- package/dist/lib/cjs/commands/init.command.js.map +1 -1
- package/dist/lib/cjs/commands/list.command.js +6 -6
- package/dist/lib/cjs/commands/list.command.js.map +1 -1
- package/dist/lib/cjs/commands/start.command.js +12 -13
- package/dist/lib/cjs/commands/start.command.js.map +1 -1
- package/dist/lib/cjs/event-handlers/cli.event-handler.js +9 -7
- package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/cjs/managers/cli-output.manager.js +45 -0
- package/dist/lib/cjs/managers/cli-output.manager.js.map +1 -0
- package/dist/lib/cjs/managers/cli-progress-bar.manager.js +49 -0
- package/dist/lib/cjs/managers/cli-progress-bar.manager.js.map +1 -0
- package/dist/lib/cjs/managers/cli-prompt.manager.js +99 -0
- package/dist/lib/cjs/managers/cli-prompt.manager.js.map +1 -0
- package/dist/lib/cjs/managers/cli-spinner.manager.js +93 -0
- package/dist/lib/cjs/managers/cli-spinner.manager.js.map +1 -0
- package/dist/lib/cjs/managers/managers.js +4 -1
- package/dist/lib/cjs/managers/managers.js.map +1 -1
- package/dist/lib/cjs/managers/shell.manager.js +25 -20
- package/dist/lib/cjs/managers/shell.manager.js.map +1 -1
- package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/lib/esm/bootstrap/build-runner.js +1 -1
- package/dist/lib/esm/cli.module.js +12 -7
- package/dist/lib/esm/cli.module.js.map +1 -1
- package/dist/lib/esm/commands/build.command.js +16 -15
- package/dist/lib/esm/commands/build.command.js.map +1 -1
- package/dist/lib/esm/commands/config-print.command.js +16 -11
- package/dist/lib/esm/commands/config-print.command.js.map +1 -1
- package/dist/lib/esm/commands/help.command.js +17 -17
- package/dist/lib/esm/commands/help.command.js.map +1 -1
- package/dist/lib/esm/commands/info.command.js +27 -22
- package/dist/lib/esm/commands/info.command.js.map +1 -1
- package/dist/lib/esm/commands/init.command.js +23 -22
- package/dist/lib/esm/commands/init.command.js.map +1 -1
- package/dist/lib/esm/commands/list.command.js +6 -6
- package/dist/lib/esm/commands/list.command.js.map +1 -1
- package/dist/lib/esm/commands/start.command.js +13 -14
- package/dist/lib/esm/commands/start.command.js.map +1 -1
- package/dist/lib/esm/event-handlers/cli.event-handler.js +9 -7
- package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/esm/managers/cli-output.manager.js +42 -0
- package/dist/lib/esm/managers/cli-output.manager.js.map +1 -0
- package/dist/lib/esm/managers/cli-progress-bar.manager.js +46 -0
- package/dist/lib/esm/managers/cli-progress-bar.manager.js.map +1 -0
- package/dist/lib/esm/managers/cli-prompt.manager.js +63 -0
- package/dist/lib/esm/managers/cli-prompt.manager.js.map +1 -0
- package/dist/lib/esm/managers/cli-spinner.manager.js +90 -0
- package/dist/lib/esm/managers/cli-spinner.manager.js.map +1 -0
- package/dist/lib/esm/managers/managers.js +4 -1
- package/dist/lib/esm/managers/managers.js.map +1 -1
- package/dist/lib/esm/managers/shell.manager.js +26 -21
- package/dist/lib/esm/managers/shell.manager.js.map +1 -1
- package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/types/bootstrap/build-runner.d.ts +1 -1
- package/dist/types/commands/build.command.d.ts +3 -3
- package/dist/types/commands/config-print.command.d.ts +8 -3
- package/dist/types/commands/help.command.d.ts +3 -3
- package/dist/types/commands/info.command.d.ts +5 -3
- package/dist/types/commands/init.command.d.ts +3 -3
- package/dist/types/commands/list.command.d.ts +3 -3
- package/dist/types/commands/start.command.d.ts +3 -3
- package/dist/types/event-handlers/cli.event-handler.d.ts +1 -3
- package/dist/types/managers/cli-output.manager.d.ts +21 -0
- package/dist/types/managers/cli-progress-bar.manager.d.ts +17 -0
- package/dist/types/managers/cli-prompt.manager.d.ts +22 -0
- package/dist/types/managers/cli-spinner.manager.d.ts +34 -0
- package/dist/types/managers/managers.d.ts +4 -1
- package/dist/types/managers/shell.manager.d.ts +3 -3
- package/package.json +9 -9
- package/dist/lib/cjs/managers/console.manager.js +0 -277
- package/dist/lib/cjs/managers/console.manager.js.map +0 -1
- package/dist/lib/esm/managers/console.manager.js +0 -241
- package/dist/lib/esm/managers/console.manager.js.map +0 -1
- package/dist/types/managers/console.manager.d.ts +0 -93
|
@@ -12,7 +12,7 @@ import { spawnSync } from "child_process";
|
|
|
12
12
|
* inline avoids the awkward "exit, ask the user to type a command, re-enter" loop.
|
|
13
13
|
*
|
|
14
14
|
* Spawning rather than dispatching to `BuildCommand` directly keeps `AppModuleLoader` free
|
|
15
|
-
* of the build pipeline's dependency graph (
|
|
15
|
+
* of the build pipeline's dependency graph (LogHandler, ShellManager, CliOutput, etc.) which only
|
|
16
16
|
* exists in the kernel container — and the kernel hasn't booted yet at the point this is
|
|
17
17
|
* called. The subprocess re-bootstraps the kernel cleanly with all of those services.
|
|
18
18
|
*
|
|
@@ -30,11 +30,16 @@ export const CliModule = {
|
|
|
30
30
|
ValidationModule,
|
|
31
31
|
],
|
|
32
32
|
/**
|
|
33
|
-
* When running through the CLI, logs
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
33
|
+
* When running through the CLI, logs are the user-facing channel — there is no separate
|
|
34
|
+
* "structured output" surface that competes with them. We layer a CLI-friendly set of
|
|
35
|
+
* defaults on top of LoggingModule's: the `Pretty` output mode (colored, icon-prefixed
|
|
36
|
+
* single-line rendering) and the `Info` severity threshold so command narration
|
|
37
|
+
* (`Compiling`, `Build complete`, `Server listening`) is visible by default — matching
|
|
38
|
+
* the pre-LogHandler-consolidation behavior of `ConsoleManager.writeInfo/Success`.
|
|
39
|
+
* Users who want a quieter CLI (or a different output mode) can override either key in
|
|
40
|
+
* `pristine.config.ts:config` — the file beats `configDefaults` in the resolution chain.
|
|
41
|
+
* Env vars are checked LAST in the resolver chain, after configDefaults, so they cannot
|
|
42
|
+
* override these CLI defaults; use the config file for that.
|
|
38
43
|
*
|
|
39
44
|
* No `isLoggingModulePresent` check needed — `LoggingModule` is a hard import above, so
|
|
40
45
|
* these keys are always registered when CliModule is in the graph. (And if a future
|
|
@@ -42,8 +47,8 @@ export const CliModule = {
|
|
|
42
47
|
* with an actionable "unknown key" error — the right failure mode for that case.)
|
|
43
48
|
*/
|
|
44
49
|
configDefaults: {
|
|
45
|
-
[LoggingModuleKeyname + ".consoleLoggerOutputMode"]: OutputModeEnum.
|
|
46
|
-
[LoggingModuleKeyname + ".logSeverityLevelConfiguration"]: SeverityEnum.
|
|
50
|
+
[LoggingModuleKeyname + ".consoleLoggerOutputMode"]: OutputModeEnum.Pretty,
|
|
51
|
+
[LoggingModuleKeyname + ".logSeverityLevelConfiguration"]: SeverityEnum.Info,
|
|
47
52
|
},
|
|
48
53
|
};
|
|
49
54
|
//# sourceMappingURL=cli.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../../../src/cli.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAA;AAE3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAE9B,yFAAyF;AACzF,yFAAyF;AACzF,mFAAmF;AACnF,oFAAoF;AACpF,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,OAAO,EAAE,gBAAgB;IACzB,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE;QACb,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,gBAAgB;KACjB;IACD
|
|
1
|
+
{"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../../../src/cli.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAA;AAE3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAE9B,yFAAyF;AACzF,yFAAyF;AACzF,mFAAmF;AACnF,oFAAoF;AACpF,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,OAAO,EAAE,gBAAgB;IACzB,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE;QACb,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,gBAAgB;KACjB;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,EAAE;QACd,CAAC,oBAAoB,GAAG,0BAA0B,CAAC,EAAE,cAAc,CAAC,MAAM;QAC1E,CAAC,oBAAoB,GAAG,gCAAgC,CAAC,EAAE,YAAY,CAAC,IAAI;KAC7E;CACF,CAAA"}
|
|
@@ -7,6 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
10
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,8 +22,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
22
|
import fs from "fs";
|
|
20
23
|
import path from "path";
|
|
21
24
|
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
22
|
-
import { injectable } from "tsyringe";
|
|
23
|
-
import { ConsoleManager } from "../managers/console.manager";
|
|
25
|
+
import { inject, injectable } from "tsyringe";
|
|
24
26
|
import { ShellManager } from "../managers/shell.manager";
|
|
25
27
|
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
26
28
|
import { ConfigLoader } from "../config/config-loader";
|
|
@@ -45,8 +47,8 @@ import { BuildManifestWriter } from "../bootstrap/build-manifest-writer";
|
|
|
45
47
|
* - clean: false (set true to wipe outDir before building)
|
|
46
48
|
*/
|
|
47
49
|
let BuildCommand = class BuildCommand {
|
|
48
|
-
constructor(
|
|
49
|
-
this.
|
|
50
|
+
constructor(logHandler, shellManager, configLoader, buildManifestWriter) {
|
|
51
|
+
this.logHandler = logHandler;
|
|
50
52
|
this.shellManager = shellManager;
|
|
51
53
|
this.configLoader = configLoader;
|
|
52
54
|
this.buildManifestWriter = buildManifestWriter;
|
|
@@ -69,18 +71,18 @@ let BuildCommand = class BuildCommand {
|
|
|
69
71
|
if (clean && outDir !== undefined) {
|
|
70
72
|
const absOut = path.resolve(projectRoot, outDir);
|
|
71
73
|
if (fs.existsSync(absOut)) {
|
|
72
|
-
this.
|
|
74
|
+
this.logHandler.info(`Cleaning ${outDir}/`, { highlights: { outDir } });
|
|
73
75
|
fs.rmSync(absOut, { recursive: true, force: true });
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
const invocations = this.resolveTscInvocations(projectRoot, tsconfig, format);
|
|
77
79
|
if (invocations.length === 0) {
|
|
78
|
-
this.
|
|
80
|
+
this.logHandler.error("No tsconfig found.", { highlights: { searched: this.expectedTsconfigsForFormat(tsconfig, format) } });
|
|
79
81
|
return ExitCode.Error;
|
|
80
82
|
}
|
|
81
83
|
for (const tsconfigPath of invocations) {
|
|
82
84
|
const relTsconfig = path.relative(projectRoot, tsconfigPath);
|
|
83
|
-
this.
|
|
85
|
+
this.logHandler.info(`Compiling with ${relTsconfig}`, { highlights: { tsconfig: relTsconfig } });
|
|
84
86
|
try {
|
|
85
87
|
// The shell command runs in the current process's CWD, which is already projectRoot.
|
|
86
88
|
// Don't pass `directory` here — ShellManager's PathManager resolution would double
|
|
@@ -92,12 +94,12 @@ let BuildCommand = class BuildCommand {
|
|
|
92
94
|
});
|
|
93
95
|
}
|
|
94
96
|
catch (error) {
|
|
95
|
-
this.
|
|
97
|
+
this.logHandler.error(`tsc failed for ${relTsconfig}`, { highlights: { tsconfig: relTsconfig } });
|
|
96
98
|
return ExitCode.Error;
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
this.writeManifestIfConfigured(projectRoot, (_f = resolvedConfig.config.cli) === null || _f === void 0 ? void 0 : _f.appModule);
|
|
100
|
-
this.
|
|
102
|
+
this.logHandler.success("Build complete.", { highlights: { tsconfigs: invocations.length } });
|
|
101
103
|
return ExitCode.Success;
|
|
102
104
|
});
|
|
103
105
|
}
|
|
@@ -110,16 +112,15 @@ let BuildCommand = class BuildCommand {
|
|
|
110
112
|
const absoluteSource = path.resolve(projectRoot, appModule.sourcePath);
|
|
111
113
|
const absoluteOutput = path.resolve(projectRoot, appModule.outputPath);
|
|
112
114
|
if (fs.existsSync(absoluteSource) === false) {
|
|
113
|
-
this.
|
|
115
|
+
this.logHandler.warning("Build succeeded but appModule.sourcePath does not exist; skipping manifest.", { highlights: { sourcePath: appModule.sourcePath } });
|
|
114
116
|
return;
|
|
115
117
|
}
|
|
116
118
|
if (fs.existsSync(absoluteOutput) === false) {
|
|
117
|
-
this.
|
|
118
|
-
`Check your tsconfig outDir / file layout.`);
|
|
119
|
+
this.logHandler.warning("Build succeeded but appModule.outputPath was not produced; skipping manifest. Check your tsconfig outDir / file layout.", { highlights: { outputPath: appModule.outputPath } });
|
|
119
120
|
return;
|
|
120
121
|
}
|
|
121
122
|
const manifest = this.buildManifestWriter.write(projectRoot, appModule.sourcePath, appModule.outputPath);
|
|
122
|
-
this.
|
|
123
|
+
this.logHandler.info("Manifest written: .pristine/build-manifest.json", { highlights: { builtAt: manifest.builtAt } });
|
|
123
124
|
}
|
|
124
125
|
/**
|
|
125
126
|
* For `format: "both"`, we run two passes: the primary tsconfig (assumed ESM-ish), then
|
|
@@ -157,8 +158,8 @@ BuildCommand = __decorate([
|
|
|
157
158
|
tag(ServiceDefinitionTagEnum.Command),
|
|
158
159
|
moduleScoped(CliModuleKeyname),
|
|
159
160
|
injectable(),
|
|
160
|
-
|
|
161
|
-
|
|
161
|
+
__param(0, inject("LogHandlerInterface")),
|
|
162
|
+
__metadata("design:paramtypes", [Object, ShellManager,
|
|
162
163
|
ConfigLoader,
|
|
163
164
|
BuildManifestWriter])
|
|
164
165
|
], BuildCommand);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/commands/build.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/commands/build.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,17 +19,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
import path from "path";
|
|
20
20
|
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
21
21
|
import { injectable } from "tsyringe";
|
|
22
|
-
import {
|
|
22
|
+
import { CliOutput } from "../managers/cli-output.manager";
|
|
23
23
|
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
24
24
|
import { ConfigLoader } from "../config/config-loader";
|
|
25
25
|
/**
|
|
26
26
|
* Prints the resolved Pristine configuration plus where it was loaded from. Useful for
|
|
27
27
|
* debugging discovery — when `pristine` is doing something unexpected, the first question is
|
|
28
28
|
* always "which config file did it actually pick up?"
|
|
29
|
+
*
|
|
30
|
+
* This is a report command: its entire output is the report. It goes through `CliOutput`
|
|
31
|
+
* exclusively (not `LogHandler`) so the dump pipes/redirects cleanly — `pristine
|
|
32
|
+
* p:config:print > config.json` must produce a usable file, with no severity gating, no
|
|
33
|
+
* per-line timestamp/icon decoration, and no fan-out to file/Sentry transports.
|
|
29
34
|
*/
|
|
30
35
|
let ConfigPrintCommand = class ConfigPrintCommand {
|
|
31
|
-
constructor(
|
|
32
|
-
this.
|
|
36
|
+
constructor(cliOutput, configLoader) {
|
|
37
|
+
this.cliOutput = cliOutput;
|
|
33
38
|
this.configLoader = configLoader;
|
|
34
39
|
this.optionsType = null;
|
|
35
40
|
this.name = "p:config:print";
|
|
@@ -39,18 +44,18 @@ let ConfigPrintCommand = class ConfigPrintCommand {
|
|
|
39
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
45
|
const resolved = yield this.configLoader.load({ startDir: process.cwd() });
|
|
41
46
|
if (resolved.configFilePath !== undefined) {
|
|
42
|
-
this.
|
|
47
|
+
this.cliOutput.writeLine(`Config file: ${path.relative(process.cwd(), resolved.configFilePath)}`);
|
|
43
48
|
}
|
|
44
49
|
else {
|
|
45
|
-
this.
|
|
50
|
+
this.cliOutput.writeLine("No config file found — running with defaults.");
|
|
46
51
|
}
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
52
|
+
this.cliOutput.writeLine("");
|
|
53
|
+
this.cliOutput.writeLine(JSON.stringify(resolved.config, null, 2));
|
|
49
54
|
if (Object.keys(resolved.provenance).length > 0) {
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
55
|
+
this.cliOutput.writeLine("");
|
|
56
|
+
this.cliOutput.writeLine("Provenance:");
|
|
52
57
|
for (const [field, source] of Object.entries(resolved.provenance)) {
|
|
53
|
-
this.
|
|
58
|
+
this.cliOutput.writeLine(` ${field}: ${source}`);
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
61
|
return ExitCode.Success;
|
|
@@ -61,7 +66,7 @@ ConfigPrintCommand = __decorate([
|
|
|
61
66
|
tag(ServiceDefinitionTagEnum.Command),
|
|
62
67
|
moduleScoped(CliModuleKeyname),
|
|
63
68
|
injectable(),
|
|
64
|
-
__metadata("design:paramtypes", [
|
|
69
|
+
__metadata("design:paramtypes", [CliOutput,
|
|
65
70
|
ConfigLoader])
|
|
66
71
|
], ConfigPrintCommand);
|
|
67
72
|
export { ConfigPrintCommand };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-print.command.js","sourceRoot":"","sources":["../../../../src/commands/config-print.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"config-print.command.js","sourceRoot":"","sources":["../../../../src/commands/config-print.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAErD;;;;;;;;;GASG;AAII,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAK7B,YACmB,SAAoB,EACpB,YAA0B;QAD1B,cAAS,GAAT,SAAS,CAAW;QACpB,iBAAY,GAAZ,YAAY,CAAc;QAN7C,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,gBAAgB,CAAC;QACxB,gBAAW,GAAG,0EAA0E,CAAC;IAMzF,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAC,CAAC,CAAC;YAEzE,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACxC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AAjCY,kBAAkB;IAH9B,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAOmB,SAAS;QACN,YAAY;GAPlC,kBAAkB,CAiC9B"}
|
|
@@ -21,7 +21,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
21
21
|
};
|
|
22
22
|
import { inject, injectable } from "tsyringe";
|
|
23
23
|
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
24
|
-
import {
|
|
24
|
+
import { CliOutput } from "../managers/cli-output.manager";
|
|
25
25
|
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
26
26
|
/**
|
|
27
27
|
* Prints a usage banner plus a one-line summary for every registered command. The output is
|
|
@@ -39,8 +39,8 @@ import { CliModuleKeyname } from "../cli.module.keyname";
|
|
|
39
39
|
* by which point every Command-tagged class is fully constructed and cached.
|
|
40
40
|
*/
|
|
41
41
|
let HelpCommand = class HelpCommand {
|
|
42
|
-
constructor(
|
|
43
|
-
this.
|
|
42
|
+
constructor(cliOutput, container) {
|
|
43
|
+
this.cliOutput = cliOutput;
|
|
44
44
|
this.container = container;
|
|
45
45
|
this.optionsType = null;
|
|
46
46
|
this.name = "p:help";
|
|
@@ -55,25 +55,25 @@ let HelpCommand = class HelpCommand {
|
|
|
55
55
|
// The lazy resolve breaks the cycle. The child container is constructor-
|
|
56
56
|
// injected, so only the enumeration is late-bound.
|
|
57
57
|
const commands = this.container.resolveAll(ServiceDefinitionTagEnum.Command);
|
|
58
|
-
this.
|
|
59
|
-
this.
|
|
60
|
-
this.
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
58
|
+
this.cliOutput.writeLine("Pristine CLI");
|
|
59
|
+
this.cliOutput.writeLine("");
|
|
60
|
+
this.cliOutput.writeLine("Usage:");
|
|
61
|
+
this.cliOutput.writeLine(" pristine <command> [--option=value ...]");
|
|
62
|
+
this.cliOutput.writeLine("");
|
|
63
|
+
this.cliOutput.writeLine("Commands:");
|
|
64
64
|
const sorted = [...commands].sort((a, b) => a.name.localeCompare(b.name));
|
|
65
65
|
const longestName = sorted.reduce((max, c) => Math.max(max, c.name.length), 0);
|
|
66
66
|
for (const command of sorted) {
|
|
67
67
|
const padded = command.name.padEnd(longestName + 2, " ");
|
|
68
68
|
const description = (_a = command.description) !== null && _a !== void 0 ? _a : "";
|
|
69
|
-
this.
|
|
69
|
+
this.cliOutput.writeLine(` ${padded}${description}`);
|
|
70
70
|
}
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
73
|
-
this.
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
76
|
-
this.
|
|
71
|
+
this.cliOutput.writeLine("");
|
|
72
|
+
this.cliOutput.writeLine("Adding your own command:");
|
|
73
|
+
this.cliOutput.writeLine(" 1. Implement CommandInterface from '@pristine-ts/cli'");
|
|
74
|
+
this.cliOutput.writeLine(" 2. Decorate with @tag(ServiceDefinitionTagEnum.Command) @injectable()");
|
|
75
|
+
this.cliOutput.writeLine(" 3. Make sure your AppModule's import graph reaches the file");
|
|
76
|
+
this.cliOutput.writeLine(" 4. Invoke as: pristine <your-command-name>");
|
|
77
77
|
return ExitCode.Success;
|
|
78
78
|
});
|
|
79
79
|
}
|
|
@@ -83,7 +83,7 @@ HelpCommand = __decorate([
|
|
|
83
83
|
moduleScoped(CliModuleKeyname),
|
|
84
84
|
injectable(),
|
|
85
85
|
__param(1, inject(ServiceDefinitionTagEnum.CurrentChildContainer)),
|
|
86
|
-
__metadata("design:paramtypes", [
|
|
86
|
+
__metadata("design:paramtypes", [CliOutput, Object])
|
|
87
87
|
], HelpCommand);
|
|
88
88
|
export { HelpCommand };
|
|
89
89
|
//# sourceMappingURL=help.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.command.js","sourceRoot":"","sources":["../../../../src/commands/help.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AACjE,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"help.command.js","sourceRoot":"","sources":["../../../../src/commands/help.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AACjE,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;GAcG;AAII,IAAM,WAAW,GAAjB,MAAM,WAAW;IAKtB,YACmB,SAAoB,EACmB,SAA+C;QADtF,cAAS,GAAT,SAAS,CAAW;QACoC,cAAS,GAAT,SAAS,CAAqB;QANzG,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,0DAA0D,CAAC;IAMzE,CAAC;IAEK,GAAG,CAAC,IAAS;;;YACjB,+EAA+E;YAC/E,6EAA6E;YAC7E,8EAA8E;YAC9E,yEAAyE;YACzE,mDAAmD;YACnD,MAAM,QAAQ,GAA4B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAEtG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE/E,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzD,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,EAAE,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,yEAAyE,CAAC,CAAC;YACpG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAC;YAC1F,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;YAEzE,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AA5CY,WAAW;IAHvB,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;IAQR,WAAA,MAAM,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAA;qCAD3B,SAAS;GAN5B,WAAW,CA4CvB"}
|
|
@@ -7,6 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
10
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -20,8 +23,8 @@ import fs from "fs";
|
|
|
20
23
|
import os from "os";
|
|
21
24
|
import path from "path";
|
|
22
25
|
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
23
|
-
import { injectable } from "tsyringe";
|
|
24
|
-
import {
|
|
26
|
+
import { inject, injectable } from "tsyringe";
|
|
27
|
+
import { CliOutput } from "../managers/cli-output.manager";
|
|
25
28
|
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
26
29
|
import { ConfigLoader } from "../config/config-loader";
|
|
27
30
|
import { AppModuleLoader } from "../bootstrap/app-module-loader";
|
|
@@ -36,8 +39,9 @@ import { AppModuleLoader } from "../bootstrap/app-module-loader";
|
|
|
36
39
|
* prevents `kernel.start()`.
|
|
37
40
|
*/
|
|
38
41
|
let InfoCommand = class InfoCommand {
|
|
39
|
-
constructor(
|
|
40
|
-
this.
|
|
42
|
+
constructor(logHandler, cliOutput, configLoader, appModuleLoader) {
|
|
43
|
+
this.logHandler = logHandler;
|
|
44
|
+
this.cliOutput = cliOutput;
|
|
41
45
|
this.configLoader = configLoader;
|
|
42
46
|
this.appModuleLoader = appModuleLoader;
|
|
43
47
|
this.optionsType = null;
|
|
@@ -58,26 +62,26 @@ let InfoCommand = class InfoCommand {
|
|
|
58
62
|
});
|
|
59
63
|
}
|
|
60
64
|
printRuntimeBanner() {
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
65
|
-
this.
|
|
66
|
-
this.
|
|
65
|
+
this.cliOutput.writeLine("Pristine CLI");
|
|
66
|
+
this.cliOutput.writeLine(` Version: ${this.readCliVersion()}`);
|
|
67
|
+
this.cliOutput.writeLine(` Node: ${process.version}`);
|
|
68
|
+
this.cliOutput.writeLine(` Platform: ${os.platform()} ${os.arch()} (${os.release()})`);
|
|
69
|
+
this.cliOutput.writeLine(` CWD: ${process.cwd()}`);
|
|
70
|
+
this.cliOutput.writeLine("");
|
|
67
71
|
}
|
|
68
72
|
printConfigSection() {
|
|
69
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
74
|
var _a, _b, _c, _d, _e;
|
|
71
75
|
const resolvedConfig = yield this.configLoader.load({ startDir: process.cwd() });
|
|
72
|
-
this.
|
|
73
|
-
this.
|
|
76
|
+
this.cliOutput.writeLine("Configuration");
|
|
77
|
+
this.cliOutput.writeLine(` Config file: ${(_a = resolvedConfig.configFilePath) !== null && _a !== void 0 ? _a : "(none — using defaults)"}`);
|
|
74
78
|
if (((_c = (_b = resolvedConfig.config.cli) === null || _b === void 0 ? void 0 : _b.appModule) === null || _c === void 0 ? void 0 : _c.sourcePath) !== undefined) {
|
|
75
|
-
this.
|
|
79
|
+
this.cliOutput.writeLine(` AppModule src: ${resolvedConfig.config.cli.appModule.sourcePath} (from config file)`);
|
|
76
80
|
}
|
|
77
81
|
if (((_e = (_d = resolvedConfig.config.cli) === null || _d === void 0 ? void 0 : _d.appModule) === null || _e === void 0 ? void 0 : _e.outputPath) !== undefined) {
|
|
78
|
-
this.
|
|
82
|
+
this.cliOutput.writeLine(` AppModule out: ${resolvedConfig.config.cli.appModule.outputPath} (from config file)`);
|
|
79
83
|
}
|
|
80
|
-
this.
|
|
84
|
+
this.cliOutput.writeLine("");
|
|
81
85
|
});
|
|
82
86
|
}
|
|
83
87
|
printAppModuleSection() {
|
|
@@ -88,25 +92,25 @@ let InfoCommand = class InfoCommand {
|
|
|
88
92
|
const loaded = yield this.appModuleLoader.load();
|
|
89
93
|
modules = this.collectModules(loaded.appModule);
|
|
90
94
|
pluginNames = loaded.plugins.map(p => p.name);
|
|
91
|
-
this.
|
|
95
|
+
this.cliOutput.writeLine(`AppModule: ${loaded.appModule.keyname}`);
|
|
92
96
|
}
|
|
93
97
|
catch (error) {
|
|
94
|
-
this.
|
|
98
|
+
this.logHandler.error("Could not load AppModule", { highlights: { error: error.message } });
|
|
95
99
|
return ExitCode.Error;
|
|
96
100
|
}
|
|
97
101
|
if (pluginNames.length > 0) {
|
|
98
|
-
this.
|
|
102
|
+
this.cliOutput.writeLine(`Plugins (${pluginNames.length}):`);
|
|
99
103
|
for (const name of pluginNames) {
|
|
100
|
-
this.
|
|
104
|
+
this.cliOutput.writeLine(` - ${name}`);
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
|
-
this.
|
|
107
|
+
this.cliOutput.writeLine(`Imported modules (${modules.length}):`);
|
|
104
108
|
const uniqueByKeyname = new Map();
|
|
105
109
|
for (const m of modules) {
|
|
106
110
|
uniqueByKeyname.set(m.keyname, m);
|
|
107
111
|
}
|
|
108
112
|
for (const m of [...uniqueByKeyname.values()].sort((a, b) => a.keyname.localeCompare(b.keyname))) {
|
|
109
|
-
this.
|
|
113
|
+
this.cliOutput.writeLine(` - ${m.keyname}`);
|
|
110
114
|
}
|
|
111
115
|
return ExitCode.Success;
|
|
112
116
|
});
|
|
@@ -147,7 +151,8 @@ InfoCommand = __decorate([
|
|
|
147
151
|
tag(ServiceDefinitionTagEnum.Command),
|
|
148
152
|
moduleScoped(CliModuleKeyname),
|
|
149
153
|
injectable(),
|
|
150
|
-
|
|
154
|
+
__param(0, inject("LogHandlerInterface")),
|
|
155
|
+
__metadata("design:paramtypes", [Object, CliOutput,
|
|
151
156
|
ConfigLoader,
|
|
152
157
|
AppModuleLoader])
|
|
153
158
|
], InfoCommand);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.command.js","sourceRoot":"","sources":["../../../../src/commands/info.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"info.command.js","sourceRoot":"","sources":["../../../../src/commands/info.command.ts"],"names":[],"mappings":"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"}
|