2024-01-27 21:29:33 +00:00
|
|
|
"use strict";
|
|
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
|
|
};
|
|
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
|
const path_1 = __importDefault(require("path"));
|
|
|
|
const utils_1 = require("./utils");
|
2024-01-28 01:42:43 +00:00
|
|
|
exports.default = (opts, envKey, filePath = "") => {
|
|
|
|
const { env } = process, defPath = filePath || path_1.default.join(process.cwd() ?? ".", "defaults.json5"), def = (0, utils_1.readJsonIfExists)(defPath),
|
2024-01-27 21:29:33 +00:00
|
|
|
// gets value from ENV || options || defaults (in that order)
|
|
|
|
getVal = (envName) => {
|
|
|
|
const snakeEnvName = `${envKey}_${(0, utils_1.convertCamelToUpperSnakeCase)(envName)}`;
|
|
|
|
if (env[snakeEnvName])
|
|
|
|
return env[snakeEnvName];
|
|
|
|
if (opts[envName])
|
|
|
|
return opts[envName];
|
|
|
|
return def[envName];
|
|
|
|
},
|
|
|
|
// gets array from ENV || options || defaults (in that order)
|
|
|
|
getArray = (envName, optName = "") => {
|
|
|
|
let newEnvName;
|
|
|
|
if (optName === "") {
|
|
|
|
optName = envName;
|
|
|
|
newEnvName = (0, utils_1.convertCamelToUpperSnakeCase)(envName);
|
|
|
|
}
|
|
|
|
newEnvName = `${envKey}_${String(envName)}`;
|
|
|
|
if (env[newEnvName])
|
|
|
|
return env?.[newEnvName]?.split(path_1.default.delimiter);
|
|
|
|
if (Array.isArray(opts[optName]) && opts[optName].length)
|
|
|
|
return opts[optName];
|
|
|
|
return def[optName];
|
|
|
|
};
|
2024-01-28 01:42:43 +00:00
|
|
|
console.log({ def });
|
|
|
|
const retVal = {
|
|
|
|
...Object.keys(def).reduce((acc, curr) => {
|
|
|
|
if (Array.isArray(def[curr]))
|
|
|
|
acc[curr] = getArray(curr);
|
|
|
|
else
|
|
|
|
acc[curr] = getVal(curr);
|
|
|
|
return acc;
|
|
|
|
}, {}),
|
|
|
|
};
|
|
|
|
console.log({ retVal });
|
2024-01-27 21:29:33 +00:00
|
|
|
return {
|
|
|
|
...Object.keys(def).reduce((acc, curr) => {
|
|
|
|
if (Array.isArray(def[curr]))
|
|
|
|
acc[curr] = getArray(curr);
|
|
|
|
else
|
|
|
|
acc[curr] = getVal(curr);
|
|
|
|
return acc;
|
|
|
|
}, {}),
|
|
|
|
};
|
|
|
|
};
|
2024-01-28 01:42:43 +00:00
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUF5RTtBQUV6RSxrQkFBZSxDQUFJLElBQWdCLEVBQUUsTUFBYyxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixPQUFPLEdBQUcsUUFBUSxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUN2RSxHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUM7SUFDL0IsNkRBQTZEO0lBQzdELE1BQU0sR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtRQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLE1BQU0sSUFBSSxJQUFBLG9DQUE0QixFQUM3RCxPQUFpQixDQUNqQixFQUFFLENBQUM7UUFDSixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELFFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsVUFBd0IsRUFBRSxFQUFFLEVBQUU7UUFDM0QsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xCLFVBQVUsR0FBRyxJQUFBLG9DQUE0QixFQUFDLE9BQWlCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsVUFBVSxHQUFHLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQThCLENBQUMsRUFBRSxLQUFLLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSyxJQUFJLENBQUMsT0FBTyxDQUFRLENBQUMsTUFBTTtZQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVyQixNQUFNLE1BQU0sR0FBRztRQUNkLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF3QixFQUFFLElBQUksRUFBRSxFQUFFO1lBQzdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFlLENBQUMsQ0FBQzs7Z0JBQy9ELEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBZSxDQUFDLENBQUM7WUFDekMsT0FBTyxHQUFHLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQ04sQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLCByZWFkSnNvbklmRXhpc3RzIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgPFQ+KG9wdHM6IFBhcnRpYWw8VD4sIGVudktleTogc3RyaW5nLCBmaWxlUGF0aCA9IFwiXCIpID0+IHtcblx0Y29uc3QgeyBlbnYgfSA9IHByb2Nlc3MsXG5cdFx0ZGVmUGF0aCA9IGZpbGVQYXRoIHx8IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpID8/IFwiLlwiLCBcImRlZmF1bHRzLmpzb241XCIpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoZGVmUGF0aCksXG5cdFx0Ly8gZ2V0cyB2YWx1ZSBmcm9tIEVOViB8fCBvcHRpb25zIHx8IGRlZmF1bHRzIChpbiB0aGF0IG9yZGVyKVxuXHRcdGdldFZhbCA9IChlbnZOYW1lOiBrZXlvZiBUKSA9PiB7XG5cdFx0XHRjb25zdCBzbmFrZUVudk5hbWUgPSBgJHtlbnZLZXl9XyR7Y29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShcblx0XHRcdFx0ZW52TmFtZSBhcyBzdHJpbmdcblx0XHRcdCl9YDtcblx0XHRcdGlmIChlbnZbc25ha2VFbnZOYW1lXSkgcmV0dXJuIGVudltzbmFrZUVudk5hbWVdO1xuXHRcdFx0aWYgKG9wdHNbZW52TmFtZV0pIHJldHVybiBvcHRzW2Vudk5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltlbnZOYW1lXTtcblx0XHR9LFxuXHRcdC8vIGdldHMgYXJyYXkgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRBcnJheSA9IChlbnZOYW1lOiBrZXlvZiBULCBvcHROYW1lOiBrZXlvZiBUIHwgXCJcIiA9IFwiXCIpID0+IHtcblx0XHRcdGxldCBuZXdFbnZOYW1lO1xuXHRcdFx0aWYgKG9wdE5hbWUgPT09IFwiXCIpIHtcblx0XHRcdFx0b3B0TmFtZSA9IGVudk5hbWU7XG5cdFx0XHRcdG5ld0Vudk5hbWUgPSBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlKGVudk5hbWUgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHRcdG5ld0Vudk5hbWUgP
|