@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
|
@@ -15,7 +15,7 @@ const child_process_1 = require("child_process");
|
|
|
15
15
|
* inline avoids the awkward "exit, ask the user to type a command, re-enter" loop.
|
|
16
16
|
*
|
|
17
17
|
* Spawning rather than dispatching to `BuildCommand` directly keeps `AppModuleLoader` free
|
|
18
|
-
* of the build pipeline's dependency graph (
|
|
18
|
+
* of the build pipeline's dependency graph (LogHandler, ShellManager, CliOutput, etc.) which only
|
|
19
19
|
* exists in the kernel container — and the kernel hasn't booted yet at the point this is
|
|
20
20
|
* called. The subprocess re-bootstraps the kernel cleanly with all of those services.
|
|
21
21
|
*
|
|
@@ -48,11 +48,16 @@ exports.CliModule = {
|
|
|
48
48
|
validation_1.ValidationModule,
|
|
49
49
|
],
|
|
50
50
|
/**
|
|
51
|
-
* When running through the CLI, logs
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
51
|
+
* When running through the CLI, logs are the user-facing channel — there is no separate
|
|
52
|
+
* "structured output" surface that competes with them. We layer a CLI-friendly set of
|
|
53
|
+
* defaults on top of LoggingModule's: the `Pretty` output mode (colored, icon-prefixed
|
|
54
|
+
* single-line rendering) and the `Info` severity threshold so command narration
|
|
55
|
+
* (`Compiling`, `Build complete`, `Server listening`) is visible by default — matching
|
|
56
|
+
* the pre-LogHandler-consolidation behavior of `ConsoleManager.writeInfo/Success`.
|
|
57
|
+
* Users who want a quieter CLI (or a different output mode) can override either key in
|
|
58
|
+
* `pristine.config.ts:config` — the file beats `configDefaults` in the resolution chain.
|
|
59
|
+
* Env vars are checked LAST in the resolver chain, after configDefaults, so they cannot
|
|
60
|
+
* override these CLI defaults; use the config file for that.
|
|
56
61
|
*
|
|
57
62
|
* No `isLoggingModulePresent` check needed — `LoggingModule` is a hard import above, so
|
|
58
63
|
* these keys are always registered when CliModule is in the graph. (And if a future
|
|
@@ -60,8 +65,8 @@ exports.CliModule = {
|
|
|
60
65
|
* with an actionable "unknown key" error — the right failure mode for that case.)
|
|
61
66
|
*/
|
|
62
67
|
configDefaults: {
|
|
63
|
-
[logging_1.LoggingModuleKeyname + ".consoleLoggerOutputMode"]: logging_1.OutputModeEnum.
|
|
64
|
-
[logging_1.LoggingModuleKeyname + ".logSeverityLevelConfiguration"]: logging_1.SeverityEnum.
|
|
68
|
+
[logging_1.LoggingModuleKeyname + ".consoleLoggerOutputMode"]: logging_1.OutputModeEnum.Pretty,
|
|
69
|
+
[logging_1.LoggingModuleKeyname + ".logSeverityLevelConfiguration"]: logging_1.SeverityEnum.Info,
|
|
65
70
|
},
|
|
66
71
|
};
|
|
67
72
|
//# sourceMappingURL=cli.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../../../src/cli.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6DAAsD;AACtD,4CAA6C;AAC7C,wDAAyD;AACzD,kDAAuG;AACvG,4DAA2D;AAE3D,wDAAsC;AACtC,sDAAoC;AACpC,kDAAgC;AAChC,kDAAgC;AAChC,kEAAgD;AAChD,kEAAgD;AAChD,0DAAwC;AACxC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,iEAA+C;AAC/C,gDAA8B;AAE9B,yFAAyF;AACzF,yFAAyF;AACzF,mFAAmF;AACnF,oFAAoF;AACpF,6BAA0B;AAAlB,0FAAA,GAAG,OAAA;AAEE,QAAA,SAAS,GAAoB;IACxC,OAAO,EAAE,qCAAgB;IACzB,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE;QACb,iBAAU;QACV,gCAAiB;QACjB,uBAAa;QACb,6BAAgB;KACjB;IACD
|
|
1
|
+
{"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../../../src/cli.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6DAAsD;AACtD,4CAA6C;AAC7C,wDAAyD;AACzD,kDAAuG;AACvG,4DAA2D;AAE3D,wDAAsC;AACtC,sDAAoC;AACpC,kDAAgC;AAChC,kDAAgC;AAChC,kEAAgD;AAChD,kEAAgD;AAChD,0DAAwC;AACxC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,iEAA+C;AAC/C,gDAA8B;AAE9B,yFAAyF;AACzF,yFAAyF;AACzF,mFAAmF;AACnF,oFAAoF;AACpF,6BAA0B;AAAlB,0FAAA,GAAG,OAAA;AAEE,QAAA,SAAS,GAAoB;IACxC,OAAO,EAAE,qCAAgB;IACzB,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE;QACb,iBAAU;QACV,gCAAiB;QACjB,uBAAa;QACb,6BAAgB;KACjB;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,EAAE;QACd,CAAC,8BAAoB,GAAG,0BAA0B,CAAC,EAAE,wBAAc,CAAC,MAAM;QAC1E,CAAC,8BAAoB,GAAG,gCAAgC,CAAC,EAAE,sBAAY,CAAC,IAAI;KAC7E;CACF,CAAA"}
|
|
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
15
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
16
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -26,7 +29,6 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
26
29
|
const path_1 = __importDefault(require("path"));
|
|
27
30
|
const common_1 = require("@pristine-ts/common");
|
|
28
31
|
const tsyringe_1 = require("tsyringe");
|
|
29
|
-
const console_manager_1 = require("../managers/console.manager");
|
|
30
32
|
const shell_manager_1 = require("../managers/shell.manager");
|
|
31
33
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
32
34
|
const config_loader_1 = require("../config/config-loader");
|
|
@@ -51,8 +53,8 @@ const build_manifest_writer_1 = require("../bootstrap/build-manifest-writer");
|
|
|
51
53
|
* - clean: false (set true to wipe outDir before building)
|
|
52
54
|
*/
|
|
53
55
|
let BuildCommand = class BuildCommand {
|
|
54
|
-
constructor(
|
|
55
|
-
this.
|
|
56
|
+
constructor(logHandler, shellManager, configLoader, buildManifestWriter) {
|
|
57
|
+
this.logHandler = logHandler;
|
|
56
58
|
this.shellManager = shellManager;
|
|
57
59
|
this.configLoader = configLoader;
|
|
58
60
|
this.buildManifestWriter = buildManifestWriter;
|
|
@@ -75,18 +77,18 @@ let BuildCommand = class BuildCommand {
|
|
|
75
77
|
if (clean && outDir !== undefined) {
|
|
76
78
|
const absOut = path_1.default.resolve(projectRoot, outDir);
|
|
77
79
|
if (fs_1.default.existsSync(absOut)) {
|
|
78
|
-
this.
|
|
80
|
+
this.logHandler.info(`Cleaning ${outDir}/`, { highlights: { outDir } });
|
|
79
81
|
fs_1.default.rmSync(absOut, { recursive: true, force: true });
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
const invocations = this.resolveTscInvocations(projectRoot, tsconfig, format);
|
|
83
85
|
if (invocations.length === 0) {
|
|
84
|
-
this.
|
|
86
|
+
this.logHandler.error("No tsconfig found.", { highlights: { searched: this.expectedTsconfigsForFormat(tsconfig, format) } });
|
|
85
87
|
return common_1.ExitCode.Error;
|
|
86
88
|
}
|
|
87
89
|
for (const tsconfigPath of invocations) {
|
|
88
90
|
const relTsconfig = path_1.default.relative(projectRoot, tsconfigPath);
|
|
89
|
-
this.
|
|
91
|
+
this.logHandler.info(`Compiling with ${relTsconfig}`, { highlights: { tsconfig: relTsconfig } });
|
|
90
92
|
try {
|
|
91
93
|
// The shell command runs in the current process's CWD, which is already projectRoot.
|
|
92
94
|
// Don't pass `directory` here — ShellManager's PathManager resolution would double
|
|
@@ -98,12 +100,12 @@ let BuildCommand = class BuildCommand {
|
|
|
98
100
|
});
|
|
99
101
|
}
|
|
100
102
|
catch (error) {
|
|
101
|
-
this.
|
|
103
|
+
this.logHandler.error(`tsc failed for ${relTsconfig}`, { highlights: { tsconfig: relTsconfig } });
|
|
102
104
|
return common_1.ExitCode.Error;
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
107
|
this.writeManifestIfConfigured(projectRoot, (_f = resolvedConfig.config.cli) === null || _f === void 0 ? void 0 : _f.appModule);
|
|
106
|
-
this.
|
|
108
|
+
this.logHandler.success("Build complete.", { highlights: { tsconfigs: invocations.length } });
|
|
107
109
|
return common_1.ExitCode.Success;
|
|
108
110
|
});
|
|
109
111
|
}
|
|
@@ -116,16 +118,15 @@ let BuildCommand = class BuildCommand {
|
|
|
116
118
|
const absoluteSource = path_1.default.resolve(projectRoot, appModule.sourcePath);
|
|
117
119
|
const absoluteOutput = path_1.default.resolve(projectRoot, appModule.outputPath);
|
|
118
120
|
if (fs_1.default.existsSync(absoluteSource) === false) {
|
|
119
|
-
this.
|
|
121
|
+
this.logHandler.warning("Build succeeded but appModule.sourcePath does not exist; skipping manifest.", { highlights: { sourcePath: appModule.sourcePath } });
|
|
120
122
|
return;
|
|
121
123
|
}
|
|
122
124
|
if (fs_1.default.existsSync(absoluteOutput) === false) {
|
|
123
|
-
this.
|
|
124
|
-
`Check your tsconfig outDir / file layout.`);
|
|
125
|
+
this.logHandler.warning("Build succeeded but appModule.outputPath was not produced; skipping manifest. Check your tsconfig outDir / file layout.", { highlights: { outputPath: appModule.outputPath } });
|
|
125
126
|
return;
|
|
126
127
|
}
|
|
127
128
|
const manifest = this.buildManifestWriter.write(projectRoot, appModule.sourcePath, appModule.outputPath);
|
|
128
|
-
this.
|
|
129
|
+
this.logHandler.info("Manifest written: .pristine/build-manifest.json", { highlights: { builtAt: manifest.builtAt } });
|
|
129
130
|
}
|
|
130
131
|
/**
|
|
131
132
|
* For `format: "both"`, we run two passes: the primary tsconfig (assumed ESM-ish), then
|
|
@@ -164,8 +165,8 @@ exports.BuildCommand = BuildCommand = __decorate([
|
|
|
164
165
|
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
165
166
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
166
167
|
(0, tsyringe_1.injectable)(),
|
|
167
|
-
|
|
168
|
-
|
|
168
|
+
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
169
|
+
__metadata("design:paramtypes", [Object, shell_manager_1.ShellManager,
|
|
169
170
|
config_loader_1.ConfigLoader,
|
|
170
171
|
build_manifest_writer_1.BuildManifestWriter])
|
|
171
172
|
], 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,gDAA0F;AAC1F,uCAA4C;AAG5C,6DAAuD;AACvD,8DAAuD;AACvD,2DAAqD;AACrD,8EAAuE;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AAII,IAAM,YAAY,GAAlB,MAAM,YAAY;IAQvB,YACiC,UAAgD,EAC9D,YAA0B,EAC1B,YAA0B,EAC1B,mBAAwC;QAHT,eAAU,GAAV,UAAU,CAAqB;QAC9D,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAX3D,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,6CAA6C,CAAC;QAE3C,oBAAe,GAAW,eAAe,CAAC;QAC1C,kBAAa,GAA2B,KAAK,CAAC;IAQ/D,CAAC;IAEK,GAAG,CAAC,IAAS;;;YACjB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,MAAA,MAAA,cAAc,CAAC,MAAM,CAAC,GAAG,0CAAE,KAAK,mCAAI,EAAE,CAAC;YAE3D,MAAM,QAAQ,GAAG,MAAA,WAAW,CAAC,QAAQ,mCAAI,IAAI,CAAC,eAAe,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAA,WAAW,CAAC,MAAM,mCAAI,IAAI,CAAC,aAAa,CAAC;YACxD,MAAM,KAAK,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,KAAK,CAAC;YACzC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAElC,IAAI,KAAK,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACjD,IAAI,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,EAAE,EAAC,UAAU,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC,CAAC;oBACpE,YAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAC,EAAC,CAAC,CAAC;gBACzH,OAAO,iBAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,EAAE,EAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,WAAW,EAAC,EAAC,CAAC,CAAC;gBAC7F,IAAI,CAAC;oBACH,qFAAqF;oBACrF,mFAAmF;oBACnF,gFAAgF;oBAChF,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,WAAW,EAAE,EAAE;wBAC3D,YAAY,EAAE,IAAI;wBAClB,cAAc,EAAE,KAAK;wBACrB,gCAAgC,EAAE,KAAK;qBACxC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,WAAW,EAAE,EAAE,EAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,WAAW,EAAC,EAAC,CAAC,CAAC;oBAC9F,OAAO,iBAAQ,CAAC,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,MAAA,cAAc,CAAC,MAAM,CAAC,GAAG,0CAAE,SAAS,CAAC,CAAC;YAElF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAC,UAAU,EAAE,EAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAC,EAAC,CAAC,CAAC;YAC1F,OAAO,iBAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;IAEO,yBAAyB,CAAC,WAAmB,EAAE,SAAmE;QACxH,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,MAAK,SAAS,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,MAAK,SAAS,EAAE,CAAC;YAC/E,kFAAkF;YAClF,kDAAkD;YAClD,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAEvE,IAAI,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,6EAA6E,EAAE,EAAC,UAAU,EAAE,EAAC,UAAU,EAAE,SAAS,CAAC,UAAU,EAAC,EAAC,CAAC,CAAC;YACzJ,OAAO;QACT,CAAC;QACD,IAAI,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,yHAAyH,EAAE,EAAC,UAAU,EAAE,EAAC,UAAU,EAAE,SAAS,CAAC,UAAU,EAAC,EAAC,CAAC,CAAC;YACrM,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QACzG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iDAAiD,EAAE,EAAC,UAAU,EAAE,EAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;IACrH,CAAC;IAED;;;;;OAKG;IACK,qBAAqB,CAAC,WAAmB,EAAE,OAAe,EAAE,MAA8B;QAChG,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAE1D,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO;QACP,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,0BAA0B,CAAC,OAAe,EAAE,MAA8B;QAChF,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;CACF,CAAA;AAvHY,oCAAY;uBAAZ,YAAY;IAHxB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;IAUR,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;6CACC,4BAAY;QACZ,4BAAY;QACL,2CAAmB;GAZhD,YAAY,CAuHxB"}
|
|
@@ -25,17 +25,22 @@ exports.ConfigPrintCommand = void 0;
|
|
|
25
25
|
const path_1 = __importDefault(require("path"));
|
|
26
26
|
const common_1 = require("@pristine-ts/common");
|
|
27
27
|
const tsyringe_1 = require("tsyringe");
|
|
28
|
-
const
|
|
28
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
29
29
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
30
30
|
const config_loader_1 = require("../config/config-loader");
|
|
31
31
|
/**
|
|
32
32
|
* Prints the resolved Pristine configuration plus where it was loaded from. Useful for
|
|
33
33
|
* debugging discovery — when `pristine` is doing something unexpected, the first question is
|
|
34
34
|
* always "which config file did it actually pick up?"
|
|
35
|
+
*
|
|
36
|
+
* This is a report command: its entire output is the report. It goes through `CliOutput`
|
|
37
|
+
* exclusively (not `LogHandler`) so the dump pipes/redirects cleanly — `pristine
|
|
38
|
+
* p:config:print > config.json` must produce a usable file, with no severity gating, no
|
|
39
|
+
* per-line timestamp/icon decoration, and no fan-out to file/Sentry transports.
|
|
35
40
|
*/
|
|
36
41
|
let ConfigPrintCommand = class ConfigPrintCommand {
|
|
37
|
-
constructor(
|
|
38
|
-
this.
|
|
42
|
+
constructor(cliOutput, configLoader) {
|
|
43
|
+
this.cliOutput = cliOutput;
|
|
39
44
|
this.configLoader = configLoader;
|
|
40
45
|
this.optionsType = null;
|
|
41
46
|
this.name = "p:config:print";
|
|
@@ -45,18 +50,18 @@ let ConfigPrintCommand = class ConfigPrintCommand {
|
|
|
45
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
51
|
const resolved = yield this.configLoader.load({ startDir: process.cwd() });
|
|
47
52
|
if (resolved.configFilePath !== undefined) {
|
|
48
|
-
this.
|
|
53
|
+
this.cliOutput.writeLine(`Config file: ${path_1.default.relative(process.cwd(), resolved.configFilePath)}`);
|
|
49
54
|
}
|
|
50
55
|
else {
|
|
51
|
-
this.
|
|
56
|
+
this.cliOutput.writeLine("No config file found — running with defaults.");
|
|
52
57
|
}
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
58
|
+
this.cliOutput.writeLine("");
|
|
59
|
+
this.cliOutput.writeLine(JSON.stringify(resolved.config, null, 2));
|
|
55
60
|
if (Object.keys(resolved.provenance).length > 0) {
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
61
|
+
this.cliOutput.writeLine("");
|
|
62
|
+
this.cliOutput.writeLine("Provenance:");
|
|
58
63
|
for (const [field, source] of Object.entries(resolved.provenance)) {
|
|
59
|
-
this.
|
|
64
|
+
this.cliOutput.writeLine(` ${field}: ${source}`);
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
67
|
return common_1.ExitCode.Success;
|
|
@@ -68,7 +73,7 @@ exports.ConfigPrintCommand = ConfigPrintCommand = __decorate([
|
|
|
68
73
|
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
69
74
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
70
75
|
(0, tsyringe_1.injectable)(),
|
|
71
|
-
__metadata("design:paramtypes", [
|
|
76
|
+
__metadata("design:paramtypes", [cli_output_manager_1.CliOutput,
|
|
72
77
|
config_loader_1.ConfigLoader])
|
|
73
78
|
], ConfigPrintCommand);
|
|
74
79
|
//# sourceMappingURL=config-print.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-print.command.js","sourceRoot":"","sources":["../../../../src/commands/config-print.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAA0F;AAC1F,uCAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"config-print.command.js","sourceRoot":"","sources":["../../../../src/commands/config-print.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAA0F;AAC1F,uCAAoC;AAEpC,uEAAyD;AACzD,8DAAuD;AACvD,2DAAqD;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,cAAI,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,iBAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AAjCY,gDAAkB;6BAAlB,kBAAkB;IAH9B,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAOmB,8BAAS;QACN,4BAAY;GAPlC,kBAAkB,CAiC9B"}
|
|
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
exports.HelpCommand = void 0;
|
|
25
25
|
const tsyringe_1 = require("tsyringe");
|
|
26
26
|
const common_1 = require("@pristine-ts/common");
|
|
27
|
-
const
|
|
27
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
28
28
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
29
29
|
/**
|
|
30
30
|
* Prints a usage banner plus a one-line summary for every registered command. The output is
|
|
@@ -42,8 +42,8 @@ const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
|
42
42
|
* by which point every Command-tagged class is fully constructed and cached.
|
|
43
43
|
*/
|
|
44
44
|
let HelpCommand = class HelpCommand {
|
|
45
|
-
constructor(
|
|
46
|
-
this.
|
|
45
|
+
constructor(cliOutput, container) {
|
|
46
|
+
this.cliOutput = cliOutput;
|
|
47
47
|
this.container = container;
|
|
48
48
|
this.optionsType = null;
|
|
49
49
|
this.name = "p:help";
|
|
@@ -58,25 +58,25 @@ let HelpCommand = class HelpCommand {
|
|
|
58
58
|
// The lazy resolve breaks the cycle. The child container is constructor-
|
|
59
59
|
// injected, so only the enumeration is late-bound.
|
|
60
60
|
const commands = this.container.resolveAll(common_1.ServiceDefinitionTagEnum.Command);
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
65
|
-
this.
|
|
66
|
-
this.
|
|
61
|
+
this.cliOutput.writeLine("Pristine CLI");
|
|
62
|
+
this.cliOutput.writeLine("");
|
|
63
|
+
this.cliOutput.writeLine("Usage:");
|
|
64
|
+
this.cliOutput.writeLine(" pristine <command> [--option=value ...]");
|
|
65
|
+
this.cliOutput.writeLine("");
|
|
66
|
+
this.cliOutput.writeLine("Commands:");
|
|
67
67
|
const sorted = [...commands].sort((a, b) => a.name.localeCompare(b.name));
|
|
68
68
|
const longestName = sorted.reduce((max, c) => Math.max(max, c.name.length), 0);
|
|
69
69
|
for (const command of sorted) {
|
|
70
70
|
const padded = command.name.padEnd(longestName + 2, " ");
|
|
71
71
|
const description = (_a = command.description) !== null && _a !== void 0 ? _a : "";
|
|
72
|
-
this.
|
|
72
|
+
this.cliOutput.writeLine(` ${padded}${description}`);
|
|
73
73
|
}
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
76
|
-
this.
|
|
77
|
-
this.
|
|
78
|
-
this.
|
|
79
|
-
this.
|
|
74
|
+
this.cliOutput.writeLine("");
|
|
75
|
+
this.cliOutput.writeLine("Adding your own command:");
|
|
76
|
+
this.cliOutput.writeLine(" 1. Implement CommandInterface from '@pristine-ts/cli'");
|
|
77
|
+
this.cliOutput.writeLine(" 2. Decorate with @tag(ServiceDefinitionTagEnum.Command) @injectable()");
|
|
78
|
+
this.cliOutput.writeLine(" 3. Make sure your AppModule's import graph reaches the file");
|
|
79
|
+
this.cliOutput.writeLine(" 4. Invoke as: pristine <your-command-name>");
|
|
80
80
|
return common_1.ExitCode.Success;
|
|
81
81
|
});
|
|
82
82
|
}
|
|
@@ -87,6 +87,6 @@ exports.HelpCommand = HelpCommand = __decorate([
|
|
|
87
87
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
88
88
|
(0, tsyringe_1.injectable)(),
|
|
89
89
|
__param(1, (0, tsyringe_1.inject)(common_1.ServiceDefinitionTagEnum.CurrentChildContainer)),
|
|
90
|
-
__metadata("design:paramtypes", [
|
|
90
|
+
__metadata("design:paramtypes", [cli_output_manager_1.CliOutput, Object])
|
|
91
91
|
], HelpCommand);
|
|
92
92
|
//# sourceMappingURL=help.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.command.js","sourceRoot":"","sources":["../../../../src/commands/help.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAiE;AACjE,gDAA0F;AAE1F,
|
|
1
|
+
{"version":3,"file":"help.command.js","sourceRoot":"","sources":["../../../../src/commands/help.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAiE;AACjE,gDAA0F;AAE1F,uEAAyD;AACzD,8DAAuD;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,iCAAwB,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,iBAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AA5CY,kCAAW;sBAAX,WAAW;IAHvB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;IAQR,WAAA,IAAA,iBAAM,EAAC,iCAAwB,CAAC,qBAAqB,CAAC,CAAA;qCAD3B,8BAAS;GAN5B,WAAW,CA4CvB"}
|
|
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
15
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
16
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -27,7 +30,7 @@ const os_1 = __importDefault(require("os"));
|
|
|
27
30
|
const path_1 = __importDefault(require("path"));
|
|
28
31
|
const common_1 = require("@pristine-ts/common");
|
|
29
32
|
const tsyringe_1 = require("tsyringe");
|
|
30
|
-
const
|
|
33
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
31
34
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
32
35
|
const config_loader_1 = require("../config/config-loader");
|
|
33
36
|
const app_module_loader_1 = require("../bootstrap/app-module-loader");
|
|
@@ -42,8 +45,9 @@ const app_module_loader_1 = require("../bootstrap/app-module-loader");
|
|
|
42
45
|
* prevents `kernel.start()`.
|
|
43
46
|
*/
|
|
44
47
|
let InfoCommand = class InfoCommand {
|
|
45
|
-
constructor(
|
|
46
|
-
this.
|
|
48
|
+
constructor(logHandler, cliOutput, configLoader, appModuleLoader) {
|
|
49
|
+
this.logHandler = logHandler;
|
|
50
|
+
this.cliOutput = cliOutput;
|
|
47
51
|
this.configLoader = configLoader;
|
|
48
52
|
this.appModuleLoader = appModuleLoader;
|
|
49
53
|
this.optionsType = null;
|
|
@@ -64,26 +68,26 @@ let InfoCommand = class InfoCommand {
|
|
|
64
68
|
});
|
|
65
69
|
}
|
|
66
70
|
printRuntimeBanner() {
|
|
67
|
-
this.
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
71
|
+
this.cliOutput.writeLine("Pristine CLI");
|
|
72
|
+
this.cliOutput.writeLine(` Version: ${this.readCliVersion()}`);
|
|
73
|
+
this.cliOutput.writeLine(` Node: ${process.version}`);
|
|
74
|
+
this.cliOutput.writeLine(` Platform: ${os_1.default.platform()} ${os_1.default.arch()} (${os_1.default.release()})`);
|
|
75
|
+
this.cliOutput.writeLine(` CWD: ${process.cwd()}`);
|
|
76
|
+
this.cliOutput.writeLine("");
|
|
73
77
|
}
|
|
74
78
|
printConfigSection() {
|
|
75
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
80
|
var _a, _b, _c, _d, _e;
|
|
77
81
|
const resolvedConfig = yield this.configLoader.load({ startDir: process.cwd() });
|
|
78
|
-
this.
|
|
79
|
-
this.
|
|
82
|
+
this.cliOutput.writeLine("Configuration");
|
|
83
|
+
this.cliOutput.writeLine(` Config file: ${(_a = resolvedConfig.configFilePath) !== null && _a !== void 0 ? _a : "(none — using defaults)"}`);
|
|
80
84
|
if (((_c = (_b = resolvedConfig.config.cli) === null || _b === void 0 ? void 0 : _b.appModule) === null || _c === void 0 ? void 0 : _c.sourcePath) !== undefined) {
|
|
81
|
-
this.
|
|
85
|
+
this.cliOutput.writeLine(` AppModule src: ${resolvedConfig.config.cli.appModule.sourcePath} (from config file)`);
|
|
82
86
|
}
|
|
83
87
|
if (((_e = (_d = resolvedConfig.config.cli) === null || _d === void 0 ? void 0 : _d.appModule) === null || _e === void 0 ? void 0 : _e.outputPath) !== undefined) {
|
|
84
|
-
this.
|
|
88
|
+
this.cliOutput.writeLine(` AppModule out: ${resolvedConfig.config.cli.appModule.outputPath} (from config file)`);
|
|
85
89
|
}
|
|
86
|
-
this.
|
|
90
|
+
this.cliOutput.writeLine("");
|
|
87
91
|
});
|
|
88
92
|
}
|
|
89
93
|
printAppModuleSection() {
|
|
@@ -94,25 +98,25 @@ let InfoCommand = class InfoCommand {
|
|
|
94
98
|
const loaded = yield this.appModuleLoader.load();
|
|
95
99
|
modules = this.collectModules(loaded.appModule);
|
|
96
100
|
pluginNames = loaded.plugins.map(p => p.name);
|
|
97
|
-
this.
|
|
101
|
+
this.cliOutput.writeLine(`AppModule: ${loaded.appModule.keyname}`);
|
|
98
102
|
}
|
|
99
103
|
catch (error) {
|
|
100
|
-
this.
|
|
104
|
+
this.logHandler.error("Could not load AppModule", { highlights: { error: error.message } });
|
|
101
105
|
return common_1.ExitCode.Error;
|
|
102
106
|
}
|
|
103
107
|
if (pluginNames.length > 0) {
|
|
104
|
-
this.
|
|
108
|
+
this.cliOutput.writeLine(`Plugins (${pluginNames.length}):`);
|
|
105
109
|
for (const name of pluginNames) {
|
|
106
|
-
this.
|
|
110
|
+
this.cliOutput.writeLine(` - ${name}`);
|
|
107
111
|
}
|
|
108
112
|
}
|
|
109
|
-
this.
|
|
113
|
+
this.cliOutput.writeLine(`Imported modules (${modules.length}):`);
|
|
110
114
|
const uniqueByKeyname = new Map();
|
|
111
115
|
for (const m of modules) {
|
|
112
116
|
uniqueByKeyname.set(m.keyname, m);
|
|
113
117
|
}
|
|
114
118
|
for (const m of [...uniqueByKeyname.values()].sort((a, b) => a.keyname.localeCompare(b.keyname))) {
|
|
115
|
-
this.
|
|
119
|
+
this.cliOutput.writeLine(` - ${m.keyname}`);
|
|
116
120
|
}
|
|
117
121
|
return common_1.ExitCode.Success;
|
|
118
122
|
});
|
|
@@ -154,7 +158,8 @@ exports.InfoCommand = InfoCommand = __decorate([
|
|
|
154
158
|
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
155
159
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
156
160
|
(0, tsyringe_1.injectable)(),
|
|
157
|
-
|
|
161
|
+
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
162
|
+
__metadata("design:paramtypes", [Object, cli_output_manager_1.CliOutput,
|
|
158
163
|
config_loader_1.ConfigLoader,
|
|
159
164
|
app_module_loader_1.AppModuleLoader])
|
|
160
165
|
], 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,gDAA2G;AAC3G,uCAA4C;AAG5C,uEAAyD;AACzD,8DAAuD;AACvD,2DAAqD;AACrD,sEAA+D;AAE/D;;;;;;;;;GASG;AAII,IAAM,WAAW,GAAjB,MAAM,WAAW;IAYtB,YACiC,UAAgD,EAC9D,SAAoB,EACpB,YAA0B,EAC1B,eAAgC;QAHD,eAAU,GAAV,UAAU,CAAqB;QAC9D,cAAS,GAAT,SAAS,CAAW;QACpB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,oBAAe,GAAf,eAAe,CAAiB;QAfnD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,4EAA4E,CAAC;QAE3F;;;;WAIG;QACc,uBAAkB,GAAW,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAQ9G,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;KAAA;IAEO,kBAAkB;QACxB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,YAAE,CAAC,QAAQ,EAAE,IAAI,YAAE,CAAC,IAAI,EAAE,KAAK,YAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9F,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEa,kBAAkB;;;YAC9B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,MAAA,cAAc,CAAC,cAAc,mCAAI,yBAAyB,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAA,MAAA,MAAA,cAAc,CAAC,MAAM,CAAC,GAAG,0CAAE,SAAS,0CAAE,UAAU,MAAK,SAAS,EAAE,CAAC;gBACnE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,sBAAsB,CAAC,CAAC;YACtH,CAAC;YACD,IAAI,CAAA,MAAA,MAAA,cAAc,CAAC,MAAM,CAAC,GAAG,0CAAE,SAAS,0CAAE,UAAU,MAAK,SAAS,EAAE,CAAC;gBACnE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,sBAAsB,CAAC,CAAC;YACtH,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;KAAA;IAEa,qBAAqB;;YACjC,IAAI,OAAO,GAAsB,EAAE,CAAC;YACpC,IAAI,WAAW,GAAa,EAAE,CAAC;YAE/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBACjD,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChD,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAC,UAAU,EAAE,EAAC,KAAK,EAAG,KAAe,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;gBACnG,OAAO,iBAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC7D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YAClE,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACjG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,iBAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;IAEO,cAAc;;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,OAAO,MAAA,GAAG,CAAC,OAAO,mCAAI,SAAS,CAAC;QAClC,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,IAAqB;QAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,IAAI,GAAsB,EAAE,CAAC;QAEnC,MAAM,IAAI,GAAG,CAAC,CAAkB,EAAQ,EAAE;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAE,OAAO;YAChC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;gBACpB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,aAAa;oBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA/GY,kCAAW;sBAAX,WAAW;IAHvB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;IAcR,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;6CACF,8BAAS;QACN,4BAAY;QACT,mCAAe;GAhBxC,WAAW,CA+GvB"}
|
|
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
15
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
16
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -26,7 +29,6 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
26
29
|
const path_1 = __importDefault(require("path"));
|
|
27
30
|
const common_1 = require("@pristine-ts/common");
|
|
28
31
|
const tsyringe_1 = require("tsyringe");
|
|
29
|
-
const console_manager_1 = require("../managers/console.manager");
|
|
30
32
|
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
31
33
|
const init_command_options_1 = require("./init.command-options");
|
|
32
34
|
const init_prompt_1 = require("../bootstrap/init-prompt");
|
|
@@ -46,8 +48,8 @@ const init_prompt_1 = require("../bootstrap/init-prompt");
|
|
|
46
48
|
* Refuses to overwrite an existing `pristine.config.ts` so re-running init is safe.
|
|
47
49
|
*/
|
|
48
50
|
let InitCommand = class InitCommand {
|
|
49
|
-
constructor(
|
|
50
|
-
this.
|
|
51
|
+
constructor(logHandler, initPrompt) {
|
|
52
|
+
this.logHandler = logHandler;
|
|
51
53
|
this.initPrompt = initPrompt;
|
|
52
54
|
this.optionsType = init_command_options_1.InitCommandOptions;
|
|
53
55
|
this.name = "p:init";
|
|
@@ -60,7 +62,7 @@ let InitCommand = class InitCommand {
|
|
|
60
62
|
const projectRoot = process.cwd();
|
|
61
63
|
const configPath = path_1.default.resolve(projectRoot, this.configFileName);
|
|
62
64
|
if (fs_1.default.existsSync(configPath)) {
|
|
63
|
-
this.
|
|
65
|
+
this.logHandler.error(`${this.configFileName} already exists at ${configPath}. Aborting to avoid overwriting.`);
|
|
64
66
|
return common_1.ExitCode.Error;
|
|
65
67
|
}
|
|
66
68
|
const answers = yield this.gatherAnswers(args);
|
|
@@ -69,7 +71,7 @@ let InitCommand = class InitCommand {
|
|
|
69
71
|
return common_1.ExitCode.Error;
|
|
70
72
|
}
|
|
71
73
|
fs_1.default.writeFileSync(configPath, this.renderConfigTemplate(answers), "utf8");
|
|
72
|
-
this.
|
|
74
|
+
this.logHandler.success(`Created ${path_1.default.relative(projectRoot, configPath)}`);
|
|
73
75
|
if (answers.scaffoldSource) {
|
|
74
76
|
this.scaffoldSource(projectRoot, answers.sourcePath);
|
|
75
77
|
}
|
|
@@ -77,10 +79,10 @@ let InitCommand = class InitCommand {
|
|
|
77
79
|
this.addPackageScripts(projectRoot);
|
|
78
80
|
}
|
|
79
81
|
this.addToGitignore(projectRoot);
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
this.logHandler.info("Next steps:\n" +
|
|
83
|
+
" 1. npm install --save-dev @pristine-ts/cli (if you haven't already)\n" +
|
|
84
|
+
" 2. npm run build # compile your AppModule\n" +
|
|
85
|
+
" 3. npm run start # boot your app");
|
|
84
86
|
return common_1.ExitCode.Success;
|
|
85
87
|
});
|
|
86
88
|
}
|
|
@@ -103,8 +105,7 @@ let InitCommand = class InitCommand {
|
|
|
103
105
|
if (outputPath === undefined)
|
|
104
106
|
missing.push("--output-path");
|
|
105
107
|
if (missing.length > 0) {
|
|
106
|
-
this.
|
|
107
|
-
`Either run \`pristine init\` in a terminal or pass the flags explicitly.`);
|
|
108
|
+
this.logHandler.error("Non-interactive run is missing required flag(s). Either run `pristine init` in a terminal or pass the flags explicitly.", { highlights: { missing } });
|
|
108
109
|
return undefined;
|
|
109
110
|
}
|
|
110
111
|
}
|
|
@@ -127,12 +128,12 @@ let InitCommand = class InitCommand {
|
|
|
127
128
|
scaffoldSource(projectRoot, sourcePath) {
|
|
128
129
|
const absolutePath = path_1.default.resolve(projectRoot, sourcePath);
|
|
129
130
|
if (fs_1.default.existsSync(absolutePath)) {
|
|
130
|
-
this.
|
|
131
|
+
this.logHandler.info("AppModule source already exists; skipping scaffold.", { highlights: { sourcePath } });
|
|
131
132
|
return;
|
|
132
133
|
}
|
|
133
134
|
fs_1.default.mkdirSync(path_1.default.dirname(absolutePath), { recursive: true });
|
|
134
135
|
fs_1.default.writeFileSync(absolutePath, this.renderAppModuleTemplate(), "utf8");
|
|
135
|
-
this.
|
|
136
|
+
this.logHandler.success(`Created ${sourcePath}`);
|
|
136
137
|
}
|
|
137
138
|
/**
|
|
138
139
|
* Adds `build`, `start`, `verify` to package.json's scripts. Only adds scripts that
|
|
@@ -143,7 +144,7 @@ let InitCommand = class InitCommand {
|
|
|
143
144
|
var _a;
|
|
144
145
|
const packageJsonPath = path_1.default.resolve(projectRoot, "package.json");
|
|
145
146
|
if (fs_1.default.existsSync(packageJsonPath) === false) {
|
|
146
|
-
this.
|
|
147
|
+
this.logHandler.warning("package.json not found; skipping script additions.");
|
|
147
148
|
return;
|
|
148
149
|
}
|
|
149
150
|
let parsed;
|
|
@@ -151,7 +152,7 @@ let InitCommand = class InitCommand {
|
|
|
151
152
|
parsed = JSON.parse(fs_1.default.readFileSync(packageJsonPath, "utf8"));
|
|
152
153
|
}
|
|
153
154
|
catch (error) {
|
|
154
|
-
this.
|
|
155
|
+
this.logHandler.error("Failed to parse package.json", { highlights: { error: error.message } });
|
|
155
156
|
return;
|
|
156
157
|
}
|
|
157
158
|
parsed.scripts = (_a = parsed.scripts) !== null && _a !== void 0 ? _a : {};
|
|
@@ -172,13 +173,13 @@ let InitCommand = class InitCommand {
|
|
|
172
173
|
}
|
|
173
174
|
}
|
|
174
175
|
if (added.length === 0) {
|
|
175
|
-
this.
|
|
176
|
+
this.logHandler.info("All target scripts already exist in package.json; nothing added.");
|
|
176
177
|
return;
|
|
177
178
|
}
|
|
178
179
|
fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(parsed, null, 2) + "\n", "utf8");
|
|
179
|
-
this.
|
|
180
|
+
this.logHandler.success(`Added ${added.length} script(s) to package.json`, { highlights: { added } });
|
|
180
181
|
if (skipped.length > 0) {
|
|
181
|
-
this.
|
|
182
|
+
this.logHandler.info("Kept existing script(s)", { highlights: { skipped } });
|
|
182
183
|
}
|
|
183
184
|
}
|
|
184
185
|
/**
|
|
@@ -198,7 +199,7 @@ let InitCommand = class InitCommand {
|
|
|
198
199
|
}
|
|
199
200
|
const separator = current.endsWith("\n") ? "" : "\n";
|
|
200
201
|
fs_1.default.appendFileSync(gitignorePath, `${separator}${this.gitignoreEntry}\n`, "utf8");
|
|
201
|
-
this.
|
|
202
|
+
this.logHandler.info(`Added '${this.gitignoreEntry}' to .gitignore`);
|
|
202
203
|
}
|
|
203
204
|
renderConfigTemplate(answers) {
|
|
204
205
|
return `import {defineConfig} from "@pristine-ts/cli";
|
|
@@ -244,7 +245,7 @@ exports.InitCommand = InitCommand = __decorate([
|
|
|
244
245
|
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
245
246
|
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
246
247
|
(0, tsyringe_1.injectable)(),
|
|
247
|
-
|
|
248
|
-
|
|
248
|
+
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
249
|
+
__metadata("design:paramtypes", [Object, init_prompt_1.InitPrompt])
|
|
249
250
|
], InitCommand);
|
|
250
251
|
//# sourceMappingURL=init.command.js.map
|