@decaf-ts/cli 0.4.11 → 0.4.13
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/README.md +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/lib/CliWrapper.cjs +167 -14
- package/lib/CliWrapper.d.ts +11 -0
- package/lib/CliWrapper.js.map +1 -1
- package/lib/esm/CliWrapper.d.ts +11 -0
- package/lib/esm/CliWrapper.js +168 -15
- package/lib/esm/CliWrapper.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
package/lib/CliWrapper.cjs
CHANGED
|
@@ -13,7 +13,20 @@ const logging_1 = require("@decaf-ts/logging");
|
|
|
13
13
|
const banners_1 = require("./banners.cjs");
|
|
14
14
|
const slogans_1 = require("./slogans.cjs");
|
|
15
15
|
const environment_1 = require("./environment.cjs");
|
|
16
|
+
const cli_module_1 = __importDefault(require("./build-module/cli-module.cjs"));
|
|
17
|
+
const cli_module_2 = __importDefault(require("./release-module/cli-module.cjs"));
|
|
18
|
+
const cli_module_3 = __importDefault(require("./utils-module/cli-module.cjs"));
|
|
16
19
|
const MIN_BANNER_WIDTH = 92;
|
|
20
|
+
const DEFAULT_LOG_LEVEL = logging_1.LogLevel.info;
|
|
21
|
+
const LOG_FORMAT = environment_1.DecafCLieEnvironment.format.includes("{pId}")
|
|
22
|
+
? environment_1.DecafCLieEnvironment.format
|
|
23
|
+
: `{pId}|${environment_1.DecafCLieEnvironment.format}`;
|
|
24
|
+
const CLI_PACKAGE_NAME = "@decaf-ts/cli";
|
|
25
|
+
const INCLUDED_MODULE_FACTORIES = [
|
|
26
|
+
cli_module_1.default,
|
|
27
|
+
cli_module_2.default,
|
|
28
|
+
cli_module_3.default,
|
|
29
|
+
];
|
|
17
30
|
const pIdDescriptor = {
|
|
18
31
|
key: "pId",
|
|
19
32
|
render(payload) {
|
|
@@ -37,9 +50,8 @@ catch {
|
|
|
37
50
|
}
|
|
38
51
|
}
|
|
39
52
|
logging_1.Logging.setConfig({
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
: `{pId}|${environment_1.DecafCLieEnvironment.format}`,
|
|
53
|
+
level: DEFAULT_LOG_LEVEL,
|
|
54
|
+
format: LOG_FORMAT,
|
|
43
55
|
});
|
|
44
56
|
/**
|
|
45
57
|
* @description Utility class to handle CLI functionality from all Decaf modules
|
|
@@ -65,8 +77,10 @@ class CliWrapper extends logging_1.LoggedClass {
|
|
|
65
77
|
this.basePath = basePath;
|
|
66
78
|
this.crawlLevels = crawlLevels;
|
|
67
79
|
this.modules = {};
|
|
80
|
+
this.includedModuleNames = new Set();
|
|
68
81
|
this.moduleSlogans = {};
|
|
69
82
|
this.globalSlogans = [];
|
|
83
|
+
this.logLevelAttached = new WeakSet();
|
|
70
84
|
this.rootPath = path_1.default.resolve(__dirname, "..");
|
|
71
85
|
}
|
|
72
86
|
/**
|
|
@@ -121,13 +135,24 @@ class CliWrapper extends logging_1.LoggedClass {
|
|
|
121
135
|
module = await module;
|
|
122
136
|
if (!this.isCommandInstance(module))
|
|
123
137
|
throw new Error(`You should export the instantiated Commands class as default.`);
|
|
124
|
-
this.
|
|
138
|
+
this.ensureLogLevelSupport(module);
|
|
139
|
+
const moduleRoot = this.findModuleRoot(path_1.default.dirname(filePath));
|
|
140
|
+
const packageName = this.getPackageNameFromRoot(moduleRoot);
|
|
141
|
+
if (packageName === CLI_PACKAGE_NAME &&
|
|
142
|
+
this.includedModuleNames.has(name)) {
|
|
143
|
+
log.verbose(`skipping included module ${name} at ${filePath} (already loaded)`);
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
this.registerModule(name, module, moduleRoot, log);
|
|
125
147
|
}
|
|
126
148
|
catch (e) {
|
|
127
149
|
throw new Error(`failed to load module under ${filePath}: ${e instanceof Error ? e.message : e}`);
|
|
128
150
|
}
|
|
151
|
+
return name;
|
|
152
|
+
}
|
|
153
|
+
registerModule(name, module, moduleRoot, log) {
|
|
154
|
+
this.modules[name] = module;
|
|
129
155
|
try {
|
|
130
|
-
const moduleRoot = this.findModuleRoot(path_1.default.dirname(filePath));
|
|
131
156
|
const records = (0, slogans_1.readSlogans)(log, moduleRoot);
|
|
132
157
|
const strings = this.extractSloganStrings(records);
|
|
133
158
|
if (strings.length) {
|
|
@@ -137,7 +162,6 @@ class CliWrapper extends logging_1.LoggedClass {
|
|
|
137
162
|
catch (e) {
|
|
138
163
|
console.error(`Failed to load slogans for ${name}: ${e}`);
|
|
139
164
|
}
|
|
140
|
-
return name;
|
|
141
165
|
}
|
|
142
166
|
/**
|
|
143
167
|
* @description Finds and loads all CLI modules in the basePath
|
|
@@ -170,20 +194,73 @@ class CliWrapper extends logging_1.LoggedClass {
|
|
|
170
194
|
*/
|
|
171
195
|
async boot() {
|
|
172
196
|
const log = this.log.for(this.boot);
|
|
173
|
-
|
|
197
|
+
this.ensureLogLevelSupport(this.command);
|
|
198
|
+
this.loadIncludedModules();
|
|
199
|
+
const basePath = this.getHostPath();
|
|
200
|
+
const seen = new Set();
|
|
201
|
+
await this.loadModulesFromPath(basePath, seen, log);
|
|
202
|
+
const scopePaths = this.getScopePackageRoots();
|
|
203
|
+
for (const scopePath of scopePaths) {
|
|
204
|
+
await this.loadModulesFromPath(scopePath, seen, log);
|
|
205
|
+
}
|
|
206
|
+
log.debug(`loaded modules:\n${Object.keys(this.modules)
|
|
207
|
+
.map((k) => `- ${k}`)
|
|
208
|
+
.join("\n")}`);
|
|
209
|
+
}
|
|
210
|
+
loadIncludedModules() {
|
|
211
|
+
const log = this.log.for(this.loadIncludedModules);
|
|
212
|
+
for (const factory of INCLUDED_MODULE_FACTORIES) {
|
|
213
|
+
try {
|
|
214
|
+
const moduleName = factory.name;
|
|
215
|
+
if (!moduleName || this.includedModuleNames.has(moduleName)) {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
const command = factory();
|
|
219
|
+
if (!this.isCommandInstance(command)) {
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
this.ensureLogLevelSupport(command);
|
|
223
|
+
this.includedModuleNames.add(moduleName);
|
|
224
|
+
this.registerModule(moduleName, command, this.rootPath, log);
|
|
225
|
+
if (!this.command.commands.some((cmd) => cmd.name() === moduleName)) {
|
|
226
|
+
this.command.addCommand(command);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
console.error(`failed to load included module ${factory.name}: ${error instanceof Error ? error.message : error}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
async loadModulesFromPath(basePath, seen, log) {
|
|
235
|
+
if (!fs_1.default.existsSync(basePath)) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
if (!fs_1.default.statSync(basePath).isDirectory()) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
174
246
|
const modules = this.crawl(basePath, this.crawlLevels);
|
|
175
247
|
for (const module of modules) {
|
|
176
|
-
|
|
248
|
+
const resolved = path_1.default.resolve(module);
|
|
249
|
+
if (seen.has(resolved)) {
|
|
177
250
|
continue;
|
|
178
251
|
}
|
|
252
|
+
seen.add(resolved);
|
|
179
253
|
let name;
|
|
180
254
|
try {
|
|
181
|
-
name = await this.load(
|
|
255
|
+
name = await this.load(resolved);
|
|
182
256
|
}
|
|
183
257
|
catch (e) {
|
|
184
258
|
console.error(e);
|
|
185
259
|
continue;
|
|
186
260
|
}
|
|
261
|
+
if (!name) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
187
264
|
const alreadyRegistered = this.command.commands.some((cmd) => cmd.name() === name);
|
|
188
265
|
if (alreadyRegistered) {
|
|
189
266
|
log.verbose(`Command ${name} already registered; skipping duplicate`);
|
|
@@ -196,9 +273,83 @@ class CliWrapper extends logging_1.LoggedClass {
|
|
|
196
273
|
console.error(e);
|
|
197
274
|
}
|
|
198
275
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
276
|
+
}
|
|
277
|
+
getScopePackageRoots() {
|
|
278
|
+
const scopeRoots = new Set();
|
|
279
|
+
const candidates = [this.rootPath];
|
|
280
|
+
const hostPath = this.getHostPath();
|
|
281
|
+
if (hostPath !== this.rootPath) {
|
|
282
|
+
candidates.push(hostPath);
|
|
283
|
+
}
|
|
284
|
+
for (const candidate of candidates) {
|
|
285
|
+
const scopeDir = path_1.default.join(candidate, "node_modules", "@decaf-ts");
|
|
286
|
+
try {
|
|
287
|
+
if (!fs_1.default.existsSync(scopeDir) || !fs_1.default.statSync(scopeDir).isDirectory()) {
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
const entries = fs_1.default.readdirSync(scopeDir, { withFileTypes: true });
|
|
291
|
+
for (const entry of entries) {
|
|
292
|
+
if (!entry.isDirectory())
|
|
293
|
+
continue;
|
|
294
|
+
scopeRoots.add(path_1.default.join(scopeDir, entry.name));
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
// ignore inaccessible nodes
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return Array.from(scopeRoots);
|
|
302
|
+
}
|
|
303
|
+
getHostPath() {
|
|
304
|
+
return path_1.default.resolve(this.rootPath, this.basePath);
|
|
305
|
+
}
|
|
306
|
+
getPackageNameFromRoot(root) {
|
|
307
|
+
try {
|
|
308
|
+
const pkgPath = path_1.default.join(root, "package.json");
|
|
309
|
+
if (!fs_1.default.existsSync(pkgPath)) {
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
312
|
+
const pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, "utf8"));
|
|
313
|
+
return typeof pkg.name === "string" ? pkg.name : undefined;
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
return undefined;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
ensureLogLevelSupport(command) {
|
|
320
|
+
if (this.logLevelAttached.has(command)) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
this.logLevelAttached.add(command);
|
|
324
|
+
const hasLogLevelOption = command.options.some((option) => option.long === "--logLevel");
|
|
325
|
+
if (!hasLogLevelOption) {
|
|
326
|
+
command.option("--logLevel <level>", "Override the CLI log level (error, warn, info, verbose, debug, trace, silly)", DEFAULT_LOG_LEVEL);
|
|
327
|
+
}
|
|
328
|
+
command.hook("preAction", (_, actionCommand) => {
|
|
329
|
+
const opts = actionCommand.opts();
|
|
330
|
+
this.updateLogLevel(opts.logLevel);
|
|
331
|
+
});
|
|
332
|
+
for (const subCommand of command.commands) {
|
|
333
|
+
this.ensureLogLevelSupport(subCommand);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
updateLogLevel(level) {
|
|
337
|
+
const resolvedLevel = this.resolveLogLevel(level);
|
|
338
|
+
logging_1.Logging.setConfig({
|
|
339
|
+
level: resolvedLevel,
|
|
340
|
+
format: LOG_FORMAT,
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
resolveLogLevel(level) {
|
|
344
|
+
if (!level)
|
|
345
|
+
return DEFAULT_LOG_LEVEL;
|
|
346
|
+
const normalized = level.toLowerCase();
|
|
347
|
+
const options = Object.values(logging_1.LogLevel);
|
|
348
|
+
if (options.includes(normalized)) {
|
|
349
|
+
return normalized;
|
|
350
|
+
}
|
|
351
|
+
console.warn(`Unknown log level "${level}" provided; falling back to ${DEFAULT_LOG_LEVEL}`);
|
|
352
|
+
return DEFAULT_LOG_LEVEL;
|
|
202
353
|
}
|
|
203
354
|
/**
|
|
204
355
|
* @description Recursively searches for CLI module files in the directory structure
|
|
@@ -211,12 +362,14 @@ class CliWrapper extends logging_1.LoggedClass {
|
|
|
211
362
|
* @private
|
|
212
363
|
*/
|
|
213
364
|
crawl(basePath, levels = 2) {
|
|
214
|
-
if (levels
|
|
365
|
+
if (levels < 0)
|
|
215
366
|
return [];
|
|
216
367
|
return fs_1.default.readdirSync(basePath).reduce((accum, file) => {
|
|
217
368
|
file = path_1.default.join(basePath, file);
|
|
218
369
|
if (fs_1.default.statSync(file).isDirectory()) {
|
|
219
|
-
|
|
370
|
+
if (levels > 0) {
|
|
371
|
+
accum.push(...this.crawl(file, levels - 1));
|
|
372
|
+
}
|
|
220
373
|
}
|
|
221
374
|
else if (file.match(new RegExp(`${constants_1.CLI_FILE_NAME}\\.[cm]js$`, "gm"))) {
|
|
222
375
|
accum.push(file);
|
package/lib/CliWrapper.d.ts
CHANGED
|
@@ -22,10 +22,12 @@ export declare class CliWrapper extends LoggedClass {
|
|
|
22
22
|
private crawlLevels;
|
|
23
23
|
private _command?;
|
|
24
24
|
private modules;
|
|
25
|
+
private includedModuleNames;
|
|
25
26
|
private readonly rootPath;
|
|
26
27
|
private moduleSlogans;
|
|
27
28
|
private globalSlogans;
|
|
28
29
|
private bannerAnimation?;
|
|
30
|
+
private readonly logLevelAttached;
|
|
29
31
|
private static env;
|
|
30
32
|
constructor(basePath?: string, crawlLevels?: number);
|
|
31
33
|
/**
|
|
@@ -63,6 +65,7 @@ export declare class CliWrapper extends LoggedClass {
|
|
|
63
65
|
* CliWrapper-->>CliWrapper: Return name
|
|
64
66
|
*/
|
|
65
67
|
private load;
|
|
68
|
+
private registerModule;
|
|
66
69
|
/**
|
|
67
70
|
* @description Finds and loads all CLI modules in the basePath
|
|
68
71
|
* @summary Uses the crawl method to find all CLI modules in the specified base path,
|
|
@@ -93,6 +96,14 @@ export declare class CliWrapper extends LoggedClass {
|
|
|
93
96
|
* CliWrapper->>Console: Log loaded modules
|
|
94
97
|
*/
|
|
95
98
|
private boot;
|
|
99
|
+
private loadIncludedModules;
|
|
100
|
+
private loadModulesFromPath;
|
|
101
|
+
private getScopePackageRoots;
|
|
102
|
+
private getHostPath;
|
|
103
|
+
private getPackageNameFromRoot;
|
|
104
|
+
private ensureLogLevelSupport;
|
|
105
|
+
private updateLogLevel;
|
|
106
|
+
private resolveLogLevel;
|
|
96
107
|
/**
|
|
97
108
|
* @description Recursively searches for CLI module files in the directory structure
|
|
98
109
|
* @summary Crawls the basePath up to the specified number of folder levels to find files named according to CLI_FILE_NAME
|
package/lib/CliWrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliWrapper.js","sourceRoot":"","sources":["../src/CliWrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CliWrapper.js","sourceRoot":"","sources":["../src/CliWrapper.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/CliWrapper.d.ts
CHANGED
|
@@ -22,10 +22,12 @@ export declare class CliWrapper extends LoggedClass {
|
|
|
22
22
|
private crawlLevels;
|
|
23
23
|
private _command?;
|
|
24
24
|
private modules;
|
|
25
|
+
private includedModuleNames;
|
|
25
26
|
private readonly rootPath;
|
|
26
27
|
private moduleSlogans;
|
|
27
28
|
private globalSlogans;
|
|
28
29
|
private bannerAnimation?;
|
|
30
|
+
private readonly logLevelAttached;
|
|
29
31
|
private static env;
|
|
30
32
|
constructor(basePath?: string, crawlLevels?: number);
|
|
31
33
|
/**
|
|
@@ -63,6 +65,7 @@ export declare class CliWrapper extends LoggedClass {
|
|
|
63
65
|
* CliWrapper-->>CliWrapper: Return name
|
|
64
66
|
*/
|
|
65
67
|
private load;
|
|
68
|
+
private registerModule;
|
|
66
69
|
/**
|
|
67
70
|
* @description Finds and loads all CLI modules in the basePath
|
|
68
71
|
* @summary Uses the crawl method to find all CLI modules in the specified base path,
|
|
@@ -93,6 +96,14 @@ export declare class CliWrapper extends LoggedClass {
|
|
|
93
96
|
* CliWrapper->>Console: Log loaded modules
|
|
94
97
|
*/
|
|
95
98
|
private boot;
|
|
99
|
+
private loadIncludedModules;
|
|
100
|
+
private loadModulesFromPath;
|
|
101
|
+
private getScopePackageRoots;
|
|
102
|
+
private getHostPath;
|
|
103
|
+
private getPackageNameFromRoot;
|
|
104
|
+
private ensureLogLevelSupport;
|
|
105
|
+
private updateLogLevel;
|
|
106
|
+
private resolveLogLevel;
|
|
96
107
|
/**
|
|
97
108
|
* @description Recursively searches for CLI module files in the directory structure
|
|
98
109
|
* @summary Crawls the basePath up to the specified number of folder levels to find files named according to CLI_FILE_NAME
|
package/lib/esm/CliWrapper.js
CHANGED
|
@@ -3,11 +3,24 @@ import fs from "fs";
|
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { CLI_FILE_NAME } from "./constants.js";
|
|
5
5
|
import { CLIUtils } from "./utils.js";
|
|
6
|
-
import { LoggedClass, Logging, logParameterRegistry, } from "@decaf-ts/logging";
|
|
6
|
+
import { LoggedClass, LogLevel, Logging, logParameterRegistry, } from "@decaf-ts/logging";
|
|
7
7
|
import { banners, colorPalettes } from "./banners.js";
|
|
8
8
|
import { readSlogans } from "./slogans.js";
|
|
9
9
|
import { DecafCLieEnvironment } from "./environment.js";
|
|
10
|
+
import buildModule from "./build-module/cli-module.js";
|
|
11
|
+
import releaseModule from "./release-module/cli-module.js";
|
|
12
|
+
import utilsModule from "./utils-module/cli-module.js";
|
|
10
13
|
const MIN_BANNER_WIDTH = 92;
|
|
14
|
+
const DEFAULT_LOG_LEVEL = LogLevel.info;
|
|
15
|
+
const LOG_FORMAT = DecafCLieEnvironment.format.includes("{pId}")
|
|
16
|
+
? DecafCLieEnvironment.format
|
|
17
|
+
: `{pId}|${DecafCLieEnvironment.format}`;
|
|
18
|
+
const CLI_PACKAGE_NAME = "@decaf-ts/cli";
|
|
19
|
+
const INCLUDED_MODULE_FACTORIES = [
|
|
20
|
+
buildModule,
|
|
21
|
+
releaseModule,
|
|
22
|
+
utilsModule,
|
|
23
|
+
];
|
|
11
24
|
const pIdDescriptor = {
|
|
12
25
|
key: "pId",
|
|
13
26
|
render(payload) {
|
|
@@ -31,9 +44,8 @@ catch {
|
|
|
31
44
|
}
|
|
32
45
|
}
|
|
33
46
|
Logging.setConfig({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
: `{pId}|${DecafCLieEnvironment.format}`,
|
|
47
|
+
level: DEFAULT_LOG_LEVEL,
|
|
48
|
+
format: LOG_FORMAT,
|
|
37
49
|
});
|
|
38
50
|
/**
|
|
39
51
|
* @description Utility class to handle CLI functionality from all Decaf modules
|
|
@@ -59,8 +71,10 @@ export class CliWrapper extends LoggedClass {
|
|
|
59
71
|
this.basePath = basePath;
|
|
60
72
|
this.crawlLevels = crawlLevels;
|
|
61
73
|
this.modules = {};
|
|
74
|
+
this.includedModuleNames = new Set();
|
|
62
75
|
this.moduleSlogans = {};
|
|
63
76
|
this.globalSlogans = [];
|
|
77
|
+
this.logLevelAttached = new WeakSet();
|
|
64
78
|
this.rootPath = path.resolve(__dirname, "..");
|
|
65
79
|
}
|
|
66
80
|
/**
|
|
@@ -115,13 +129,24 @@ export class CliWrapper extends LoggedClass {
|
|
|
115
129
|
module = await module;
|
|
116
130
|
if (!this.isCommandInstance(module))
|
|
117
131
|
throw new Error(`You should export the instantiated Commands class as default.`);
|
|
118
|
-
this.
|
|
132
|
+
this.ensureLogLevelSupport(module);
|
|
133
|
+
const moduleRoot = this.findModuleRoot(path.dirname(filePath));
|
|
134
|
+
const packageName = this.getPackageNameFromRoot(moduleRoot);
|
|
135
|
+
if (packageName === CLI_PACKAGE_NAME &&
|
|
136
|
+
this.includedModuleNames.has(name)) {
|
|
137
|
+
log.verbose(`skipping included module ${name} at ${filePath} (already loaded)`);
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
this.registerModule(name, module, moduleRoot, log);
|
|
119
141
|
}
|
|
120
142
|
catch (e) {
|
|
121
143
|
throw new Error(`failed to load module under ${filePath}: ${e instanceof Error ? e.message : e}`);
|
|
122
144
|
}
|
|
145
|
+
return name;
|
|
146
|
+
}
|
|
147
|
+
registerModule(name, module, moduleRoot, log) {
|
|
148
|
+
this.modules[name] = module;
|
|
123
149
|
try {
|
|
124
|
-
const moduleRoot = this.findModuleRoot(path.dirname(filePath));
|
|
125
150
|
const records = readSlogans(log, moduleRoot);
|
|
126
151
|
const strings = this.extractSloganStrings(records);
|
|
127
152
|
if (strings.length) {
|
|
@@ -131,7 +156,6 @@ export class CliWrapper extends LoggedClass {
|
|
|
131
156
|
catch (e) {
|
|
132
157
|
console.error(`Failed to load slogans for ${name}: ${e}`);
|
|
133
158
|
}
|
|
134
|
-
return name;
|
|
135
159
|
}
|
|
136
160
|
/**
|
|
137
161
|
* @description Finds and loads all CLI modules in the basePath
|
|
@@ -164,20 +188,73 @@ export class CliWrapper extends LoggedClass {
|
|
|
164
188
|
*/
|
|
165
189
|
async boot() {
|
|
166
190
|
const log = this.log.for(this.boot);
|
|
167
|
-
|
|
191
|
+
this.ensureLogLevelSupport(this.command);
|
|
192
|
+
this.loadIncludedModules();
|
|
193
|
+
const basePath = this.getHostPath();
|
|
194
|
+
const seen = new Set();
|
|
195
|
+
await this.loadModulesFromPath(basePath, seen, log);
|
|
196
|
+
const scopePaths = this.getScopePackageRoots();
|
|
197
|
+
for (const scopePath of scopePaths) {
|
|
198
|
+
await this.loadModulesFromPath(scopePath, seen, log);
|
|
199
|
+
}
|
|
200
|
+
log.debug(`loaded modules:\n${Object.keys(this.modules)
|
|
201
|
+
.map((k) => `- ${k}`)
|
|
202
|
+
.join("\n")}`);
|
|
203
|
+
}
|
|
204
|
+
loadIncludedModules() {
|
|
205
|
+
const log = this.log.for(this.loadIncludedModules);
|
|
206
|
+
for (const factory of INCLUDED_MODULE_FACTORIES) {
|
|
207
|
+
try {
|
|
208
|
+
const moduleName = factory.name;
|
|
209
|
+
if (!moduleName || this.includedModuleNames.has(moduleName)) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
const command = factory();
|
|
213
|
+
if (!this.isCommandInstance(command)) {
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
this.ensureLogLevelSupport(command);
|
|
217
|
+
this.includedModuleNames.add(moduleName);
|
|
218
|
+
this.registerModule(moduleName, command, this.rootPath, log);
|
|
219
|
+
if (!this.command.commands.some((cmd) => cmd.name() === moduleName)) {
|
|
220
|
+
this.command.addCommand(command);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
console.error(`failed to load included module ${factory.name}: ${error instanceof Error ? error.message : error}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async loadModulesFromPath(basePath, seen, log) {
|
|
229
|
+
if (!fs.existsSync(basePath)) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
try {
|
|
233
|
+
if (!fs.statSync(basePath).isDirectory()) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
168
240
|
const modules = this.crawl(basePath, this.crawlLevels);
|
|
169
241
|
for (const module of modules) {
|
|
170
|
-
|
|
242
|
+
const resolved = path.resolve(module);
|
|
243
|
+
if (seen.has(resolved)) {
|
|
171
244
|
continue;
|
|
172
245
|
}
|
|
246
|
+
seen.add(resolved);
|
|
173
247
|
let name;
|
|
174
248
|
try {
|
|
175
|
-
name = await this.load(
|
|
249
|
+
name = await this.load(resolved);
|
|
176
250
|
}
|
|
177
251
|
catch (e) {
|
|
178
252
|
console.error(e);
|
|
179
253
|
continue;
|
|
180
254
|
}
|
|
255
|
+
if (!name) {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
181
258
|
const alreadyRegistered = this.command.commands.some((cmd) => cmd.name() === name);
|
|
182
259
|
if (alreadyRegistered) {
|
|
183
260
|
log.verbose(`Command ${name} already registered; skipping duplicate`);
|
|
@@ -190,9 +267,83 @@ export class CliWrapper extends LoggedClass {
|
|
|
190
267
|
console.error(e);
|
|
191
268
|
}
|
|
192
269
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
270
|
+
}
|
|
271
|
+
getScopePackageRoots() {
|
|
272
|
+
const scopeRoots = new Set();
|
|
273
|
+
const candidates = [this.rootPath];
|
|
274
|
+
const hostPath = this.getHostPath();
|
|
275
|
+
if (hostPath !== this.rootPath) {
|
|
276
|
+
candidates.push(hostPath);
|
|
277
|
+
}
|
|
278
|
+
for (const candidate of candidates) {
|
|
279
|
+
const scopeDir = path.join(candidate, "node_modules", "@decaf-ts");
|
|
280
|
+
try {
|
|
281
|
+
if (!fs.existsSync(scopeDir) || !fs.statSync(scopeDir).isDirectory()) {
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
const entries = fs.readdirSync(scopeDir, { withFileTypes: true });
|
|
285
|
+
for (const entry of entries) {
|
|
286
|
+
if (!entry.isDirectory())
|
|
287
|
+
continue;
|
|
288
|
+
scopeRoots.add(path.join(scopeDir, entry.name));
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
// ignore inaccessible nodes
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return Array.from(scopeRoots);
|
|
296
|
+
}
|
|
297
|
+
getHostPath() {
|
|
298
|
+
return path.resolve(this.rootPath, this.basePath);
|
|
299
|
+
}
|
|
300
|
+
getPackageNameFromRoot(root) {
|
|
301
|
+
try {
|
|
302
|
+
const pkgPath = path.join(root, "package.json");
|
|
303
|
+
if (!fs.existsSync(pkgPath)) {
|
|
304
|
+
return undefined;
|
|
305
|
+
}
|
|
306
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
307
|
+
return typeof pkg.name === "string" ? pkg.name : undefined;
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
ensureLogLevelSupport(command) {
|
|
314
|
+
if (this.logLevelAttached.has(command)) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
this.logLevelAttached.add(command);
|
|
318
|
+
const hasLogLevelOption = command.options.some((option) => option.long === "--logLevel");
|
|
319
|
+
if (!hasLogLevelOption) {
|
|
320
|
+
command.option("--logLevel <level>", "Override the CLI log level (error, warn, info, verbose, debug, trace, silly)", DEFAULT_LOG_LEVEL);
|
|
321
|
+
}
|
|
322
|
+
command.hook("preAction", (_, actionCommand) => {
|
|
323
|
+
const opts = actionCommand.opts();
|
|
324
|
+
this.updateLogLevel(opts.logLevel);
|
|
325
|
+
});
|
|
326
|
+
for (const subCommand of command.commands) {
|
|
327
|
+
this.ensureLogLevelSupport(subCommand);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
updateLogLevel(level) {
|
|
331
|
+
const resolvedLevel = this.resolveLogLevel(level);
|
|
332
|
+
Logging.setConfig({
|
|
333
|
+
level: resolvedLevel,
|
|
334
|
+
format: LOG_FORMAT,
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
resolveLogLevel(level) {
|
|
338
|
+
if (!level)
|
|
339
|
+
return DEFAULT_LOG_LEVEL;
|
|
340
|
+
const normalized = level.toLowerCase();
|
|
341
|
+
const options = Object.values(LogLevel);
|
|
342
|
+
if (options.includes(normalized)) {
|
|
343
|
+
return normalized;
|
|
344
|
+
}
|
|
345
|
+
console.warn(`Unknown log level "${level}" provided; falling back to ${DEFAULT_LOG_LEVEL}`);
|
|
346
|
+
return DEFAULT_LOG_LEVEL;
|
|
196
347
|
}
|
|
197
348
|
/**
|
|
198
349
|
* @description Recursively searches for CLI module files in the directory structure
|
|
@@ -205,12 +356,14 @@ export class CliWrapper extends LoggedClass {
|
|
|
205
356
|
* @private
|
|
206
357
|
*/
|
|
207
358
|
crawl(basePath, levels = 2) {
|
|
208
|
-
if (levels
|
|
359
|
+
if (levels < 0)
|
|
209
360
|
return [];
|
|
210
361
|
return fs.readdirSync(basePath).reduce((accum, file) => {
|
|
211
362
|
file = path.join(basePath, file);
|
|
212
363
|
if (fs.statSync(file).isDirectory()) {
|
|
213
|
-
|
|
364
|
+
if (levels > 0) {
|
|
365
|
+
accum.push(...this.crawl(file, levels - 1));
|
|
366
|
+
}
|
|
214
367
|
}
|
|
215
368
|
else if (file.match(new RegExp(`${CLI_FILE_NAME}\\.[cm]js$`, "gm"))) {
|
|
216
369
|
accum.push(file);
|