@cenk1cenk2/oclif-common 3.1.0-beta.6 → 3.1.0-beta.9
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 +1 -0
- package/dist/index.js +31 -26
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -647,19 +647,19 @@ var ConfigService = class {
|
|
|
647
647
|
if (typeof value === "string") {
|
|
648
648
|
return [{ key: location, env: value }];
|
|
649
649
|
} else if (typeof value === "object") {
|
|
650
|
-
|
|
650
|
+
let extensions;
|
|
651
651
|
if ("__element" /* ELEMENT */ in value) {
|
|
652
652
|
this.logger.trace("Expanding location to elements: %s", location);
|
|
653
|
-
|
|
653
|
+
extensions = await iter(value["__element" /* ELEMENT */], [...location, "__element" /* ELEMENT */]);
|
|
654
654
|
}
|
|
655
655
|
if ("__name" /* NAME */ in value && "__format" /* PARSER */ in value) {
|
|
656
656
|
const variable = [
|
|
657
657
|
{
|
|
658
658
|
key: location,
|
|
659
659
|
env: value["__name" /* NAME */],
|
|
660
|
-
parser: value["__format" /* PARSER */]
|
|
661
|
-
|
|
662
|
-
|
|
660
|
+
parser: value["__format" /* PARSER */],
|
|
661
|
+
extensions
|
|
662
|
+
}
|
|
663
663
|
];
|
|
664
664
|
return variable;
|
|
665
665
|
} else {
|
|
@@ -672,48 +672,53 @@ var ConfigService = class {
|
|
|
672
672
|
}, "iter");
|
|
673
673
|
const parsed = await iter(env);
|
|
674
674
|
this.logger.trace("Environment variable injection: %o", parsed);
|
|
675
|
-
const cb = /* @__PURE__ */ __name(async (variable, data) => {
|
|
675
|
+
const cb = /* @__PURE__ */ __name(async (config2, variable, data) => {
|
|
676
676
|
if (variable.parser) {
|
|
677
677
|
try {
|
|
678
678
|
variable = await this.parser.parse(variable.parser, data);
|
|
679
679
|
} catch (e) {
|
|
680
|
-
this.logger.trace("Can not parse environment environment variable for config: %s -> %s with %s", variable.key
|
|
680
|
+
this.logger.trace("Can not parse environment environment variable for config: %s -> %s with %s", variable.key?.join("."), variable.env, variable.parser);
|
|
681
681
|
throw e;
|
|
682
682
|
}
|
|
683
683
|
}
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
return variable;
|
|
687
|
-
});
|
|
684
|
+
this.logger.trace("Overwriting config with environment variable: %s -> %s", variable.key?.join("."), variable.env);
|
|
685
|
+
return import_object_path_immutable.default.set(config2, variable.key, variable);
|
|
688
686
|
}, "cb");
|
|
689
687
|
await Promise.all(
|
|
690
688
|
parsed.map(async (variable) => {
|
|
691
689
|
let data;
|
|
692
|
-
|
|
690
|
+
data = process.env[variable.env];
|
|
691
|
+
if (data) {
|
|
692
|
+
config = await cb(config, variable, data);
|
|
693
|
+
}
|
|
694
|
+
if (variable.extensions && variable.extensions.length > 0) {
|
|
693
695
|
const timeout = 6e4;
|
|
694
696
|
const startedAt = Date.now();
|
|
695
697
|
for (let i = 0; i < Infinity; i++) {
|
|
696
698
|
if (Date.now() - startedAt > timeout) {
|
|
697
699
|
throw new Error(`Timed-out in ${timeout}ms while looking for element environment variables.`);
|
|
698
700
|
}
|
|
699
|
-
const
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
701
|
+
const extensions = (await Promise.all(
|
|
702
|
+
variable.extensions.map(async (extension) => {
|
|
703
|
+
const clone = JSON.parse(JSON.stringify(extension));
|
|
704
|
+
clone.env = clone.env.replace("${i}" /* ELEMENT_REPLACER */, i.toString());
|
|
705
|
+
clone.key[clone.key.findIndex((value) => value === "__element" /* ELEMENT */)] = i;
|
|
706
|
+
data = process.env[clone.env];
|
|
707
|
+
this.logger.trace("Extension: %o -> %s", clone, data);
|
|
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);
|
|
705
717
|
break;
|
|
706
718
|
}
|
|
707
|
-
|
|
708
|
-
config = await cb(clone, data);
|
|
719
|
+
config = this.merge([config, ...extensions]);
|
|
709
720
|
}
|
|
710
|
-
return;
|
|
711
|
-
}
|
|
712
|
-
data = process.env[variable.env];
|
|
713
|
-
if (!data) {
|
|
714
|
-
return;
|
|
715
721
|
}
|
|
716
|
-
config = await cb(variable, data);
|
|
717
722
|
})
|
|
718
723
|
);
|
|
719
724
|
return config;
|
package/package.json
CHANGED