@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,156 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import fs from "fs";
|
|
20
|
+
import os from "os";
|
|
21
|
+
import path from "path";
|
|
22
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
23
|
+
import { injectable } from "tsyringe";
|
|
24
|
+
import { ConsoleManager } from "../managers/console.manager";
|
|
25
|
+
import { ExitCodeEnum } from "../enums/exit-code.enum";
|
|
26
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
27
|
+
import { ConfigLoader } from "../config/config-loader";
|
|
28
|
+
import { AppModuleLoader } from "../bootstrap/app-module-loader";
|
|
29
|
+
/**
|
|
30
|
+
* Diagnostic command. Prints framework version, runtime environment, resolved config +
|
|
31
|
+
* AppModule locations, the recursively-resolved list of imported modules, and the list of
|
|
32
|
+
* loaded plugins. Designed for support tickets and "is my project picking up what I think
|
|
33
|
+
* it's picking up?" sanity checks.
|
|
34
|
+
*
|
|
35
|
+
* Does not boot a fresh kernel — it inspects what *would* be loaded by re-running the
|
|
36
|
+
* loader cascade, so it remains useful even when the AppModule is broken in a way that
|
|
37
|
+
* prevents `kernel.start()`.
|
|
38
|
+
*/
|
|
39
|
+
let InfoCommand = class InfoCommand {
|
|
40
|
+
constructor(consoleManager, configLoader, appModuleLoader) {
|
|
41
|
+
this.consoleManager = consoleManager;
|
|
42
|
+
this.configLoader = configLoader;
|
|
43
|
+
this.appModuleLoader = appModuleLoader;
|
|
44
|
+
this.optionsType = null;
|
|
45
|
+
this.name = "p:info";
|
|
46
|
+
this.description = "Print framework version, runtime environment, and the loaded module graph.";
|
|
47
|
+
/**
|
|
48
|
+
* Resolved at command construction time so `pristine info` reports the version of the cli
|
|
49
|
+
* that's actually running, not whatever happens to live in the user's project root. The
|
|
50
|
+
* package.json sits four levels up from dist/lib/cjs/commands/.
|
|
51
|
+
*/
|
|
52
|
+
this.cliPackageJsonPath = path.resolve(__dirname, "..", "..", "..", "..", "package.json");
|
|
53
|
+
}
|
|
54
|
+
run(args) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
this.printRuntimeBanner();
|
|
57
|
+
yield this.printConfigSection();
|
|
58
|
+
return this.printAppModuleSection();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
printRuntimeBanner() {
|
|
62
|
+
this.consoleManager.writeLine("Pristine CLI");
|
|
63
|
+
this.consoleManager.writeLine(` Version: ${this.readCliVersion()}`);
|
|
64
|
+
this.consoleManager.writeLine(` Node: ${process.version}`);
|
|
65
|
+
this.consoleManager.writeLine(` Platform: ${os.platform()} ${os.arch()} (${os.release()})`);
|
|
66
|
+
this.consoleManager.writeLine(` CWD: ${process.cwd()}`);
|
|
67
|
+
this.consoleManager.writeLine("");
|
|
68
|
+
}
|
|
69
|
+
printConfigSection() {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
var _a, _b, _c;
|
|
72
|
+
const resolvedConfig = yield this.configLoader.load({ startDir: process.cwd() });
|
|
73
|
+
this.consoleManager.writeLine("Configuration");
|
|
74
|
+
this.consoleManager.writeLine(` Config file: ${(_a = resolvedConfig.configFilePath) !== null && _a !== void 0 ? _a : "(none — using defaults)"}`);
|
|
75
|
+
if (((_b = resolvedConfig.config.appModule) === null || _b === void 0 ? void 0 : _b.sourcePath) !== undefined) {
|
|
76
|
+
this.consoleManager.writeLine(` AppModule src: ${resolvedConfig.config.appModule.sourcePath} (from config file)`);
|
|
77
|
+
}
|
|
78
|
+
if (((_c = resolvedConfig.config.appModule) === null || _c === void 0 ? void 0 : _c.outputPath) !== undefined) {
|
|
79
|
+
this.consoleManager.writeLine(` AppModule out: ${resolvedConfig.config.appModule.outputPath} (from config file)`);
|
|
80
|
+
}
|
|
81
|
+
this.consoleManager.writeLine("");
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
printAppModuleSection() {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
let modules = [];
|
|
87
|
+
let pluginNames = [];
|
|
88
|
+
try {
|
|
89
|
+
const loaded = yield this.appModuleLoader.load();
|
|
90
|
+
modules = this.collectModules(loaded.appModule);
|
|
91
|
+
pluginNames = loaded.plugins.map(p => p.name);
|
|
92
|
+
this.consoleManager.writeLine(`AppModule: ${loaded.appModule.keyname}`);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
this.consoleManager.writeError(`Could not load AppModule: ${error.message}`);
|
|
96
|
+
return ExitCodeEnum.Error;
|
|
97
|
+
}
|
|
98
|
+
if (pluginNames.length > 0) {
|
|
99
|
+
this.consoleManager.writeLine(`Plugins (${pluginNames.length}):`);
|
|
100
|
+
for (const name of pluginNames) {
|
|
101
|
+
this.consoleManager.writeLine(` - ${name}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
this.consoleManager.writeLine(`Imported modules (${modules.length}):`);
|
|
105
|
+
const uniqueByKeyname = new Map();
|
|
106
|
+
for (const m of modules) {
|
|
107
|
+
uniqueByKeyname.set(m.keyname, m);
|
|
108
|
+
}
|
|
109
|
+
for (const m of [...uniqueByKeyname.values()].sort((a, b) => a.keyname.localeCompare(b.keyname))) {
|
|
110
|
+
this.consoleManager.writeLine(` - ${m.keyname}`);
|
|
111
|
+
}
|
|
112
|
+
return ExitCodeEnum.Success;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
readCliVersion() {
|
|
116
|
+
var _a;
|
|
117
|
+
try {
|
|
118
|
+
const pkg = JSON.parse(fs.readFileSync(this.cliPackageJsonPath, "utf8"));
|
|
119
|
+
return (_a = pkg.version) !== null && _a !== void 0 ? _a : "unknown";
|
|
120
|
+
}
|
|
121
|
+
catch (_b) {
|
|
122
|
+
return "unknown";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Walks the import tree, returning every module reachable from the root. Visits each
|
|
127
|
+
* module at most once via a keyname-keyed seen-set so circular imports don't loop.
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
130
|
+
collectModules(root) {
|
|
131
|
+
const seen = new Set();
|
|
132
|
+
const flat = [];
|
|
133
|
+
const walk = (m) => {
|
|
134
|
+
if (seen.has(m.keyname))
|
|
135
|
+
return;
|
|
136
|
+
seen.add(m.keyname);
|
|
137
|
+
flat.push(m);
|
|
138
|
+
if (m.importModules) {
|
|
139
|
+
for (const child of m.importModules)
|
|
140
|
+
walk(child);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
walk(root);
|
|
144
|
+
return flat;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
InfoCommand = __decorate([
|
|
148
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
149
|
+
moduleScoped(CliModuleKeyname),
|
|
150
|
+
injectable(),
|
|
151
|
+
__metadata("design:paramtypes", [ConsoleManager,
|
|
152
|
+
ConfigLoader,
|
|
153
|
+
AppModuleLoader])
|
|
154
|
+
], InfoCommand);
|
|
155
|
+
export { InfoCommand };
|
|
156
|
+
//# sourceMappingURL=info.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.command.js","sourceRoot":"","sources":["../../../../src/commands/info.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
22
|
+
import { InitCommand } from "./init.command";
|
|
23
|
+
import { InitCommandOptions } from "./init.command-options";
|
|
24
|
+
/**
|
|
25
|
+
* Top-level alias for the framework-reserved `p:init` command. Injects the delegate
|
|
26
|
+
* directly via standard DI.
|
|
27
|
+
*/
|
|
28
|
+
let InitAliasCommand = class InitAliasCommand {
|
|
29
|
+
constructor(delegate) {
|
|
30
|
+
this.delegate = delegate;
|
|
31
|
+
this.optionsType = InitCommandOptions;
|
|
32
|
+
this.name = "init";
|
|
33
|
+
this.description = "Alias for p:init.";
|
|
34
|
+
}
|
|
35
|
+
run(args) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
return this.delegate.run(args);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
InitAliasCommand = __decorate([
|
|
42
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
43
|
+
moduleScoped(CliModuleKeyname),
|
|
44
|
+
injectable(),
|
|
45
|
+
__metadata("design:paramtypes", [InitCommand])
|
|
46
|
+
], InitAliasCommand);
|
|
47
|
+
export { InitAliasCommand };
|
|
48
|
+
//# sourceMappingURL=init-alias.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/init-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAGpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAE1D;;;GAGG;AAII,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAK3B,YAA6B,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;QAJlD,gBAAW,GAAG,kBAAkB,CAAC;QACjC,SAAI,GAAG,MAAM,CAAC;QACd,gBAAW,GAAG,mBAAmB,CAAC;IAGlC,CAAC;IAEK,GAAG,CAAC,IAAwB;;YAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,gBAAgB;IAH5B,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAM4B,WAAW;GALvC,gBAAgB,CAW5B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import "reflect-metadata";
|
|
11
|
+
import { IsBoolean, IsIn, IsOptional, IsString } from "@pristine-ts/class-validator";
|
|
12
|
+
/**
|
|
13
|
+
* Non-interactive flags for `pristine init`. In a TTY, the init command prompts the user for
|
|
14
|
+
* each missing value; in CI / non-TTY, every value must be supplied via these flags or the
|
|
15
|
+
* command exits with a clear "missing flag" error.
|
|
16
|
+
*/
|
|
17
|
+
export class InitCommandOptions {
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
IsOptional(),
|
|
21
|
+
IsString(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], InitCommandOptions.prototype, "source-path", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
IsOptional(),
|
|
26
|
+
IsString(),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], InitCommandOptions.prototype, "output-path", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
IsOptional(),
|
|
31
|
+
IsString(),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], InitCommandOptions.prototype, "tsconfig", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
IsOptional(),
|
|
36
|
+
IsIn(["esm", "cjs", "both"]),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], InitCommandOptions.prototype, "format", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
IsOptional(),
|
|
41
|
+
IsBoolean(),
|
|
42
|
+
__metadata("design:type", Boolean)
|
|
43
|
+
], InitCommandOptions.prototype, "scaffold", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
IsOptional(),
|
|
46
|
+
IsBoolean(),
|
|
47
|
+
__metadata("design:type", Boolean)
|
|
48
|
+
], InitCommandOptions.prototype, "scripts", void 0);
|
|
49
|
+
//# sourceMappingURL=init.command-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.command-options.js","sourceRoot":"","sources":["../../../../src/commands/init.command-options.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAEnF;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;CAgC9B;AA7BC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACY;AAIvB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACY;AAIvB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oDACO;AAIlB;IAFC,UAAU,EAAE;IACZ,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;;kDACG;AAQhC;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;oDACO;AAQnB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;mDACM"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import fs from "fs";
|
|
20
|
+
import path from "path";
|
|
21
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
22
|
+
import { injectable } from "tsyringe";
|
|
23
|
+
import { ConsoleManager } from "../managers/console.manager";
|
|
24
|
+
import { ExitCodeEnum } from "../enums/exit-code.enum";
|
|
25
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
26
|
+
import { InitCommandOptions } from "./init.command-options";
|
|
27
|
+
import { InitPrompt } from "../bootstrap/init-prompt";
|
|
28
|
+
/**
|
|
29
|
+
* Scaffolds a new Pristine project setup. In a TTY, prompts the user for source path,
|
|
30
|
+
* output path, tsconfig, build format, and a couple of yes/no decisions; in non-TTY (CI),
|
|
31
|
+
* accepts every value via `--source-path`, `--output-path`, etc. flags or refuses to run.
|
|
32
|
+
*
|
|
33
|
+
* What it produces:
|
|
34
|
+
* - `pristine.config.ts` at the project root with the answers populated.
|
|
35
|
+
* - Optionally, a starter AppModule at the configured `sourcePath` (only when the file
|
|
36
|
+
* doesn't already exist — never overwrites).
|
|
37
|
+
* - Optionally, `npm` scripts in `package.json`: `build`, `start`, `verify` (only ones
|
|
38
|
+
* that don't already exist — never overwrites).
|
|
39
|
+
* - `.pristine/` added to `.gitignore` if a `.gitignore` exists at the project root.
|
|
40
|
+
*
|
|
41
|
+
* Refuses to overwrite an existing `pristine.config.ts` so re-running init is safe.
|
|
42
|
+
*/
|
|
43
|
+
let InitCommand = class InitCommand {
|
|
44
|
+
constructor(consoleManager, initPrompt) {
|
|
45
|
+
this.consoleManager = consoleManager;
|
|
46
|
+
this.initPrompt = initPrompt;
|
|
47
|
+
this.optionsType = InitCommandOptions;
|
|
48
|
+
this.name = "p:init";
|
|
49
|
+
this.description = "Scaffold pristine.config.ts (and optionally an AppModule + npm scripts) interactively.";
|
|
50
|
+
this.configFileName = "pristine.config.ts";
|
|
51
|
+
this.gitignoreEntry = ".pristine/";
|
|
52
|
+
}
|
|
53
|
+
run(args) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const projectRoot = process.cwd();
|
|
56
|
+
const configPath = path.resolve(projectRoot, this.configFileName);
|
|
57
|
+
if (fs.existsSync(configPath)) {
|
|
58
|
+
this.consoleManager.writeError(`${this.configFileName} already exists at ${configPath}. Aborting to avoid overwriting.`);
|
|
59
|
+
return ExitCodeEnum.Error;
|
|
60
|
+
}
|
|
61
|
+
const answers = yield this.gatherAnswers(args);
|
|
62
|
+
if (answers === undefined) {
|
|
63
|
+
// Already-rendered error for non-TTY missing flags. Bail.
|
|
64
|
+
return ExitCodeEnum.Error;
|
|
65
|
+
}
|
|
66
|
+
fs.writeFileSync(configPath, this.renderConfigTemplate(answers), "utf8");
|
|
67
|
+
this.consoleManager.writeSuccess(`Created ${path.relative(projectRoot, configPath)}`);
|
|
68
|
+
if (answers.scaffoldSource) {
|
|
69
|
+
this.scaffoldSource(projectRoot, answers.sourcePath);
|
|
70
|
+
}
|
|
71
|
+
if (answers.writePackageScripts) {
|
|
72
|
+
this.addPackageScripts(projectRoot);
|
|
73
|
+
}
|
|
74
|
+
this.addToGitignore(projectRoot);
|
|
75
|
+
this.consoleManager.writeInfo("Next steps:");
|
|
76
|
+
this.consoleManager.writeLine(" 1. npm install --save-dev @pristine-ts/cli (if you haven't already)");
|
|
77
|
+
this.consoleManager.writeLine(" 2. npm run build # compile your AppModule");
|
|
78
|
+
this.consoleManager.writeLine(" 3. npm run start # boot your app");
|
|
79
|
+
return ExitCodeEnum.Success;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Fills in answers from CLI flags first, then prompts (in TTY) for whatever's missing.
|
|
84
|
+
* Returns undefined when running non-TTY with insufficient flags so the caller can exit
|
|
85
|
+
* with the right error code (already rendered).
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
gatherAnswers(args) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const sourcePath = args["source-path"];
|
|
91
|
+
const outputPath = args["output-path"];
|
|
92
|
+
const tsconfig = args.tsconfig;
|
|
93
|
+
const format = args.format;
|
|
94
|
+
if (this.initPrompt.isInteractive() === false) {
|
|
95
|
+
const missing = [];
|
|
96
|
+
if (sourcePath === undefined)
|
|
97
|
+
missing.push("--source-path");
|
|
98
|
+
if (outputPath === undefined)
|
|
99
|
+
missing.push("--output-path");
|
|
100
|
+
if (missing.length > 0) {
|
|
101
|
+
this.consoleManager.writeError(`Non-interactive run is missing required flag(s): ${missing.join(", ")}. ` +
|
|
102
|
+
`Either run \`pristine init\` in a terminal or pass the flags explicitly.`);
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
sourcePath: yield this.initPrompt.askSourcePath(sourcePath),
|
|
108
|
+
outputPath: yield this.initPrompt.askOutputPath(outputPath),
|
|
109
|
+
tsconfig: yield this.initPrompt.askTsconfig(tsconfig),
|
|
110
|
+
format: yield this.initPrompt.askFormat(format),
|
|
111
|
+
scaffoldSource: yield this.initPrompt.askScaffoldSource(args.scaffold, sourcePath !== null && sourcePath !== void 0 ? sourcePath : "src/app.module.ts"),
|
|
112
|
+
writePackageScripts: yield this.initPrompt.askWritePackageScripts(args.scripts),
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Writes a starter AppModule at the configured source path if and only if the file
|
|
118
|
+
* doesn't already exist. Never overwrites — re-running init on an established project
|
|
119
|
+
* shouldn't risk clobbering real code.
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
scaffoldSource(projectRoot, sourcePath) {
|
|
123
|
+
const absolutePath = path.resolve(projectRoot, sourcePath);
|
|
124
|
+
if (fs.existsSync(absolutePath)) {
|
|
125
|
+
this.consoleManager.writeInfo(`AppModule source already exists at ${sourcePath}; skipping scaffold.`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
fs.mkdirSync(path.dirname(absolutePath), { recursive: true });
|
|
129
|
+
fs.writeFileSync(absolutePath, this.renderAppModuleTemplate(), "utf8");
|
|
130
|
+
this.consoleManager.writeSuccess(`Created ${sourcePath}`);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Adds `build`, `start`, `verify` to package.json's scripts. Only adds scripts that
|
|
134
|
+
* don't already exist — never overwrites a user-defined script.
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
addPackageScripts(projectRoot) {
|
|
138
|
+
var _a;
|
|
139
|
+
const packageJsonPath = path.resolve(projectRoot, "package.json");
|
|
140
|
+
if (fs.existsSync(packageJsonPath) === false) {
|
|
141
|
+
this.consoleManager.writeWarning("package.json not found; skipping script additions.");
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
let parsed;
|
|
145
|
+
try {
|
|
146
|
+
parsed = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
this.consoleManager.writeError(`Failed to parse package.json: ${error.message}`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
parsed.scripts = (_a = parsed.scripts) !== null && _a !== void 0 ? _a : {};
|
|
153
|
+
const desired = {
|
|
154
|
+
build: "pristine build",
|
|
155
|
+
start: "pristine start",
|
|
156
|
+
verify: "pristine verify",
|
|
157
|
+
};
|
|
158
|
+
const added = [];
|
|
159
|
+
const skipped = [];
|
|
160
|
+
for (const [scriptName, scriptCommand] of Object.entries(desired)) {
|
|
161
|
+
if (parsed.scripts[scriptName] === undefined) {
|
|
162
|
+
parsed.scripts[scriptName] = scriptCommand;
|
|
163
|
+
added.push(scriptName);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
skipped.push(scriptName);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (added.length === 0) {
|
|
170
|
+
this.consoleManager.writeInfo("All target scripts already exist in package.json; nothing added.");
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(parsed, null, 2) + "\n", "utf8");
|
|
174
|
+
this.consoleManager.writeSuccess(`Added ${added.length} script(s) to package.json: ${added.join(", ")}`);
|
|
175
|
+
if (skipped.length > 0) {
|
|
176
|
+
this.consoleManager.writeInfo(`Kept existing script(s): ${skipped.join(", ")}`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Adds `.pristine/` to `.gitignore` if `.gitignore` exists and the entry isn't already
|
|
181
|
+
* there. Doesn't create `.gitignore` from scratch — that would be presumptuous in a
|
|
182
|
+
* project that hasn't initialized git.
|
|
183
|
+
* @private
|
|
184
|
+
*/
|
|
185
|
+
addToGitignore(projectRoot) {
|
|
186
|
+
const gitignorePath = path.resolve(projectRoot, ".gitignore");
|
|
187
|
+
if (fs.existsSync(gitignorePath) === false)
|
|
188
|
+
return;
|
|
189
|
+
const current = fs.readFileSync(gitignorePath, "utf8");
|
|
190
|
+
const lines = current.split("\n").map(l => l.trim());
|
|
191
|
+
if (lines.includes(this.gitignoreEntry) || lines.includes(".pristine") || lines.includes(".pristine/*")) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const separator = current.endsWith("\n") ? "" : "\n";
|
|
195
|
+
fs.appendFileSync(gitignorePath, `${separator}${this.gitignoreEntry}\n`, "utf8");
|
|
196
|
+
this.consoleManager.writeInfo(`Added '${this.gitignoreEntry}' to .gitignore`);
|
|
197
|
+
}
|
|
198
|
+
renderConfigTemplate(answers) {
|
|
199
|
+
return `import {defineConfig} from "@pristine-ts/cli";
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Pristine CLI configuration. Generated by \`pristine init\`. Re-run \`pristine init\` to
|
|
203
|
+
* regenerate (it refuses to overwrite this file by design — delete it first).
|
|
204
|
+
*/
|
|
205
|
+
export default defineConfig({
|
|
206
|
+
appModule: {
|
|
207
|
+
sourcePath: "${answers.sourcePath}",
|
|
208
|
+
outputPath: "${answers.outputPath}",
|
|
209
|
+
},
|
|
210
|
+
build: {
|
|
211
|
+
tsconfig: "${answers.tsconfig}",
|
|
212
|
+
format: "${answers.format}",
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
`;
|
|
216
|
+
}
|
|
217
|
+
renderAppModuleTemplate() {
|
|
218
|
+
return `import {AppModuleInterface} from "@pristine-ts/common";
|
|
219
|
+
import {CoreModule} from "@pristine-ts/core";
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Your application's root module. Imported by \`pristine\` at boot — anything reachable from
|
|
223
|
+
* \`importModules\` / \`importServices\` is registered with the kernel.
|
|
224
|
+
*/
|
|
225
|
+
export const AppModule: AppModuleInterface = {
|
|
226
|
+
keyname: "my-app",
|
|
227
|
+
importModules: [
|
|
228
|
+
CoreModule,
|
|
229
|
+
],
|
|
230
|
+
importServices: [],
|
|
231
|
+
};
|
|
232
|
+
`;
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
InitCommand = __decorate([
|
|
236
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
237
|
+
moduleScoped(CliModuleKeyname),
|
|
238
|
+
injectable(),
|
|
239
|
+
__metadata("design:paramtypes", [ConsoleManager,
|
|
240
|
+
InitPrompt])
|
|
241
|
+
], InitCommand);
|
|
242
|
+
export { InitCommand };
|
|
243
|
+
//# sourceMappingURL=init.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/commands/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
22
|
+
import { ListCommand } from "./list.command";
|
|
23
|
+
/**
|
|
24
|
+
* Top-level alias for the framework-reserved `p:list` command. Injects the delegate
|
|
25
|
+
* directly via standard DI.
|
|
26
|
+
*/
|
|
27
|
+
let ListAliasCommand = class ListAliasCommand {
|
|
28
|
+
constructor(delegate) {
|
|
29
|
+
this.delegate = delegate;
|
|
30
|
+
this.optionsType = null;
|
|
31
|
+
this.name = "list";
|
|
32
|
+
this.description = "Alias for p:list.";
|
|
33
|
+
}
|
|
34
|
+
run(args) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
return this.delegate.run(args);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
ListAliasCommand = __decorate([
|
|
41
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
42
|
+
moduleScoped(CliModuleKeyname),
|
|
43
|
+
injectable(),
|
|
44
|
+
__metadata("design:paramtypes", [ListCommand])
|
|
45
|
+
], ListAliasCommand);
|
|
46
|
+
export { ListAliasCommand };
|
|
47
|
+
//# sourceMappingURL=list-alias.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/list-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAGpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AAII,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAK3B,YAA6B,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;QAJlD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,MAAM,CAAC;QACd,gBAAW,GAAG,mBAAmB,CAAC;IAGlC,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,gBAAgB;IAH5B,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAM4B,WAAW;GALvC,gBAAgB,CAW5B"}
|
|
@@ -20,16 +20,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
23
|
-
import {
|
|
23
|
+
import { inject, injectable } from "tsyringe";
|
|
24
24
|
import { ConsoleManager } from "../managers/console.manager";
|
|
25
25
|
import { ExitCodeEnum } from "../enums/exit-code.enum";
|
|
26
26
|
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
27
|
+
/**
|
|
28
|
+
* Lists every registered command's name. Like `HelpCommand`, this resolves the command set
|
|
29
|
+
* lazily inside `run()` via the injected child container to avoid the self-referential cycle
|
|
30
|
+
* that constructor-time `@injectAll(Command)` would create — see `HelpCommand` for details.
|
|
31
|
+
*/
|
|
27
32
|
let ListCommand = class ListCommand {
|
|
28
33
|
constructor(consoleManager, container) {
|
|
29
34
|
this.consoleManager = consoleManager;
|
|
30
35
|
this.container = container;
|
|
31
36
|
this.optionsType = null;
|
|
32
37
|
this.name = "p:list";
|
|
38
|
+
this.description = "List every registered command (built-in and custom).";
|
|
33
39
|
}
|
|
34
40
|
run(args) {
|
|
35
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -44,7 +50,7 @@ ListCommand = __decorate([
|
|
|
44
50
|
tag(ServiceDefinitionTagEnum.Command),
|
|
45
51
|
moduleScoped(CliModuleKeyname),
|
|
46
52
|
injectable(),
|
|
47
|
-
__param(1,
|
|
53
|
+
__param(1, inject(ServiceDefinitionTagEnum.CurrentChildContainer)),
|
|
48
54
|
__metadata("design:paramtypes", [ConsoleManager, Object])
|
|
49
55
|
], ListCommand);
|
|
50
56
|
export { ListCommand };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.command.js","sourceRoot":"","sources":["../../../../src/commands/list.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAsB,
|
|
1
|
+
{"version":3,"file":"list.command.js","sourceRoot":"","sources":["../../../../src/commands/list.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD;;;;GAIG;AAII,IAAM,WAAW,GAAjB,MAAM,WAAW;IAKtB,YACmB,cAA8B,EACS,SAA+C;QADtF,mBAAc,GAAd,cAAc,CAAgB;QAC0B,cAAS,GAAT,SAAS,CAAqB;QANzG,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,sDAAsD,CAAC;IAMrE,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAA4B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACtG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAEzE,OAAO,YAAY,CAAC,OAAO,CAAC;QAC9B,CAAC;KAAA;CACF,CAAA;AAlBY,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;qCADtB,cAAc;GANtC,WAAW,CAkBvB"}
|