utils/lib/esm/loadConfig.js

54 lines
7.1 KiB
JavaScript

"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");
exports.default = (opts, envKey, filePath = "") => {
const { env } = process, defPath = filePath || path_1.default.join(process.cwd() ?? ".", "defaults.json5"), def = (0, utils_1.readJsonIfExists)(defPath),
// 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];
};
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 });
return {
...Object.keys(def).reduce((acc, curr) => {
if (Array.isArray(def[curr]))
acc[curr] = getArray(curr);
else
acc[curr] = getVal(curr);
return acc;
}, {}),
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUF5RTtBQUV6RSxrQkFBZSxDQUFJLElBQWdCLEVBQUUsTUFBYyxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixPQUFPLEdBQUcsUUFBUSxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUN2RSxHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUM7SUFDL0IsNkRBQTZEO0lBQzdELE1BQU0sR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtRQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLE1BQU0sSUFBSSxJQUFBLG9DQUE0QixFQUM3RCxPQUFpQixDQUNqQixFQUFFLENBQUM7UUFDSixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELFFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsVUFBd0IsRUFBRSxFQUFFLEVBQUU7UUFDM0QsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xCLFVBQVUsR0FBRyxJQUFBLG9DQUE0QixFQUFDLE9BQWlCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsVUFBVSxHQUFHLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQThCLENBQUMsRUFBRSxLQUFLLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSyxJQUFJLENBQUMsT0FBTyxDQUFRLENBQUMsTUFBTTtZQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVyQixNQUFNLE1BQU0sR0FBRztRQUNkLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF3QixFQUFFLElBQUksRUFBRSxFQUFFO1lBQzdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFlLENBQUMsQ0FBQzs7Z0JBQy9ELEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBZSxDQUFDLENBQUM7WUFDekMsT0FBTyxHQUFHLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQ04sQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLCByZWFkSnNvbklmRXhpc3RzIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgPFQ+KG9wdHM6IFBhcnRpYWw8VD4sIGVudktleTogc3RyaW5nLCBmaWxlUGF0aCA9IFwiXCIpID0+IHtcblx0Y29uc3QgeyBlbnYgfSA9IHByb2Nlc3MsXG5cdFx0ZGVmUGF0aCA9IGZpbGVQYXRoIHx8IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpID8/IFwiLlwiLCBcImRlZmF1bHRzLmpzb241XCIpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoZGVmUGF0aCksXG5cdFx0Ly8gZ2V0cyB2YWx1ZSBmcm9tIEVOViB8fCBvcHRpb25zIHx8IGRlZmF1bHRzIChpbiB0aGF0IG9yZGVyKVxuXHRcdGdldFZhbCA9IChlbnZOYW1lOiBrZXlvZiBUKSA9PiB7XG5cdFx0XHRjb25zdCBzbmFrZUVudk5hbWUgPSBgJHtlbnZLZXl9XyR7Y29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShcblx0XHRcdFx0ZW52TmFtZSBhcyBzdHJpbmdcblx0XHRcdCl9YDtcblx0XHRcdGlmIChlbnZbc25ha2VFbnZOYW1lXSkgcmV0dXJuIGVudltzbmFrZUVudk5hbWVdO1xuXHRcdFx0aWYgKG9wdHNbZW52TmFtZV0pIHJldHVybiBvcHRzW2Vudk5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltlbnZOYW1lXTtcblx0XHR9LFxuXHRcdC8vIGdldHMgYXJyYXkgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRBcnJheSA9IChlbnZOYW1lOiBrZXlvZiBULCBvcHROYW1lOiBrZXlvZiBUIHwgXCJcIiA9IFwiXCIpID0+IHtcblx0XHRcdGxldCBuZXdFbnZOYW1lO1xuXHRcdFx0aWYgKG9wdE5hbWUgPT09IFwiXCIpIHtcblx0XHRcdFx0b3B0TmFtZSA9IGVudk5hbWU7XG5cdFx0XHRcdG5ld0Vudk5hbWUgPSBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlKGVudk5hbWUgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHRcdG5ld0Vudk5hbWUgPSBgJHtlbnZLZXl9XyR7U3RyaW5nKGVudk5hbWUpfWA7XG5cdFx0XHRpZiAoZW52W25ld0Vudk5hbWVdKVxuXHRcdFx0XHRyZXR1cm4gZW52Py5bbmV3RW52TmFtZSBhcyBrZXlvZiB0eXBlb2YgZW52XT8uc3BsaXQocGF0aC5kZWxpbWl0ZXIpO1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob3B0c1tvcHROYW1lXSkgJiYgKG9wdHNbb3B0TmFtZV0gYXMgW10pLmxlbmd0aClcblx0XHRcdFx0cmV0dXJuIG9wdHNbb3B0TmFtZV07XG5cdFx0XHRyZXR1cm4gZGVmW29wdE5hbWVdO1xuXHRcdH07XG5cblx0Y29uc29sZS5sb2coeyBkZWYgfSk7XG5cblx0Y29uc3QgcmV0VmFsID0ge1xuXHRcdC4uLk9iamVjdC5rZXlzKGRlZikucmVkdWNlKChhY2M6IFBhcnRpYWw8dHlwZW9mIGRlZj4sIGN1cnIpID0+IHtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KGRlZltjdXJyXSkpIGFjY1tjdXJyXSA9IGdldEFycmF5KGN1cnIgYXMga2V5b2YgVCk7XG5cdFx0XHRlbHNlIGFjY1tjdXJyXSA9IGdldFZhbChjdXJyIGFzIGtleW9mIFQpO1xuXHRcdFx0cmV0dXJuIGFjYztcblx0XHR9LCB7fSksXG5cdH07XG5cblx0Y29uc29sZS5sb2coeyByZXRWYWwgfSk7XG5cblx0cmV0dXJuIHtcblx0XHQuLi5PYmplY3Qua2V5cyhkZWYpLnJlZHVjZSgoYWNjOiBQYXJ0aWFsPHR5cGVvZiBkZWY+LCBjdXJyKSA9PiB7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShkZWZbY3Vycl0pKSBhY2NbY3Vycl0gPSBnZXRBcnJheShjdXJyIGFzIGtleW9mIFQpO1xuXHRcdFx0ZWxzZSBhY2NbY3Vycl0gPSBnZXRWYWwoY3VyciBhcyBrZXlvZiBUKTtcblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwge30pLFxuXHR9O1xufTtcbiJdfQ==