@cenk1cenk2/oclif-common 3.1.0-beta.5 → 3.1.0-beta.8
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 {
|
|
@@ -668,10 +668,11 @@ var ConfigService = class {
|
|
|
668
668
|
}
|
|
669
669
|
})
|
|
670
670
|
);
|
|
671
|
-
return data.flatMap((d) => d);
|
|
671
|
+
return data.flatMap((d) => d).filter(Boolean);
|
|
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 (config2, variable, data) => {
|
|
675
676
|
if (variable.parser) {
|
|
676
677
|
try {
|
|
677
678
|
variable = await this.parser.parse(variable.parser, data);
|
|
@@ -680,39 +681,43 @@ var ConfigService = class {
|
|
|
680
681
|
throw e;
|
|
681
682
|
}
|
|
682
683
|
}
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
return variable;
|
|
686
|
-
});
|
|
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);
|
|
687
686
|
}, "cb");
|
|
688
687
|
await Promise.all(
|
|
689
688
|
parsed.map(async (variable) => {
|
|
690
689
|
let data;
|
|
691
|
-
|
|
690
|
+
data = process.env[variable.env];
|
|
691
|
+
if (data) {
|
|
692
|
+
config = await cb(config, variable, data);
|
|
693
|
+
}
|
|
694
|
+
if (variable.extensions) {
|
|
692
695
|
const timeout = 6e4;
|
|
693
696
|
const startedAt = Date.now();
|
|
694
697
|
for (let i = 0; i < Infinity; i++) {
|
|
695
698
|
if (Date.now() - startedAt > timeout) {
|
|
696
699
|
throw new Error(`Timed-out in ${timeout}ms while looking for element environment variables.`);
|
|
697
700
|
}
|
|
698
|
-
const
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
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
|
+
data = process.env[clone.env];
|
|
706
|
+
if (!data) {
|
|
707
|
+
this.logger.trace("No extension for environment variable: %s -> %d", clone.env, i);
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
clone.key[clone.key.findIndex((value) => value === "__element" /* ELEMENT */)] = i;
|
|
711
|
+
return cb({}, clone, data);
|
|
712
|
+
})
|
|
713
|
+
)).filter(Boolean);
|
|
714
|
+
if (extensions.length === 0) {
|
|
715
|
+
this.logger.trace("No more extensions for environment variables: %s -> %d", variable.key.join("."), i);
|
|
704
716
|
break;
|
|
705
717
|
}
|
|
706
|
-
|
|
707
|
-
config = await cb(clone, data);
|
|
718
|
+
config = this.merge([config, ...extensions]);
|
|
708
719
|
}
|
|
709
|
-
return;
|
|
710
|
-
}
|
|
711
|
-
data = process.env[variable.env];
|
|
712
|
-
if (!data) {
|
|
713
|
-
return;
|
|
714
720
|
}
|
|
715
|
-
config = await cb(variable, data);
|
|
716
721
|
})
|
|
717
722
|
);
|
|
718
723
|
return config;
|
package/package.json
CHANGED