@cenk1cenk2/oclif-common 3.1.0-beta.9 → 3.1.0
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 +4 -4
- package/dist/index.js +36 -42
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -153,8 +153,8 @@ interface UnlockData extends CommonLockerData {
|
|
|
153
153
|
|
|
154
154
|
declare class GenericParser {
|
|
155
155
|
static extensions: string[];
|
|
156
|
-
parse<T = unknown>(data: string | Buffer): T
|
|
157
|
-
stringify<T = any>(data: T): string
|
|
156
|
+
parse<T = unknown>(data: string | Buffer): T;
|
|
157
|
+
stringify<T = any>(data: T): string;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
declare class LockerService<LockFile extends LockableData = LockableData> {
|
|
@@ -191,7 +191,7 @@ declare class ParserService {
|
|
|
191
191
|
addParsers(...parsers: ClassType<GenericParser>[]): 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): T
|
|
194
|
+
parse<T = unknown>(file: string, data: string | Buffer): T;
|
|
195
195
|
stringify<T = any>(file: string, data: T): string | Promise<string>;
|
|
196
196
|
}
|
|
197
197
|
|
|
@@ -213,7 +213,7 @@ declare class ConfigService implements GlobalConfig {
|
|
|
213
213
|
read<T extends LockableData = LockableData>(path: string): Promise<T>;
|
|
214
214
|
extend<T extends LockableData = LockableData>(paths: (string | Partial<T>)[], strategy?: MergeStrategy): Promise<T>;
|
|
215
215
|
merge<T extends LockableData = LockableData>(configs: Partial<T>[], strategy?: MergeStrategy): T;
|
|
216
|
-
env<T extends LockableData = LockableData>(definition: string |
|
|
216
|
+
env<T extends LockableData = LockableData>(definition: string | Record<PropertyKey, any>, config: T): Promise<T>;
|
|
217
217
|
write<T extends LockableData = LockableData>(path: string, data: T): Promise<void>;
|
|
218
218
|
private recalculate;
|
|
219
219
|
}
|
package/dist/index.js
CHANGED
|
@@ -649,8 +649,8 @@ var ConfigService = class {
|
|
|
649
649
|
} else if (typeof value === "object") {
|
|
650
650
|
let extensions;
|
|
651
651
|
if ("__element" /* ELEMENT */ in value) {
|
|
652
|
-
this.logger.trace("Expanding location to elements: %s", location);
|
|
653
652
|
extensions = await iter(value["__element" /* ELEMENT */], [...location, "__element" /* ELEMENT */]);
|
|
653
|
+
this.logger.trace("Expanding location to elements: %s -> %s", location, extensions.map((extension) => extension.key.join(".")).join(", "));
|
|
654
654
|
}
|
|
655
655
|
if ("__name" /* NAME */ in value && "__format" /* PARSER */ in value) {
|
|
656
656
|
const variable = [
|
|
@@ -671,56 +671,50 @@ var ConfigService = class {
|
|
|
671
671
|
return data.flatMap((d) => d).filter(Boolean);
|
|
672
672
|
}, "iter");
|
|
673
673
|
const parsed = await iter(env);
|
|
674
|
-
|
|
675
|
-
const cb = /* @__PURE__ */ __name(async (config2, variable, data) => {
|
|
674
|
+
const cb = /* @__PURE__ */ __name((config2, variable, data) => {
|
|
676
675
|
if (variable.parser) {
|
|
677
676
|
try {
|
|
678
|
-
|
|
677
|
+
data = this.parser.parse(variable.parser, data);
|
|
679
678
|
} catch (e) {
|
|
680
|
-
this.logger.trace("Can not parse environment environment variable for config: %s -> %s with %s", variable.key
|
|
679
|
+
this.logger.trace("Can not parse environment environment variable for config: %s -> %s with %s", variable.key.join("."), variable.env, variable.parser);
|
|
681
680
|
throw e;
|
|
682
681
|
}
|
|
683
682
|
}
|
|
684
|
-
this.logger.trace("Overwriting config with environment variable: %s -> %s", variable.key
|
|
685
|
-
return import_object_path_immutable.default.set(config2, variable.key,
|
|
683
|
+
this.logger.trace("Overwriting config with environment variable: %s -> %s", variable.key.join("."), variable.env);
|
|
684
|
+
return import_object_path_immutable.default.set(config2, variable.key, data);
|
|
686
685
|
}, "cb");
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
const
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
if (!data) {
|
|
709
|
-
this.logger.trace("No extension for environment variable: %s -> %s", clone.key.join("."), clone.env);
|
|
710
|
-
return;
|
|
711
|
-
}
|
|
712
|
-
return cb({}, clone, data);
|
|
713
|
-
})
|
|
714
|
-
)).filter(Boolean);
|
|
715
|
-
if (extensions.length === 0) {
|
|
716
|
-
this.logger.trace("No more extensions for environment variables: %s -> %d", variable.key.join("."), i);
|
|
717
|
-
break;
|
|
686
|
+
parsed.forEach((variable) => {
|
|
687
|
+
let data;
|
|
688
|
+
data = process.env[variable.env];
|
|
689
|
+
if (data) {
|
|
690
|
+
config = cb(config, variable, data);
|
|
691
|
+
}
|
|
692
|
+
if (variable.extensions && variable.extensions.length > 0) {
|
|
693
|
+
const timeout = 6e4;
|
|
694
|
+
const startedAt = Date.now();
|
|
695
|
+
for (let i = 0; i < Infinity; i++) {
|
|
696
|
+
if (Date.now() - startedAt > timeout) {
|
|
697
|
+
throw new Error(`Timed-out in ${timeout}ms while looking for element environment variables.`);
|
|
698
|
+
}
|
|
699
|
+
const extensions = variable.extensions.map((extension) => {
|
|
700
|
+
const clone = JSON.parse(JSON.stringify(extension));
|
|
701
|
+
clone.env = clone.env.replace("${i}" /* ELEMENT_REPLACER */, i.toString());
|
|
702
|
+
clone.key[clone.key.findIndex((value) => value === "__element" /* ELEMENT */)] = i.toString();
|
|
703
|
+
data = process.env[clone.env];
|
|
704
|
+
if (!data) {
|
|
705
|
+
this.logger.trace("No extension for environment variable: %s -> %s", clone.key.join("."), clone.env);
|
|
706
|
+
return;
|
|
718
707
|
}
|
|
719
|
-
config =
|
|
708
|
+
config = cb(config, clone, data);
|
|
709
|
+
return true;
|
|
710
|
+
}).filter(Boolean);
|
|
711
|
+
if (extensions.length === 0) {
|
|
712
|
+
this.logger.trace("No more extensions for environment variables: %s -> %d", variable.key.join("."), i);
|
|
713
|
+
break;
|
|
720
714
|
}
|
|
721
715
|
}
|
|
722
|
-
}
|
|
723
|
-
);
|
|
716
|
+
}
|
|
717
|
+
});
|
|
724
718
|
return config;
|
|
725
719
|
}
|
|
726
720
|
async write(path, data) {
|
|
@@ -825,7 +819,7 @@ var LockerService = class {
|
|
|
825
819
|
return this.parser.parse(await this.fs.read(this.file));
|
|
826
820
|
}
|
|
827
821
|
async write(data) {
|
|
828
|
-
return this.fs.write(this.file,
|
|
822
|
+
return this.fs.write(this.file, this.parser.stringify(data));
|
|
829
823
|
}
|
|
830
824
|
buildPath(d) {
|
|
831
825
|
if (d?.root !== true && this.root) {
|