@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 CHANGED
@@ -35,9 +35,9 @@ interface ConfigModuleOptions {
35
35
  }
36
36
 
37
37
  declare class GenericParser {
38
- static extensions: string[];
39
- parse<T = unknown>(data: string | Buffer): T | Promise<T>;
40
- stringify<T = any>(data: T): string | Promise<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
- static extensions: string[];
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
- static extensions: string[];
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
- static extensions: string[];
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
- parsers: ClassType<GenericParser>[];
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): Promise<T>;
195
- stringify<T = any>(file: string, data: T): Promise<string>;
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, "parsers");
614
+ __publicField(this, "instances");
615
615
  this.moduleRef = moduleRef;
616
616
  this.fs = fs2;
617
617
  this.logger = logger;
618
- this.parsers = [];
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.parsers.find((parser) => parser.extensions.includes(ext));
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 this.fetch(Parser);
627
+ return Parser;
628
628
  }
629
629
  fetch(Parser) {
630
- return this.moduleRef.get(Parser);
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", this.parsers.map((p) => p.name));
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, await this.stringify(file, data));
649
+ return this.fs.write(file, this.stringify(file, data));
646
650
  }
647
- async parse(file, data) {
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
- async stringify(file, data) {
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"), __publicField(_a10, "extensions", [
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"), __publicField(_a11, "extensions", [
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"), __publicField(_a12, "extensions", [
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, await this.parser.fetch(this.options.parser).stringify(data));
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.0",
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.9.2",
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",