@cenk1cenk2/oclif-common 6.2.0 → 6.2.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/index.d.ts +11 -9
- package/dist/index.js +41 -21
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -35,9 +35,9 @@ interface ConfigModuleOptions {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
declare class GenericParser {
|
|
38
|
-
|
|
39
|
-
parse<T = unknown>(data: string | Buffer): T
|
|
40
|
-
stringify<T = any>(data: T): string
|
|
38
|
+
readonly extensions: string[];
|
|
39
|
+
parse<T = unknown>(data: string | Buffer): T;
|
|
40
|
+
stringify<T = any>(data: T): string;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
declare function pipeProcessThroughListr(task: ListrTaskWrapper<any, any, any>, instance: ExecaChildProcess): ExecaChildProcess;
|
|
@@ -126,7 +126,7 @@ declare class LoggerModule {
|
|
|
126
126
|
|
|
127
127
|
declare class EnvironmentVariableParser implements GenericParser {
|
|
128
128
|
private readonly logger;
|
|
129
|
-
|
|
129
|
+
readonly extensions: string[];
|
|
130
130
|
private readonly LINE;
|
|
131
131
|
constructor(logger: LoggerService);
|
|
132
132
|
parse<T = unknown>(data: string | Buffer): T;
|
|
@@ -135,7 +135,7 @@ declare class EnvironmentVariableParser implements GenericParser {
|
|
|
135
135
|
|
|
136
136
|
declare class JsonParser implements GenericParser {
|
|
137
137
|
private readonly logger;
|
|
138
|
-
|
|
138
|
+
readonly extensions: string[];
|
|
139
139
|
constructor(logger: LoggerService);
|
|
140
140
|
parse<T = unknown>(data: string | Buffer): T;
|
|
141
141
|
stringify<T = any>(data: T): string;
|
|
@@ -143,7 +143,7 @@ declare class JsonParser implements GenericParser {
|
|
|
143
143
|
|
|
144
144
|
declare class YamlParser implements GenericParser {
|
|
145
145
|
private readonly logger;
|
|
146
|
-
|
|
146
|
+
readonly extensions: string[];
|
|
147
147
|
constructor(logger: LoggerService);
|
|
148
148
|
parse<T = unknown>(data: string | Buffer): T;
|
|
149
149
|
stringify<T = any>(data: T): string;
|
|
@@ -183,7 +183,7 @@ declare class ParserService {
|
|
|
183
183
|
private moduleRef;
|
|
184
184
|
private fs;
|
|
185
185
|
private readonly logger;
|
|
186
|
-
|
|
186
|
+
private readonly instances;
|
|
187
187
|
constructor(moduleRef: ModuleRef, fs: FileSystemService, logger: LoggerService);
|
|
188
188
|
byFt(file: string): GenericParser;
|
|
189
189
|
fetch<T extends GenericParser>(Parser: ClassType<T>): T;
|
|
@@ -191,8 +191,10 @@ declare class ParserService {
|
|
|
191
191
|
register(...parsers: ClassType<GenericParser>[]): Promise<void>;
|
|
192
192
|
read<T = unknown>(file: string): Promise<T>;
|
|
193
193
|
write<T = LockableData>(file: string, data: T): Promise<void>;
|
|
194
|
-
parse<T = unknown>(file: string, data: string | Buffer):
|
|
195
|
-
|
|
194
|
+
parse<T = unknown>(file: string, data: string | Buffer): T;
|
|
195
|
+
parseWith<T = unknown>(Parser: ClassType<GenericParser>, data: string | Buffer): T;
|
|
196
|
+
stringify<T = any>(file: string, data: T): string;
|
|
197
|
+
stringifyWith<T = any>(Parser: ClassType<GenericParser>, data: T): string;
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
type SetCtxDefaultsOptions<T extends ListrContext = ListrContext> = Partial<T>;
|
package/dist/index.js
CHANGED
|
@@ -611,49 +611,63 @@ var ParserService = (_a6 = class {
|
|
|
611
611
|
__publicField(this, "moduleRef");
|
|
612
612
|
__publicField(this, "fs");
|
|
613
613
|
__publicField(this, "logger");
|
|
614
|
-
__publicField(this, "
|
|
614
|
+
__publicField(this, "instances");
|
|
615
615
|
this.moduleRef = moduleRef;
|
|
616
616
|
this.fs = fs2;
|
|
617
617
|
this.logger = logger;
|
|
618
|
-
this.
|
|
618
|
+
this.instances = [];
|
|
619
619
|
this.logger.setup(this.constructor.name);
|
|
620
620
|
}
|
|
621
621
|
byFt(file) {
|
|
622
622
|
const ext = (file.includes(".") ? this.fs.extname(file) : file).replace(/^\./, "");
|
|
623
|
-
const Parser = this.
|
|
623
|
+
const Parser = this.instances.find((parser) => parser.extensions.includes(ext));
|
|
624
624
|
if (!Parser) {
|
|
625
625
|
throw new Error(`Parser for the extension is not configured: ${ext}`);
|
|
626
626
|
}
|
|
627
|
-
return
|
|
627
|
+
return Parser;
|
|
628
628
|
}
|
|
629
629
|
fetch(Parser) {
|
|
630
|
-
|
|
630
|
+
const parser = this.instances.find((instance) => instance instanceof Parser);
|
|
631
|
+
if (!parser) {
|
|
632
|
+
throw new Error(`Specified parser has not been initiated: ${Parser.name}`);
|
|
633
|
+
}
|
|
634
|
+
return parser;
|
|
631
635
|
}
|
|
632
636
|
async inject(Parser) {
|
|
633
637
|
const parser = await this.moduleRef.create(Parser);
|
|
638
|
+
this.instances.push(parser);
|
|
634
639
|
return parser;
|
|
635
640
|
}
|
|
636
641
|
async register(...parsers) {
|
|
637
|
-
this.parsers.push(...parsers);
|
|
638
642
|
await Promise.all(parsers.map(async (parser) => this.inject(parser)));
|
|
639
|
-
this.logger.trace("Registered parsers: %o",
|
|
643
|
+
this.logger.trace("Registered parsers: %o", parsers.map((p) => p.name));
|
|
640
644
|
}
|
|
641
645
|
async read(file) {
|
|
642
646
|
return this.parse(file, await this.fs.read(file));
|
|
643
647
|
}
|
|
644
648
|
async write(file, data) {
|
|
645
|
-
return this.fs.write(file,
|
|
649
|
+
return this.fs.write(file, this.stringify(file, data));
|
|
646
650
|
}
|
|
647
|
-
|
|
651
|
+
parse(file, data) {
|
|
648
652
|
const parser = this.byFt(file);
|
|
649
653
|
this.logger.trace("Parsing file: %s -> %s", file, parser.constructor.name);
|
|
650
654
|
return parser.parse(data);
|
|
651
655
|
}
|
|
652
|
-
|
|
656
|
+
parseWith(Parser, data) {
|
|
657
|
+
const parser = this.fetch(Parser);
|
|
658
|
+
this.logger.trace("Parsing data with: %s", parser.constructor.name);
|
|
659
|
+
return parser.parse(data);
|
|
660
|
+
}
|
|
661
|
+
stringify(file, data) {
|
|
653
662
|
const parser = this.byFt(file);
|
|
654
663
|
this.logger.trace("Stringifying file: %s -> %s", file, parser.constructor.name);
|
|
655
664
|
return parser.stringify(data);
|
|
656
665
|
}
|
|
666
|
+
stringifyWith(Parser, data) {
|
|
667
|
+
const parser = this.fetch(Parser);
|
|
668
|
+
this.logger.trace("Stringifying data: %s", parser.constructor.name);
|
|
669
|
+
return parser.stringify(data);
|
|
670
|
+
}
|
|
657
671
|
}, __name(_a6, "ParserService"), _a6);
|
|
658
672
|
ParserService = _ts_decorate6([
|
|
659
673
|
Injectable4(),
|
|
@@ -1017,8 +1031,12 @@ var _a10;
|
|
|
1017
1031
|
var EnvironmentVariableParser = (_a10 = class {
|
|
1018
1032
|
constructor(logger) {
|
|
1019
1033
|
__publicField(this, "logger");
|
|
1034
|
+
__publicField(this, "extensions");
|
|
1020
1035
|
__publicField(this, "LINE");
|
|
1021
1036
|
this.logger = logger;
|
|
1037
|
+
this.extensions = [
|
|
1038
|
+
"env"
|
|
1039
|
+
];
|
|
1022
1040
|
this.LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
|
|
1023
1041
|
this.logger.setup(this.constructor.name);
|
|
1024
1042
|
}
|
|
@@ -1041,9 +1059,7 @@ var EnvironmentVariableParser = (_a10 = class {
|
|
|
1041
1059
|
stringify(data) {
|
|
1042
1060
|
return Object.entries(data).map(([k, v]) => `${k}=${v}`).join(EOL2) + EOL2;
|
|
1043
1061
|
}
|
|
1044
|
-
}, __name(_a10, "EnvironmentVariableParser"),
|
|
1045
|
-
"env"
|
|
1046
|
-
]), _a10);
|
|
1062
|
+
}, __name(_a10, "EnvironmentVariableParser"), _a10);
|
|
1047
1063
|
EnvironmentVariableParser = _ts_decorate10([
|
|
1048
1064
|
Injectable6(),
|
|
1049
1065
|
_ts_metadata6("design:type", Function),
|
|
@@ -1074,7 +1090,11 @@ var _a11;
|
|
|
1074
1090
|
var JsonParser = (_a11 = class {
|
|
1075
1091
|
constructor(logger) {
|
|
1076
1092
|
__publicField(this, "logger");
|
|
1093
|
+
__publicField(this, "extensions");
|
|
1077
1094
|
this.logger = logger;
|
|
1095
|
+
this.extensions = [
|
|
1096
|
+
"json"
|
|
1097
|
+
];
|
|
1078
1098
|
this.logger.setup(this.constructor.name);
|
|
1079
1099
|
}
|
|
1080
1100
|
parse(data) {
|
|
@@ -1088,9 +1108,7 @@ var JsonParser = (_a11 = class {
|
|
|
1088
1108
|
stringify(data) {
|
|
1089
1109
|
return JSON.stringify(data, null, 2);
|
|
1090
1110
|
}
|
|
1091
|
-
}, __name(_a11, "JsonParser"),
|
|
1092
|
-
"json"
|
|
1093
|
-
]), _a11);
|
|
1111
|
+
}, __name(_a11, "JsonParser"), _a11);
|
|
1094
1112
|
JsonParser = _ts_decorate11([
|
|
1095
1113
|
Injectable7(),
|
|
1096
1114
|
_ts_metadata7("design:type", Function),
|
|
@@ -1122,7 +1140,12 @@ var _a12;
|
|
|
1122
1140
|
var YamlParser = (_a12 = class {
|
|
1123
1141
|
constructor(logger) {
|
|
1124
1142
|
__publicField(this, "logger");
|
|
1143
|
+
__publicField(this, "extensions");
|
|
1125
1144
|
this.logger = logger;
|
|
1145
|
+
this.extensions = [
|
|
1146
|
+
"yaml",
|
|
1147
|
+
"yml"
|
|
1148
|
+
];
|
|
1126
1149
|
this.logger.setup(this.constructor.name);
|
|
1127
1150
|
}
|
|
1128
1151
|
parse(data) {
|
|
@@ -1138,10 +1161,7 @@ var YamlParser = (_a12 = class {
|
|
|
1138
1161
|
prettyErrors: true
|
|
1139
1162
|
});
|
|
1140
1163
|
}
|
|
1141
|
-
}, __name(_a12, "YamlParser"),
|
|
1142
|
-
"yaml",
|
|
1143
|
-
"yml"
|
|
1144
|
-
]), _a12);
|
|
1164
|
+
}, __name(_a12, "YamlParser"), _a12);
|
|
1145
1165
|
YamlParser = _ts_decorate12([
|
|
1146
1166
|
Injectable8(),
|
|
1147
1167
|
_ts_metadata8("design:type", Function),
|
|
@@ -1292,7 +1312,7 @@ var LockerService = (_a13 = class {
|
|
|
1292
1312
|
this.logger.trace("Trying to write empty lock file, deleting it instead: %s", this.options.file);
|
|
1293
1313
|
return this.fs.remove(this.options.file);
|
|
1294
1314
|
}
|
|
1295
|
-
return this.fs.write(this.options.file,
|
|
1315
|
+
return this.fs.write(this.options.file, this.parser.fetch(this.options.parser).stringify(data));
|
|
1296
1316
|
}
|
|
1297
1317
|
buildPath(d) {
|
|
1298
1318
|
if (d?.root !== true && this.options.root?.length) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cenk1cenk2/oclif-common",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.2",
|
|
4
4
|
"description": "Oclif common package for oclif2 projects.",
|
|
5
5
|
"repository": "https://gitlab.kilic.dev/libraries/oclif-tools",
|
|
6
6
|
"type": "module",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@listr2/manager": "^1.0.2",
|
|
73
|
-
"@oclif/core": "^3.
|
|
73
|
+
"@oclif/core": "^3.10.0",
|
|
74
74
|
"@types/fs-extra": "^11.0.3",
|
|
75
75
|
"@types/through": "^0.0.32",
|
|
76
76
|
"@types/update-notifier": "^6.0.6",
|