@cenk1cenk2/oclif-common 4.0.1 → 4.0.3
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/index.js +378 -187
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
4
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
4
5
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
@@ -7,6 +8,10 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
8
|
return require.apply(this, arguments);
|
|
8
9
|
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
9
10
|
});
|
|
11
|
+
var __publicField = (obj, key, value) => {
|
|
12
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
13
|
+
return value;
|
|
14
|
+
};
|
|
10
15
|
|
|
11
16
|
// src/commands/base.command.ts
|
|
12
17
|
var _core = require('@oclif/core');
|
|
@@ -15,16 +20,16 @@ var _readline = require('readline');
|
|
|
15
20
|
require('reflect-metadata');
|
|
16
21
|
|
|
17
22
|
// src/constants/file.constants.ts
|
|
18
|
-
var FileConstants
|
|
23
|
+
var FileConstants;
|
|
24
|
+
(function(FileConstants2) {
|
|
19
25
|
FileConstants2["CONFIG_SERVICE_DEFAULTS_DIR"] = "config";
|
|
20
|
-
|
|
21
|
-
})(FileConstants || {});
|
|
26
|
+
})(FileConstants || (FileConstants = exports.FileConstants = {}));
|
|
22
27
|
|
|
23
28
|
// src/constants/help-groups.constants.ts
|
|
24
|
-
var HelpGroups
|
|
29
|
+
var HelpGroups;
|
|
30
|
+
(function(HelpGroups2) {
|
|
25
31
|
HelpGroups2["CLI"] = "CLI";
|
|
26
|
-
|
|
27
|
-
})(HelpGroups || {});
|
|
32
|
+
})(HelpGroups || (HelpGroups = exports.HelpGroups = {}));
|
|
28
33
|
|
|
29
34
|
// src/interfaces/oclif.interface.ts
|
|
30
35
|
|
|
@@ -38,7 +43,8 @@ var _os = require('os');
|
|
|
38
43
|
var _winston = require('winston'); var _winston2 = _interopRequireDefault(_winston);
|
|
39
44
|
|
|
40
45
|
// src/utils/logger/logger.constants.ts
|
|
41
|
-
var LogLevels
|
|
46
|
+
var LogLevels;
|
|
47
|
+
(function(LogLevels2) {
|
|
42
48
|
LogLevels2["SILENT"] = "SILENT";
|
|
43
49
|
LogLevels2["DIRECT"] = "DIRECT";
|
|
44
50
|
LogLevels2["FATAL"] = "FATAL";
|
|
@@ -48,26 +54,35 @@ var LogLevels = /* @__PURE__ */ ((LogLevels2) => {
|
|
|
48
54
|
LogLevels2["VERBOSE"] = "VERBOSE";
|
|
49
55
|
LogLevels2["DEBUG"] = "DEBUG";
|
|
50
56
|
LogLevels2["TRACE"] = "TRACE";
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
})(LogLevels || (LogLevels = exports.LogLevels = {}));
|
|
58
|
+
var LogFieldStatus;
|
|
59
|
+
(function(LogFieldStatus2) {
|
|
54
60
|
LogFieldStatus2["RUN"] = "run";
|
|
55
61
|
LogFieldStatus2["END"] = "end";
|
|
56
62
|
LogFieldStatus2["STAGE"] = "stage";
|
|
57
63
|
LogFieldStatus2["EXIT"] = "exit";
|
|
58
64
|
LogFieldStatus2["TERMINATE"] = "terminate";
|
|
59
|
-
|
|
60
|
-
})(LogFieldStatus || {});
|
|
65
|
+
})(LogFieldStatus || (LogFieldStatus = exports.LogFieldStatus = {}));
|
|
61
66
|
|
|
62
67
|
// src/lib/config/config.service.ts
|
|
63
68
|
var _objectpathimmutable = require('object-path-immutable'); var _objectpathimmutable2 = _interopRequireDefault(_objectpathimmutable);
|
|
64
69
|
var _path = require('path');
|
|
65
70
|
|
|
71
|
+
// src/lib/config/config.constants.ts
|
|
72
|
+
var ConfigEnvKeys;
|
|
73
|
+
(function(ConfigEnvKeys2) {
|
|
74
|
+
ConfigEnvKeys2["NAME"] = "__name";
|
|
75
|
+
ConfigEnvKeys2["PARSER"] = "__format";
|
|
76
|
+
ConfigEnvKeys2["ELEMENT"] = "__element";
|
|
77
|
+
ConfigEnvKeys2["ELEMENT_REPLACER"] = "${i}";
|
|
78
|
+
})(ConfigEnvKeys || (ConfigEnvKeys = {}));
|
|
79
|
+
|
|
66
80
|
// src/lib/parser/env-parser.service.ts
|
|
67
81
|
|
|
68
82
|
var _EnvironmentVariableParser = class {
|
|
69
83
|
constructor() {
|
|
70
|
-
this
|
|
84
|
+
__publicField(this, "logger");
|
|
85
|
+
__publicField(this, "LINE", /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm);
|
|
71
86
|
if (_EnvironmentVariableParser.instance) {
|
|
72
87
|
return _EnvironmentVariableParser.instance;
|
|
73
88
|
}
|
|
@@ -97,11 +112,15 @@ var _EnvironmentVariableParser = class {
|
|
|
97
112
|
};
|
|
98
113
|
var EnvironmentVariableParser = _EnvironmentVariableParser;
|
|
99
114
|
__name(EnvironmentVariableParser, "EnvironmentVariableParser");
|
|
100
|
-
EnvironmentVariableParser
|
|
115
|
+
__publicField(EnvironmentVariableParser, "extensions", [
|
|
116
|
+
"env"
|
|
117
|
+
]);
|
|
118
|
+
__publicField(EnvironmentVariableParser, "instance");
|
|
101
119
|
|
|
102
120
|
// src/lib/parser/json-parser.service.ts
|
|
103
121
|
var _JsonParser = class {
|
|
104
122
|
constructor() {
|
|
123
|
+
__publicField(this, "logger");
|
|
105
124
|
if (_JsonParser.instance) {
|
|
106
125
|
return _JsonParser.instance;
|
|
107
126
|
}
|
|
@@ -123,12 +142,16 @@ var _JsonParser = class {
|
|
|
123
142
|
};
|
|
124
143
|
var JsonParser = _JsonParser;
|
|
125
144
|
__name(JsonParser, "JsonParser");
|
|
126
|
-
JsonParser
|
|
145
|
+
__publicField(JsonParser, "extensions", [
|
|
146
|
+
"json"
|
|
147
|
+
]);
|
|
148
|
+
__publicField(JsonParser, "instance");
|
|
127
149
|
|
|
128
150
|
// src/lib/parser/yaml-parser.service.ts
|
|
129
151
|
var _yaml = require('yaml');
|
|
130
152
|
var _YamlParser = class {
|
|
131
153
|
constructor() {
|
|
154
|
+
__publicField(this, "logger");
|
|
132
155
|
if (_YamlParser.instance) {
|
|
133
156
|
return _YamlParser.instance;
|
|
134
157
|
}
|
|
@@ -145,22 +168,29 @@ var _YamlParser = class {
|
|
|
145
168
|
}
|
|
146
169
|
}
|
|
147
170
|
stringify(data) {
|
|
148
|
-
return _yaml.stringify.call(void 0, data, {
|
|
171
|
+
return _yaml.stringify.call(void 0, data, {
|
|
172
|
+
prettyErrors: true
|
|
173
|
+
});
|
|
149
174
|
}
|
|
150
175
|
};
|
|
151
176
|
var YamlParser = _YamlParser;
|
|
152
177
|
__name(YamlParser, "YamlParser");
|
|
153
|
-
YamlParser
|
|
178
|
+
__publicField(YamlParser, "extensions", [
|
|
179
|
+
"yaml",
|
|
180
|
+
"yml"
|
|
181
|
+
]);
|
|
182
|
+
__publicField(YamlParser, "instance");
|
|
154
183
|
|
|
155
184
|
// src/lib/fs/filesystem.service.ts
|
|
156
185
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
157
186
|
|
|
158
|
-
var
|
|
187
|
+
var _FileSystemService = class {
|
|
159
188
|
constructor() {
|
|
160
|
-
|
|
161
|
-
|
|
189
|
+
__publicField(this, "logger");
|
|
190
|
+
if (_FileSystemService.instance) {
|
|
191
|
+
return _FileSystemService.instance;
|
|
162
192
|
} else {
|
|
163
|
-
|
|
193
|
+
_FileSystemService.instance = this;
|
|
164
194
|
this.logger = new Logger(this.constructor.name);
|
|
165
195
|
this.logger.trace("Created a new instance.");
|
|
166
196
|
}
|
|
@@ -169,7 +199,9 @@ var FileSystemService = class {
|
|
|
169
199
|
return _fsextra2.default.existsSync(path);
|
|
170
200
|
}
|
|
171
201
|
stats(path) {
|
|
172
|
-
return _fsextra2.default.statSync(path, {
|
|
202
|
+
return _fsextra2.default.statSync(path, {
|
|
203
|
+
throwIfNoEntry: true
|
|
204
|
+
});
|
|
173
205
|
}
|
|
174
206
|
dirname(path) {
|
|
175
207
|
return _path.dirname.call(void 0, path);
|
|
@@ -195,14 +227,20 @@ var FileSystemService = class {
|
|
|
195
227
|
}
|
|
196
228
|
async write(file, data, options = {}) {
|
|
197
229
|
try {
|
|
198
|
-
await _fsextra2.default.writeFile(file, data, typeof options === "object" ? {
|
|
230
|
+
await _fsextra2.default.writeFile(file, data, typeof options === "object" ? {
|
|
231
|
+
encoding: "utf-8",
|
|
232
|
+
...options
|
|
233
|
+
} : options);
|
|
199
234
|
} catch (e) {
|
|
200
235
|
throw new Error(`Error while writing file to "${file}": ${e.message}`);
|
|
201
236
|
}
|
|
202
237
|
}
|
|
203
238
|
writeSync(file, data, options = {}) {
|
|
204
239
|
try {
|
|
205
|
-
_fsextra2.default.writeFileSync(file, data, typeof options === "object" ? {
|
|
240
|
+
_fsextra2.default.writeFileSync(file, data, typeof options === "object" ? {
|
|
241
|
+
encoding: "utf-8",
|
|
242
|
+
...options
|
|
243
|
+
} : options);
|
|
206
244
|
} catch (e) {
|
|
207
245
|
throw new Error(`Error while writing file to "${file}": ${e.message}`);
|
|
208
246
|
}
|
|
@@ -278,21 +316,29 @@ var FileSystemService = class {
|
|
|
278
316
|
}
|
|
279
317
|
}
|
|
280
318
|
};
|
|
319
|
+
var FileSystemService = _FileSystemService;
|
|
281
320
|
__name(FileSystemService, "FileSystemService");
|
|
321
|
+
__publicField(FileSystemService, "instance");
|
|
282
322
|
|
|
283
323
|
// src/lib/parser/parser.service.ts
|
|
284
|
-
var
|
|
324
|
+
var _ParserService = class {
|
|
285
325
|
constructor(parsers) {
|
|
286
|
-
this
|
|
287
|
-
|
|
288
|
-
|
|
326
|
+
__publicField(this, "parsers", [
|
|
327
|
+
YamlParser,
|
|
328
|
+
JsonParser,
|
|
329
|
+
EnvironmentVariableParser
|
|
330
|
+
]);
|
|
331
|
+
__publicField(this, "logger");
|
|
332
|
+
__publicField(this, "fs");
|
|
333
|
+
if (_ParserService.instance) {
|
|
334
|
+
return _ParserService.instance;
|
|
289
335
|
} else {
|
|
290
336
|
if (parsers) {
|
|
291
337
|
this.parsers = parsers;
|
|
292
338
|
}
|
|
293
339
|
this.logger = new Logger(this.constructor.name);
|
|
294
340
|
this.fs = new FileSystemService();
|
|
295
|
-
|
|
341
|
+
_ParserService.instance = this;
|
|
296
342
|
this.logger.trace("Created a new instance.");
|
|
297
343
|
}
|
|
298
344
|
}
|
|
@@ -306,17 +352,11 @@ var ParserService = class {
|
|
|
306
352
|
}
|
|
307
353
|
setParsers(...parsers) {
|
|
308
354
|
this.parsers = parsers;
|
|
309
|
-
this.logger.trace(
|
|
310
|
-
"Set parsers: %s",
|
|
311
|
-
this.parsers.map((p) => p.name)
|
|
312
|
-
);
|
|
355
|
+
this.logger.trace("Set parsers: %s", this.parsers.map((p) => p.name));
|
|
313
356
|
}
|
|
314
357
|
addParsers(...parsers) {
|
|
315
358
|
this.parsers.push(...parsers);
|
|
316
|
-
this.logger.trace(
|
|
317
|
-
"Added parser, current parsers: %s",
|
|
318
|
-
this.parsers.map((p) => p.name)
|
|
319
|
-
);
|
|
359
|
+
this.logger.trace("Added parser, current parsers: %s", this.parsers.map((p) => p.name));
|
|
320
360
|
}
|
|
321
361
|
async read(file) {
|
|
322
362
|
return this.parse(file, await this.fs.read(file));
|
|
@@ -335,38 +375,48 @@ var ParserService = class {
|
|
|
335
375
|
return parser.stringify(data);
|
|
336
376
|
}
|
|
337
377
|
};
|
|
378
|
+
var ParserService = _ParserService;
|
|
338
379
|
__name(ParserService, "ParserService");
|
|
380
|
+
__publicField(ParserService, "instance");
|
|
339
381
|
|
|
340
382
|
// src/utils/color.ts
|
|
341
383
|
var _colorette = require('colorette'); var colorette = _interopRequireWildcard(_colorette);
|
|
342
|
-
var color = colorette.createColors({
|
|
384
|
+
var color = colorette.createColors({
|
|
385
|
+
useColor: true
|
|
386
|
+
});
|
|
343
387
|
|
|
344
388
|
// src/utils/environment.ts
|
|
345
389
|
function isVerbose(logLevel) {
|
|
346
|
-
return logLevel ===
|
|
390
|
+
return logLevel === LogLevels.VERBOSE;
|
|
347
391
|
}
|
|
348
392
|
__name(isVerbose, "isVerbose");
|
|
349
393
|
function isDebug(logLevel) {
|
|
350
|
-
return [
|
|
394
|
+
return [
|
|
395
|
+
LogLevels.DEBUG,
|
|
396
|
+
LogLevels.TRACE
|
|
397
|
+
].includes(logLevel);
|
|
351
398
|
}
|
|
352
399
|
__name(isDebug, "isDebug");
|
|
353
400
|
function isSilent(logLevel) {
|
|
354
|
-
return logLevel ===
|
|
401
|
+
return logLevel === LogLevels.SILENT;
|
|
355
402
|
}
|
|
356
403
|
__name(isSilent, "isSilent");
|
|
357
404
|
|
|
358
405
|
// src/utils/merge.constants.ts
|
|
359
|
-
var MergeStrategy
|
|
406
|
+
var MergeStrategy;
|
|
407
|
+
(function(MergeStrategy2) {
|
|
360
408
|
MergeStrategy2["OVERWRITE"] = "OVERWRITE";
|
|
361
409
|
MergeStrategy2["EXTEND"] = "EXTEND";
|
|
362
|
-
|
|
363
|
-
})(MergeStrategy || {});
|
|
410
|
+
})(MergeStrategy || (MergeStrategy = exports.MergeStrategy = {}));
|
|
364
411
|
|
|
365
412
|
// src/utils/merge.ts
|
|
366
413
|
var _deepmerge = require('deepmerge'); var _deepmerge2 = _interopRequireDefault(_deepmerge);
|
|
367
414
|
function merge(strategy, ...source) {
|
|
368
415
|
return _deepmerge2.default.all(source, {
|
|
369
|
-
arrayMerge: strategy ===
|
|
416
|
+
arrayMerge: strategy === MergeStrategy.EXTEND ? (dest, src) => [
|
|
417
|
+
...dest,
|
|
418
|
+
...src
|
|
419
|
+
].filter(uniqueFilter) : (_, src) => src
|
|
370
420
|
});
|
|
371
421
|
}
|
|
372
422
|
__name(merge, "merge");
|
|
@@ -399,20 +449,34 @@ __name(setCtxAssign, "setCtxAssign");
|
|
|
399
449
|
|
|
400
450
|
|
|
401
451
|
// src/lib/config/config.service.ts
|
|
402
|
-
var
|
|
452
|
+
var _ConfigService = class {
|
|
403
453
|
constructor(oclif, command, config) {
|
|
454
|
+
__publicField(this, "oclif");
|
|
455
|
+
__publicField(this, "command");
|
|
456
|
+
__publicField(this, "defaults");
|
|
457
|
+
__publicField(this, "root");
|
|
458
|
+
__publicField(this, "parser");
|
|
459
|
+
__publicField(this, "logLevel");
|
|
460
|
+
__publicField(this, "isVerbose");
|
|
461
|
+
__publicField(this, "isDebug");
|
|
462
|
+
__publicField(this, "isSilent");
|
|
463
|
+
__publicField(this, "ci");
|
|
464
|
+
__publicField(this, "json");
|
|
465
|
+
__publicField(this, "logger");
|
|
404
466
|
this.oclif = oclif;
|
|
405
467
|
this.command = command;
|
|
406
|
-
if (
|
|
407
|
-
return
|
|
468
|
+
if (_ConfigService.instance) {
|
|
469
|
+
return _ConfigService.instance;
|
|
408
470
|
}
|
|
409
471
|
this.root = this.oclif.root;
|
|
410
|
-
this.defaults = _path.join.call(void 0, this.oclif.root,
|
|
411
|
-
this.logger = new Logger(this.constructor.name, {
|
|
472
|
+
this.defaults = _path.join.call(void 0, this.oclif.root, FileConstants.CONFIG_SERVICE_DEFAULTS_DIR);
|
|
473
|
+
this.logger = new Logger(this.constructor.name, {
|
|
474
|
+
level: config.logLevel
|
|
475
|
+
});
|
|
412
476
|
Object.assign(this, config);
|
|
413
477
|
this.recalculate();
|
|
414
478
|
this.parser = new ParserService();
|
|
415
|
-
|
|
479
|
+
_ConfigService.instance = this;
|
|
416
480
|
this.logger.trace("Created a new instance.");
|
|
417
481
|
}
|
|
418
482
|
async read(path) {
|
|
@@ -420,22 +484,20 @@ var ConfigService = class {
|
|
|
420
484
|
this.logger.trace("Read config from: %s", path);
|
|
421
485
|
return config;
|
|
422
486
|
}
|
|
423
|
-
async extend(paths, strategy =
|
|
487
|
+
async extend(paths, strategy = MergeStrategy.OVERWRITE) {
|
|
424
488
|
this.logger.trace("Will generate config from: %o with %s", paths, strategy);
|
|
425
|
-
const configs = (await Promise.all(
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
})
|
|
435
|
-
)).filter(Boolean);
|
|
489
|
+
const configs = (await Promise.all(paths.map(async (path) => {
|
|
490
|
+
try {
|
|
491
|
+
const config = typeof path === "string" ? await this.parser.read(path) : path;
|
|
492
|
+
this.logger.trace("Extending config from: %s", path);
|
|
493
|
+
return config;
|
|
494
|
+
} catch (e) {
|
|
495
|
+
this.logger.trace("Failed to extend config from: %s", e.message);
|
|
496
|
+
}
|
|
497
|
+
}))).filter(Boolean);
|
|
436
498
|
return this.merge(configs, strategy);
|
|
437
499
|
}
|
|
438
|
-
merge(configs, strategy =
|
|
500
|
+
merge(configs, strategy = MergeStrategy.OVERWRITE) {
|
|
439
501
|
if (configs.length === 0) {
|
|
440
502
|
throw new Error("Nothing to merge, configuration files are empty.");
|
|
441
503
|
}
|
|
@@ -445,35 +507,44 @@ var ConfigService = class {
|
|
|
445
507
|
const env = typeof definition === "string" ? await this.parser.read(definition) : definition;
|
|
446
508
|
this.logger.trace("Environment variable extensions read: %o", definition);
|
|
447
509
|
const iter = /* @__PURE__ */ __name(async (obj, parent) => {
|
|
448
|
-
const data = await Promise.all(
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}
|
|
459
|
-
if ("__name" /* NAME */ in value && "__format" /* PARSER */ in value) {
|
|
460
|
-
const variable = [
|
|
461
|
-
{
|
|
462
|
-
key: location,
|
|
463
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
464
|
-
env: value["__name" /* NAME */],
|
|
465
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
466
|
-
parser: value["__format" /* PARSER */],
|
|
467
|
-
extensions
|
|
468
|
-
}
|
|
469
|
-
];
|
|
470
|
-
return variable;
|
|
471
|
-
} else {
|
|
472
|
-
return iter(value, location);
|
|
510
|
+
const data = await Promise.all(Object.entries(obj).map(async ([key, value]) => {
|
|
511
|
+
const location = [
|
|
512
|
+
..._nullishCoalesce(parent, () => ( [])),
|
|
513
|
+
key
|
|
514
|
+
];
|
|
515
|
+
if (typeof value === "string") {
|
|
516
|
+
return [
|
|
517
|
+
{
|
|
518
|
+
key: location,
|
|
519
|
+
env: value
|
|
473
520
|
}
|
|
521
|
+
];
|
|
522
|
+
} else if (typeof value === "object") {
|
|
523
|
+
let extensions;
|
|
524
|
+
if (ConfigEnvKeys.ELEMENT in value) {
|
|
525
|
+
extensions = await iter(value[ConfigEnvKeys.ELEMENT], [
|
|
526
|
+
...location,
|
|
527
|
+
ConfigEnvKeys.ELEMENT
|
|
528
|
+
]);
|
|
529
|
+
this.logger.trace("Expanding location to elements: %s -> %s", location, extensions.map((extension) => extension.key.join(".")).join(", "));
|
|
474
530
|
}
|
|
475
|
-
|
|
476
|
-
|
|
531
|
+
if (ConfigEnvKeys.NAME in value && ConfigEnvKeys.PARSER in value) {
|
|
532
|
+
const variable = [
|
|
533
|
+
{
|
|
534
|
+
key: location,
|
|
535
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
536
|
+
env: value[ConfigEnvKeys.NAME],
|
|
537
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
538
|
+
parser: value[ConfigEnvKeys.PARSER],
|
|
539
|
+
extensions
|
|
540
|
+
}
|
|
541
|
+
];
|
|
542
|
+
return variable;
|
|
543
|
+
} else {
|
|
544
|
+
return iter(value, location);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}));
|
|
477
548
|
return data.flatMap((d) => d).filter(Boolean);
|
|
478
549
|
}, "iter");
|
|
479
550
|
const parsed = await iter(env);
|
|
@@ -504,8 +575,8 @@ var ConfigService = class {
|
|
|
504
575
|
}
|
|
505
576
|
const extensions = variable.extensions.map((extension) => {
|
|
506
577
|
const clone = JSON.parse(JSON.stringify(extension));
|
|
507
|
-
clone.env = clone.env.replace(
|
|
508
|
-
clone.key[clone.key.findIndex((value) => value ===
|
|
578
|
+
clone.env = clone.env.replace(ConfigEnvKeys.ELEMENT_REPLACER, i.toString());
|
|
579
|
+
clone.key[clone.key.findIndex((value) => value === ConfigEnvKeys.ELEMENT)] = i.toString();
|
|
509
580
|
data = process.env[clone.env];
|
|
510
581
|
if (!data) {
|
|
511
582
|
this.logger.trace("No extension for environment variable: %s -> %s", clone.key.join("."), clone.env);
|
|
@@ -532,12 +603,21 @@ var ConfigService = class {
|
|
|
532
603
|
this.isSilent = isSilent(this.logLevel);
|
|
533
604
|
}
|
|
534
605
|
};
|
|
606
|
+
var ConfigService = _ConfigService;
|
|
535
607
|
__name(ConfigService, "ConfigService");
|
|
608
|
+
__publicField(ConfigService, "instance");
|
|
536
609
|
|
|
537
610
|
// src/lib/locker/locker.service.ts
|
|
538
611
|
|
|
539
612
|
var LockerService = class {
|
|
540
613
|
constructor(file, parser, root, context) {
|
|
614
|
+
__publicField(this, "file");
|
|
615
|
+
__publicField(this, "parser");
|
|
616
|
+
__publicField(this, "root");
|
|
617
|
+
__publicField(this, "toLock");
|
|
618
|
+
__publicField(this, "toUnlock");
|
|
619
|
+
__publicField(this, "logger");
|
|
620
|
+
__publicField(this, "fs");
|
|
541
621
|
this.file = file;
|
|
542
622
|
this.parser = parser;
|
|
543
623
|
this.root = root;
|
|
@@ -557,10 +637,16 @@ var LockerService = class {
|
|
|
557
637
|
return this.toUnlock.length > 0;
|
|
558
638
|
}
|
|
559
639
|
addLock(...data) {
|
|
560
|
-
this.toLock = [
|
|
640
|
+
this.toLock = [
|
|
641
|
+
...this.toLock,
|
|
642
|
+
...data
|
|
643
|
+
];
|
|
561
644
|
}
|
|
562
645
|
addUnlock(...data) {
|
|
563
|
-
this.toUnlock = [
|
|
646
|
+
this.toUnlock = [
|
|
647
|
+
...this.toUnlock,
|
|
648
|
+
...data
|
|
649
|
+
];
|
|
564
650
|
}
|
|
565
651
|
async lockAll() {
|
|
566
652
|
if (this.hasLock()) {
|
|
@@ -654,7 +740,10 @@ var LockerService = class {
|
|
|
654
740
|
}
|
|
655
741
|
buildPath(d) {
|
|
656
742
|
if (_optionalChain([d, 'optionalAccess', _13 => _13.root]) !== true && _optionalChain([this, 'access', _14 => _14.root, 'optionalAccess', _15 => _15.length])) {
|
|
657
|
-
return [
|
|
743
|
+
return [
|
|
744
|
+
...this.root,
|
|
745
|
+
...this.normalizePath(d.path)
|
|
746
|
+
];
|
|
658
747
|
}
|
|
659
748
|
return this.normalizePath(d.path);
|
|
660
749
|
}
|
|
@@ -670,13 +759,13 @@ var LockerService = class {
|
|
|
670
759
|
__name(LockerService, "LockerService");
|
|
671
760
|
|
|
672
761
|
// src/lib/store/store.service.ts
|
|
673
|
-
var
|
|
762
|
+
var _StoreService = class {
|
|
674
763
|
constructor() {
|
|
675
|
-
this
|
|
676
|
-
if (
|
|
677
|
-
return
|
|
764
|
+
__publicField(this, "store", {});
|
|
765
|
+
if (_StoreService.instance) {
|
|
766
|
+
return _StoreService.instance;
|
|
678
767
|
} else {
|
|
679
|
-
|
|
768
|
+
_StoreService.instance = this;
|
|
680
769
|
}
|
|
681
770
|
}
|
|
682
771
|
has(key) {
|
|
@@ -690,16 +779,20 @@ var StoreService = class {
|
|
|
690
779
|
return data;
|
|
691
780
|
}
|
|
692
781
|
};
|
|
782
|
+
var StoreService = _StoreService;
|
|
693
783
|
__name(StoreService, "StoreService");
|
|
784
|
+
__publicField(StoreService, "instance");
|
|
694
785
|
|
|
695
786
|
// src/lib/validator/validator.service.ts
|
|
696
787
|
var _classtransformer = require('class-transformer');
|
|
697
788
|
var _classvalidator = require('class-validator');
|
|
698
|
-
var
|
|
789
|
+
var _ValidatorService = class {
|
|
699
790
|
constructor(options) {
|
|
791
|
+
__publicField(this, "options");
|
|
792
|
+
__publicField(this, "logger");
|
|
700
793
|
this.options = options;
|
|
701
|
-
if (
|
|
702
|
-
return
|
|
794
|
+
if (_ValidatorService.instance) {
|
|
795
|
+
return _ValidatorService.instance;
|
|
703
796
|
}
|
|
704
797
|
this.options = {
|
|
705
798
|
validator: {
|
|
@@ -708,16 +801,24 @@ var ValidatorService = class {
|
|
|
708
801
|
always: true,
|
|
709
802
|
enableDebugMessages: true
|
|
710
803
|
},
|
|
711
|
-
transformer: {
|
|
804
|
+
transformer: {
|
|
805
|
+
enableImplicitConversion: true
|
|
806
|
+
},
|
|
712
807
|
..._nullishCoalesce(options, () => ( {}))
|
|
713
808
|
};
|
|
714
809
|
this.logger = new Logger(this.constructor.name);
|
|
715
|
-
|
|
810
|
+
_ValidatorService.instance = this;
|
|
716
811
|
this.logger.trace("Created a new instance.");
|
|
717
812
|
}
|
|
718
813
|
async validate(classType, object, options) {
|
|
719
|
-
const classObject = _classtransformer.plainToClass.call(void 0, classType, object, {
|
|
720
|
-
|
|
814
|
+
const classObject = _classtransformer.plainToClass.call(void 0, classType, object, {
|
|
815
|
+
...this.options.transformer,
|
|
816
|
+
..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _16 => _16.transformer]), () => ( {}))
|
|
817
|
+
});
|
|
818
|
+
const errors = await _classvalidator.validate.call(void 0, classObject, {
|
|
819
|
+
...this.options.validator,
|
|
820
|
+
..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _17 => _17.validator]), () => ( {}))
|
|
821
|
+
});
|
|
721
822
|
if (errors.length) {
|
|
722
823
|
errors.forEach((error) => {
|
|
723
824
|
this.logValidationError(error);
|
|
@@ -727,8 +828,14 @@ var ValidatorService = class {
|
|
|
727
828
|
return classObject;
|
|
728
829
|
}
|
|
729
830
|
validateSync(classType, object, options) {
|
|
730
|
-
const classObject = _classtransformer.plainToClass.call(void 0, classType, object, {
|
|
731
|
-
|
|
831
|
+
const classObject = _classtransformer.plainToClass.call(void 0, classType, object, {
|
|
832
|
+
...this.options.transformer,
|
|
833
|
+
..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _18 => _18.transformer]), () => ( {}))
|
|
834
|
+
});
|
|
835
|
+
const errors = _classvalidator.validateSync.call(void 0, classObject, {
|
|
836
|
+
...this.options.validator,
|
|
837
|
+
..._nullishCoalesce(_optionalChain([options, 'optionalAccess', _19 => _19.validator]), () => ( {}))
|
|
838
|
+
});
|
|
732
839
|
if (errors.length) {
|
|
733
840
|
errors.forEach((error) => {
|
|
734
841
|
this.logValidationError(error);
|
|
@@ -741,7 +848,9 @@ var ValidatorService = class {
|
|
|
741
848
|
this.logger.error('Field "%s" failed validation with value "%s": %o', err.property, err.value, err.constraints);
|
|
742
849
|
}
|
|
743
850
|
};
|
|
851
|
+
var ValidatorService = _ValidatorService;
|
|
744
852
|
__name(ValidatorService, "ValidatorService");
|
|
853
|
+
__publicField(ValidatorService, "instance");
|
|
745
854
|
|
|
746
855
|
// src/lib/setup.ts
|
|
747
856
|
function setup() {
|
|
@@ -779,14 +888,17 @@ function setup() {
|
|
|
779
888
|
__name(setup, "setup");
|
|
780
889
|
|
|
781
890
|
// src/utils/logger/logger.ts
|
|
782
|
-
var
|
|
891
|
+
var _Logger = class {
|
|
783
892
|
constructor(context, options) {
|
|
893
|
+
__publicField(this, "context");
|
|
894
|
+
__publicField(this, "options");
|
|
895
|
+
__publicField(this, "logger");
|
|
784
896
|
this.context = context;
|
|
785
897
|
this.options = options;
|
|
786
|
-
if (
|
|
787
|
-
this.logger =
|
|
898
|
+
if (_Logger.instance) {
|
|
899
|
+
this.logger = _Logger.instance;
|
|
788
900
|
} else if (context === ConfigService.name) {
|
|
789
|
-
const level = Object.values(LogLevels).includes(_optionalChain([options, 'optionalAccess', _20 => _20.level])) ? options.level :
|
|
901
|
+
const level = Object.values(LogLevels).includes(_optionalChain([options, 'optionalAccess', _20 => _20.level])) ? options.level : LogLevels.INFO;
|
|
790
902
|
this.options = {
|
|
791
903
|
useIcons: true,
|
|
792
904
|
...options,
|
|
@@ -794,7 +906,7 @@ var Logger = class {
|
|
|
794
906
|
};
|
|
795
907
|
this.logger = this.initiateLogger();
|
|
796
908
|
this.trace("Logger singleton initiated from context: %s", context);
|
|
797
|
-
|
|
909
|
+
_Logger.instance = this.logger;
|
|
798
910
|
} else {
|
|
799
911
|
throw new Error("Logger can only be initiated inside the config service context!");
|
|
800
912
|
}
|
|
@@ -803,38 +915,44 @@ var Logger = class {
|
|
|
803
915
|
return this.parseMessage(level, data, args);
|
|
804
916
|
}
|
|
805
917
|
direct(data, ...args) {
|
|
806
|
-
return this.parseMessage(
|
|
918
|
+
return this.parseMessage(LogLevels.DIRECT, data, args);
|
|
807
919
|
}
|
|
808
920
|
fatal(data, ...args) {
|
|
809
|
-
return this.parseMessage(
|
|
921
|
+
return this.parseMessage(LogLevels.FATAL, data, args);
|
|
810
922
|
}
|
|
811
923
|
error(data, ...args) {
|
|
812
|
-
return this.parseMessage(
|
|
924
|
+
return this.parseMessage(LogLevels.ERROR, data, args);
|
|
813
925
|
}
|
|
814
926
|
warn(data, ...args) {
|
|
815
|
-
return this.parseMessage(
|
|
927
|
+
return this.parseMessage(LogLevels.WARN, data, args);
|
|
816
928
|
}
|
|
817
929
|
info(data, ...args) {
|
|
818
|
-
return this.parseMessage(
|
|
930
|
+
return this.parseMessage(LogLevels.INFO, data, args);
|
|
819
931
|
}
|
|
820
932
|
debug(data, ...args) {
|
|
821
|
-
return this.parseMessage(
|
|
933
|
+
return this.parseMessage(LogLevels.DEBUG, data, args);
|
|
822
934
|
}
|
|
823
935
|
verbose(data, ...args) {
|
|
824
|
-
return this.parseMessage(
|
|
936
|
+
return this.parseMessage(LogLevels.VERBOSE, data, args);
|
|
825
937
|
}
|
|
826
938
|
trace(data, ...args) {
|
|
827
|
-
return this.parseMessage(
|
|
939
|
+
return this.parseMessage(LogLevels.TRACE, data, args);
|
|
828
940
|
}
|
|
829
941
|
// status levels
|
|
830
942
|
run(data, ...args) {
|
|
831
|
-
return this.parseMessage(
|
|
943
|
+
return this.parseMessage(LogLevels.INFO, data, args, {
|
|
944
|
+
status: LogFieldStatus.RUN
|
|
945
|
+
});
|
|
832
946
|
}
|
|
833
947
|
end(data, ...args) {
|
|
834
|
-
return this.parseMessage(
|
|
948
|
+
return this.parseMessage(LogLevels.INFO, data, args, {
|
|
949
|
+
status: LogFieldStatus.END
|
|
950
|
+
});
|
|
835
951
|
}
|
|
836
952
|
stage(data, ...args) {
|
|
837
|
-
return this.parseMessage(
|
|
953
|
+
return this.parseMessage(LogLevels.TRACE, data, args, {
|
|
954
|
+
status: LogFieldStatus.STAGE
|
|
955
|
+
});
|
|
838
956
|
}
|
|
839
957
|
initiateLogger() {
|
|
840
958
|
const logFormat = _winston.format.printf(({ level, message, context, status }) => {
|
|
@@ -853,30 +971,40 @@ var Logger = class {
|
|
|
853
971
|
});
|
|
854
972
|
const logger = _winston2.default.createLogger({
|
|
855
973
|
level: this.options.level,
|
|
856
|
-
format: _winston.format.combine(_winston.format.splat(), _winston.format.json({
|
|
974
|
+
format: _winston.format.combine(_winston.format.splat(), _winston.format.json({
|
|
975
|
+
space: 2
|
|
976
|
+
}), _winston.format.prettyPrint(), logFormat),
|
|
857
977
|
levels: Object.values(LogLevels).reduce((o, level, i) => {
|
|
858
978
|
return {
|
|
859
979
|
...o,
|
|
860
980
|
[level]: i
|
|
861
981
|
};
|
|
862
982
|
}, {}),
|
|
863
|
-
silent: this.options.level ===
|
|
983
|
+
silent: this.options.level === LogLevels.SILENT,
|
|
864
984
|
transports: [
|
|
865
985
|
new _winston.transports.Console({
|
|
866
|
-
stderrLevels: [
|
|
986
|
+
stderrLevels: [
|
|
987
|
+
LogLevels.FATAL,
|
|
988
|
+
LogLevels.ERROR
|
|
989
|
+
]
|
|
867
990
|
})
|
|
868
991
|
]
|
|
869
992
|
});
|
|
870
|
-
logger.log(
|
|
993
|
+
logger.log(LogLevels.TRACE, "Initiated new logger with level: %s", this.options.level, {
|
|
994
|
+
context: this.constructor.name
|
|
995
|
+
});
|
|
871
996
|
return logger;
|
|
872
997
|
}
|
|
873
998
|
parseMessage(level, data, args, format2) {
|
|
874
|
-
if (!this.logger && !
|
|
999
|
+
if (!this.logger && !_Logger.instance) {
|
|
875
1000
|
return;
|
|
876
|
-
} else if (
|
|
877
|
-
this.logger =
|
|
1001
|
+
} else if (_Logger.instance) {
|
|
1002
|
+
this.logger = _Logger.instance;
|
|
878
1003
|
}
|
|
879
|
-
this.logger.log(level, data.toString(), ..._nullishCoalesce(args, () => ( [])), {
|
|
1004
|
+
this.logger.log(level, data.toString(), ..._nullishCoalesce(args, () => ( [])), {
|
|
1005
|
+
context: this.context,
|
|
1006
|
+
..._nullishCoalesce(format2, () => ( {}))
|
|
1007
|
+
});
|
|
880
1008
|
}
|
|
881
1009
|
logColoring({ level, message, context, status }) {
|
|
882
1010
|
let icon;
|
|
@@ -887,46 +1015,46 @@ var Logger = class {
|
|
|
887
1015
|
return input;
|
|
888
1016
|
}, "msgColoring");
|
|
889
1017
|
switch (level) {
|
|
890
|
-
case
|
|
1018
|
+
case LogLevels.DIRECT:
|
|
891
1019
|
return message;
|
|
892
|
-
case
|
|
1020
|
+
case LogLevels.FATAL:
|
|
893
1021
|
coloring = /* @__PURE__ */ __name((input) => color.red(input), "coloring");
|
|
894
1022
|
if (_optionalChain([this, 'access', _21 => _21.options, 'optionalAccess', _22 => _22.useIcons])) {
|
|
895
1023
|
icon = _listr2.figures.checkboxOn;
|
|
896
1024
|
}
|
|
897
1025
|
break;
|
|
898
|
-
case
|
|
1026
|
+
case LogLevels.ERROR:
|
|
899
1027
|
coloring = color.red;
|
|
900
1028
|
if (_optionalChain([this, 'access', _23 => _23.options, 'optionalAccess', _24 => _24.useIcons])) {
|
|
901
1029
|
icon = _listr2.figures.cross;
|
|
902
1030
|
}
|
|
903
1031
|
break;
|
|
904
|
-
case
|
|
1032
|
+
case LogLevels.WARN:
|
|
905
1033
|
coloring = color.yellow;
|
|
906
1034
|
if (_optionalChain([this, 'access', _25 => _25.options, 'optionalAccess', _26 => _26.useIcons])) {
|
|
907
1035
|
icon = _listr2.figures.warning;
|
|
908
1036
|
}
|
|
909
1037
|
break;
|
|
910
|
-
case
|
|
1038
|
+
case LogLevels.INFO:
|
|
911
1039
|
coloring = color.green;
|
|
912
1040
|
if (_optionalChain([this, 'access', _27 => _27.options, 'optionalAccess', _28 => _28.useIcons])) {
|
|
913
1041
|
icon = _listr2.figures.pointerSmall;
|
|
914
1042
|
}
|
|
915
1043
|
break;
|
|
916
|
-
case
|
|
1044
|
+
case LogLevels.VERBOSE:
|
|
917
1045
|
coloring = color.dim;
|
|
918
1046
|
if (_optionalChain([this, 'access', _29 => _29.options, 'optionalAccess', _30 => _30.useIcons])) {
|
|
919
1047
|
icon = "\u2607";
|
|
920
1048
|
}
|
|
921
1049
|
break;
|
|
922
|
-
case
|
|
1050
|
+
case LogLevels.DEBUG:
|
|
923
1051
|
coloring = color.cyan;
|
|
924
1052
|
msgColoring = color.dim;
|
|
925
1053
|
if (_optionalChain([this, 'access', _31 => _31.options, 'optionalAccess', _32 => _32.useIcons])) {
|
|
926
1054
|
icon = "\uF188";
|
|
927
1055
|
}
|
|
928
1056
|
break;
|
|
929
|
-
case
|
|
1057
|
+
case LogLevels.TRACE:
|
|
930
1058
|
coloring = color.magenta;
|
|
931
1059
|
msgColoring = color.dim;
|
|
932
1060
|
if (_optionalChain([this, 'access', _33 => _33.options, 'optionalAccess', _34 => _34.useIcons])) {
|
|
@@ -940,37 +1068,50 @@ var Logger = class {
|
|
|
940
1068
|
return `${coloring(icon)}${context ? " " + coloring(`[${context}]`) : ""}${status ? " " + coloring(`[${status}]`) : ""} ${msgColoring(message)}`;
|
|
941
1069
|
}
|
|
942
1070
|
};
|
|
1071
|
+
var Logger = _Logger;
|
|
943
1072
|
__name(Logger, "Logger");
|
|
1073
|
+
__publicField(Logger, "instance");
|
|
944
1074
|
|
|
945
1075
|
// src/utils/logger/listr-logger.ts
|
|
946
1076
|
var ListrLogger = class extends _listr2.Logger {
|
|
947
1077
|
constructor(context) {
|
|
948
1078
|
super();
|
|
1079
|
+
__publicField(this, "logger");
|
|
949
1080
|
this.logger = new Logger(context);
|
|
950
1081
|
}
|
|
951
1082
|
fail(message) {
|
|
952
1083
|
this.logger.error(message);
|
|
953
1084
|
}
|
|
954
1085
|
skip(message) {
|
|
955
|
-
this.logger.warn(message, {
|
|
1086
|
+
this.logger.warn(message, {
|
|
1087
|
+
status: "skip"
|
|
1088
|
+
});
|
|
956
1089
|
}
|
|
957
1090
|
success(message) {
|
|
958
|
-
this.logger.info(message, {
|
|
1091
|
+
this.logger.info(message, {
|
|
1092
|
+
status: "end"
|
|
1093
|
+
});
|
|
959
1094
|
}
|
|
960
1095
|
data(message) {
|
|
961
1096
|
this.logger.info(message);
|
|
962
1097
|
}
|
|
963
1098
|
start(message) {
|
|
964
|
-
this.logger.info(message, {
|
|
1099
|
+
this.logger.info(message, {
|
|
1100
|
+
status: "run"
|
|
1101
|
+
});
|
|
965
1102
|
}
|
|
966
1103
|
title(message) {
|
|
967
1104
|
this.logger.info(message);
|
|
968
1105
|
}
|
|
969
1106
|
retry(message) {
|
|
970
|
-
this.logger.warn(message, {
|
|
1107
|
+
this.logger.warn(message, {
|
|
1108
|
+
status: "retry"
|
|
1109
|
+
});
|
|
971
1110
|
}
|
|
972
1111
|
rollback(message) {
|
|
973
|
-
this.logger.error(message, {
|
|
1112
|
+
this.logger.error(message, {
|
|
1113
|
+
status: "rollback"
|
|
1114
|
+
});
|
|
974
1115
|
}
|
|
975
1116
|
};
|
|
976
1117
|
__name(ListrLogger, "ListrLogger");
|
|
@@ -991,42 +1132,54 @@ __name(pipeProcessThroughListr, "pipeProcessThroughListr");
|
|
|
991
1132
|
|
|
992
1133
|
function pipeProcessToLogger(logger, instance, options) {
|
|
993
1134
|
options = {
|
|
994
|
-
start:
|
|
995
|
-
end:
|
|
996
|
-
stdout:
|
|
997
|
-
stderr:
|
|
1135
|
+
start: LogLevels.INFO,
|
|
1136
|
+
end: LogLevels.INFO,
|
|
1137
|
+
stdout: LogLevels.INFO,
|
|
1138
|
+
stderr: LogLevels.WARN,
|
|
998
1139
|
...options
|
|
999
1140
|
};
|
|
1000
1141
|
if (options.start) {
|
|
1001
|
-
logger.run(instance.spawnargs.join(" "), {
|
|
1142
|
+
logger.run(instance.spawnargs.join(" "), {
|
|
1143
|
+
level: options.start,
|
|
1144
|
+
context: options.context
|
|
1145
|
+
});
|
|
1002
1146
|
}
|
|
1003
1147
|
if (instance.stdout) {
|
|
1004
|
-
instance.stdout.pipe(
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
})
|
|
1008
|
-
);
|
|
1148
|
+
instance.stdout.pipe(_through2.default.call(void 0, (chunk) => {
|
|
1149
|
+
logger.log(options.stdout, chunk, {
|
|
1150
|
+
context: options.context
|
|
1151
|
+
});
|
|
1152
|
+
}));
|
|
1009
1153
|
}
|
|
1010
1154
|
if (instance.stderr) {
|
|
1011
|
-
instance.stderr.pipe(
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
})
|
|
1015
|
-
);
|
|
1155
|
+
instance.stderr.pipe(_through2.default.call(void 0, (chunk) => {
|
|
1156
|
+
logger.log(options.stderr, chunk, {
|
|
1157
|
+
context: options.context
|
|
1158
|
+
});
|
|
1159
|
+
}));
|
|
1016
1160
|
}
|
|
1017
1161
|
void instance.on("exit", (code, signal) => {
|
|
1018
1162
|
const message = `Process ended with code ${code}${signal ? ` and signal ${signal}` : ""}.`;
|
|
1019
|
-
logger.debug(message, {
|
|
1163
|
+
logger.debug(message, {
|
|
1164
|
+
context: options.context
|
|
1165
|
+
});
|
|
1020
1166
|
if (options.end) {
|
|
1021
|
-
logger.end(instance.spawnargs.join(" "), {
|
|
1167
|
+
logger.end(instance.spawnargs.join(" "), {
|
|
1168
|
+
level: options.end,
|
|
1169
|
+
context: options.context
|
|
1170
|
+
});
|
|
1022
1171
|
}
|
|
1023
1172
|
if (_optionalChain([options, 'optionalAccess', _39 => _39.callback])) {
|
|
1024
1173
|
options.callback();
|
|
1025
1174
|
}
|
|
1026
1175
|
});
|
|
1027
1176
|
void instance.on("error", (error) => {
|
|
1028
|
-
logger.fatal(error.message, {
|
|
1029
|
-
|
|
1177
|
+
logger.fatal(error.message, {
|
|
1178
|
+
context: options.context
|
|
1179
|
+
});
|
|
1180
|
+
logger.debug(error.stack, {
|
|
1181
|
+
context: options.context
|
|
1182
|
+
});
|
|
1030
1183
|
if (_optionalChain([options, 'optionalAccess', _40 => _40.callback])) {
|
|
1031
1184
|
options.callback(error);
|
|
1032
1185
|
}
|
|
@@ -1038,11 +1191,11 @@ __name(pipeProcessToLogger, "pipeProcessToLogger");
|
|
|
1038
1191
|
// src/constants/global-flags.constants.ts
|
|
1039
1192
|
var CLI_FLAGS = {
|
|
1040
1193
|
["log-level"]: _core.Flags.string({
|
|
1041
|
-
default:
|
|
1194
|
+
default: LogLevels.INFO,
|
|
1042
1195
|
env: "LOG_LEVEL",
|
|
1043
1196
|
description: "Set the log level of the application.",
|
|
1044
1197
|
options: Object.values(LogLevels).map((level) => level.toLowerCase()),
|
|
1045
|
-
helpGroup:
|
|
1198
|
+
helpGroup: HelpGroups.CLI,
|
|
1046
1199
|
parse: async (input) => _optionalChain([input, 'optionalAccess', _41 => _41.toUpperCase, 'call', _42 => _42()])
|
|
1047
1200
|
}),
|
|
1048
1201
|
ci: _core.Flags.boolean({
|
|
@@ -1050,14 +1203,14 @@ var CLI_FLAGS = {
|
|
|
1050
1203
|
hidden: true,
|
|
1051
1204
|
env: "CI",
|
|
1052
1205
|
description: "Instruct whether this is running the CI/CD configuration.",
|
|
1053
|
-
helpGroup:
|
|
1206
|
+
helpGroup: HelpGroups.CLI
|
|
1054
1207
|
}),
|
|
1055
1208
|
json: _core.Flags.boolean({
|
|
1056
1209
|
default: false,
|
|
1057
1210
|
hidden: true,
|
|
1058
1211
|
env: "JSON",
|
|
1059
1212
|
description: "Put the CLI to respond in JSON.",
|
|
1060
|
-
helpGroup:
|
|
1213
|
+
helpGroup: HelpGroups.CLI
|
|
1061
1214
|
})
|
|
1062
1215
|
};
|
|
1063
1216
|
|
|
@@ -1065,8 +1218,16 @@ var CLI_FLAGS = {
|
|
|
1065
1218
|
var Command = class extends _core.Command {
|
|
1066
1219
|
constructor() {
|
|
1067
1220
|
super(...arguments);
|
|
1068
|
-
this
|
|
1069
|
-
this
|
|
1221
|
+
__publicField(this, "context");
|
|
1222
|
+
__publicField(this, "logger");
|
|
1223
|
+
__publicField(this, "tasks");
|
|
1224
|
+
__publicField(this, "validator");
|
|
1225
|
+
__publicField(this, "cs");
|
|
1226
|
+
__publicField(this, "parser");
|
|
1227
|
+
__publicField(this, "fs");
|
|
1228
|
+
__publicField(this, "store");
|
|
1229
|
+
__publicField(this, "flags", {});
|
|
1230
|
+
__publicField(this, "args", {});
|
|
1070
1231
|
}
|
|
1071
1232
|
static get baseFlags() {
|
|
1072
1233
|
return this._baseFlags;
|
|
@@ -1076,14 +1237,14 @@ var Command = class extends _core.Command {
|
|
|
1076
1237
|
this.flags = {};
|
|
1077
1238
|
}
|
|
1078
1239
|
/**
|
|
1079
|
-
|
|
1080
|
-
|
|
1240
|
+
* Construct the class if you dont want to extend init or constructor.
|
|
1241
|
+
*/
|
|
1081
1242
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1082
1243
|
shouldRunBefore() {
|
|
1083
1244
|
}
|
|
1084
1245
|
/**
|
|
1085
|
-
|
|
1086
|
-
|
|
1246
|
+
* Deconstruct the class if you dont want to extend finally or catch.
|
|
1247
|
+
*/
|
|
1087
1248
|
// eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
|
|
1088
1249
|
shouldRunAfter(_ctx) {
|
|
1089
1250
|
}
|
|
@@ -1108,7 +1269,9 @@ var Command = class extends _core.Command {
|
|
|
1108
1269
|
return result;
|
|
1109
1270
|
}
|
|
1110
1271
|
exit(code) {
|
|
1111
|
-
this.logger.trace("Code -> %d", code, {
|
|
1272
|
+
this.logger.trace("Code -> %d", code, {
|
|
1273
|
+
status: LogFieldStatus.EXIT
|
|
1274
|
+
});
|
|
1112
1275
|
process.exit(_nullishCoalesce(code, () => ( 0)));
|
|
1113
1276
|
}
|
|
1114
1277
|
/** Run all tasks from task manager. */
|
|
@@ -1124,11 +1287,15 @@ var Command = class extends _core.Command {
|
|
|
1124
1287
|
}
|
|
1125
1288
|
setCtxDefaults(...defaults) {
|
|
1126
1289
|
setCtxDefaults(this.tasks.options.ctx, ...defaults);
|
|
1127
|
-
this.logger.trace("Updated context with defaults: %o", this.tasks.options.ctx, {
|
|
1290
|
+
this.logger.trace("Updated context with defaults: %o", this.tasks.options.ctx, {
|
|
1291
|
+
status: "ctx"
|
|
1292
|
+
});
|
|
1128
1293
|
}
|
|
1129
1294
|
setCtxAssign(...assigns) {
|
|
1130
1295
|
setCtxAssign(this.tasks.options.ctx, ...assigns);
|
|
1131
|
-
this.logger.trace("Updated context with assign: %o", this.tasks.options.ctx, {
|
|
1296
|
+
this.logger.trace("Updated context with assign: %o", this.tasks.options.ctx, {
|
|
1297
|
+
status: "ctx"
|
|
1298
|
+
});
|
|
1132
1299
|
}
|
|
1133
1300
|
pipeProcessToLogger(instance, options) {
|
|
1134
1301
|
return pipeProcessToLogger(this.logger, instance, options);
|
|
@@ -1155,7 +1322,9 @@ var Command = class extends _core.Command {
|
|
|
1155
1322
|
json: this.flags.json
|
|
1156
1323
|
});
|
|
1157
1324
|
this.context = this.cs.command.id ? this.cs.command.id : this.cs.command.name;
|
|
1158
|
-
this.logger = new Logger(null, {
|
|
1325
|
+
this.logger = new Logger(null, {
|
|
1326
|
+
level: this.cs.logLevel
|
|
1327
|
+
});
|
|
1159
1328
|
this.store = new StoreService();
|
|
1160
1329
|
this.greet();
|
|
1161
1330
|
if (err) {
|
|
@@ -1184,7 +1353,9 @@ var Command = class extends _core.Command {
|
|
|
1184
1353
|
});
|
|
1185
1354
|
}
|
|
1186
1355
|
const terminate = /* @__PURE__ */ __name(() => {
|
|
1187
|
-
this.logger.fatal("Caught terminate signal.", {
|
|
1356
|
+
this.logger.fatal("Caught terminate signal.", {
|
|
1357
|
+
status: LogFieldStatus.TERMINATE
|
|
1358
|
+
});
|
|
1188
1359
|
process.exit(1);
|
|
1189
1360
|
}, "terminate");
|
|
1190
1361
|
process.on("SIGINT", terminate);
|
|
@@ -1201,7 +1372,9 @@ var Command = class extends _core.Command {
|
|
|
1201
1372
|
this.logger.stage("Running shouldRunAfter.");
|
|
1202
1373
|
await this.shouldRunAfter(ctx);
|
|
1203
1374
|
this.logger.stage("Finished shouldRunAfter.");
|
|
1204
|
-
return {
|
|
1375
|
+
return {
|
|
1376
|
+
ctx
|
|
1377
|
+
};
|
|
1205
1378
|
}
|
|
1206
1379
|
/** Catch any error occurred during command. */
|
|
1207
1380
|
// catch all those errors, not verbose
|
|
@@ -1212,7 +1385,9 @@ var Command = class extends _core.Command {
|
|
|
1212
1385
|
console.debug(e.stack);
|
|
1213
1386
|
}
|
|
1214
1387
|
this.logger.fatal(e.message);
|
|
1215
|
-
this.logger.debug(e.stack, {
|
|
1388
|
+
this.logger.debug(e.stack, {
|
|
1389
|
+
context: "crash"
|
|
1390
|
+
});
|
|
1216
1391
|
if (exit > 0) {
|
|
1217
1392
|
this.exit(exit);
|
|
1218
1393
|
}
|
|
@@ -1233,6 +1408,11 @@ __name(Command, "Command");
|
|
|
1233
1408
|
|
|
1234
1409
|
// src/commands/config.command.ts
|
|
1235
1410
|
var ConfigCommand = class extends Command {
|
|
1411
|
+
constructor() {
|
|
1412
|
+
super(...arguments);
|
|
1413
|
+
__publicField(this, "choices");
|
|
1414
|
+
__publicField(this, "locker");
|
|
1415
|
+
}
|
|
1236
1416
|
async run() {
|
|
1237
1417
|
this.logger.stage("Setting up config command.");
|
|
1238
1418
|
const setup2 = await this.setup();
|
|
@@ -1264,17 +1444,28 @@ __name(ConfigCommand, "ConfigCommand");
|
|
|
1264
1444
|
|
|
1265
1445
|
var notFoundHook = /* @__PURE__ */ __name(async (opts) => {
|
|
1266
1446
|
const logger = new Logger(opts.config.name);
|
|
1267
|
-
logger.fatal("Command not found. Take a look at help. You can also use --[h]elp flag for subcommands.", {
|
|
1447
|
+
logger.fatal("Command not found. Take a look at help. You can also use --[h]elp flag for subcommands.", {
|
|
1448
|
+
custom: opts.config.name
|
|
1449
|
+
});
|
|
1268
1450
|
logger.direct("");
|
|
1269
1451
|
const help = new (0, _core.Help)(opts.config);
|
|
1270
|
-
await help.showHelp([
|
|
1452
|
+
await help.showHelp([
|
|
1453
|
+
"--all"
|
|
1454
|
+
]);
|
|
1271
1455
|
process.exit(127);
|
|
1272
1456
|
}, "notFoundHook");
|
|
1273
1457
|
|
|
1274
1458
|
// src/hooks/update-notifier.hook.ts
|
|
1275
|
-
var _updatenotifier = require('update-notifier'); var _updatenotifier2 = _interopRequireDefault(_updatenotifier);
|
|
1276
1459
|
var updateNotifierHook = /* @__PURE__ */ __name(async (opts) => {
|
|
1277
|
-
|
|
1460
|
+
const { default: notifier } = await Promise.resolve().then(() => _interopRequireWildcard(require("update-notifier")));
|
|
1461
|
+
notifier({
|
|
1462
|
+
pkg: {
|
|
1463
|
+
name: opts.config.name,
|
|
1464
|
+
version: opts.config.version
|
|
1465
|
+
}
|
|
1466
|
+
}).notify({
|
|
1467
|
+
isGlobal: true
|
|
1468
|
+
});
|
|
1278
1469
|
}, "updateNotifierHook");
|
|
1279
1470
|
|
|
1280
1471
|
// src/hooks/store.hook.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cenk1cenk2/oclif-common",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.3",
|
|
4
4
|
"description": "Oclif common package for oclif2 projects.",
|
|
5
5
|
"repository": "https://gitlab.kilic.dev/libraries/oclif-tools",
|
|
6
6
|
"author": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"colorette": "^2.0.19",
|
|
60
|
-
"deepmerge": "^4.3.
|
|
60
|
+
"deepmerge": "^4.3.1",
|
|
61
61
|
"object-path-immutable": "^4.1.2",
|
|
62
62
|
"reflect-metadata": "^0.1.13",
|
|
63
63
|
"through": "^2.3.8",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"yaml": "^2.2.1"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@oclif/core": "^2.
|
|
69
|
+
"@oclif/core": "^2.8.0",
|
|
70
70
|
"@types/fs-extra": "^11.0.1",
|
|
71
71
|
"@types/through": "^0.0.30",
|
|
72
72
|
"@types/update-notifier": "^6.0.2",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"class-validator": "^0.14.0",
|
|
75
75
|
"enquirer": "^2.3.6",
|
|
76
76
|
"execa": "^5.1.1",
|
|
77
|
-
"fs-extra": "^11.1.
|
|
77
|
+
"fs-extra": "^11.1.1",
|
|
78
78
|
"listr2": "^5.0.8"
|
|
79
79
|
}
|
|
80
80
|
}
|