"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, localDefaultFilePath = "") => { const { env } = process, { __dirname } = (0, utils_1.getDirname)(), def = (0, utils_1.readJsonIfExists)(path_1.default.join(__dirname, localDefaultFilePath || "./defaults.json5")), // 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]; }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUlpQjtBQUVqQixrQkFBZSxDQUNkLElBQWdCLEVBQ2hCLE1BQWMsRUFDZCxvQkFBb0IsR0FBRyxFQUFFLEVBQ3hCLEVBQUU7SUFDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsa0JBQVUsR0FBRSxFQUM1QixHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFDckIsY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLElBQUksa0JBQWtCLENBQUMsQ0FDaEU7SUFDRCw2REFBNkQ7SUFDN0QsTUFBTSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1FBQzdCLE1BQU0sWUFBWSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUEsb0NBQTRCLEVBQzdELE9BQWlCLENBQ2pCLEVBQUUsQ0FBQztRQUNKLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsUUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxVQUF3QixFQUFFLEVBQUUsRUFBRTtRQUMzRCxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDbEIsVUFBVSxHQUFHLElBQUEsb0NBQTRCLEVBQUMsT0FBaUIsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxVQUFVLEdBQUcsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBOEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFLLElBQUksQ0FBQyxPQUFPLENBQVEsQ0FBQyxNQUFNO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQge1xuXHRjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLFxuXHRnZXREaXJuYW1lLFxuXHRyZWFkSnNvbklmRXhpc3RzLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZGVmYXVsdCA8VD4oXG5cdG9wdHM6IFBhcnRpYWw8VD4sXG5cdGVudktleTogc3RyaW5nLFxuXHRsb2NhbERlZmF1bHRGaWxlUGF0aCA9IFwiXCJcbikgPT4ge1xuXHRjb25zdCB7IGVudiB9ID0gcHJvY2Vzcyxcblx0XHR7IF9fZGlybmFtZSB9ID0gZ2V0RGlybmFtZSgpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoXG5cdFx0XHRwYXRoLmpvaW4oX19kaXJuYW1lLCBsb2NhbERlZmF1bHRGaWxlUGF0aCB8fCBcIi4vZGVmYXVsdHMuanNvbjVcIilcblx0XHQpLFxuXHRcdC8vIGdldHMgdmFsdWUgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRWYWwgPSAoZW52TmFtZToga2V5b2YgVCkgPT4ge1xuXHRcdFx0Y29uc3Qgc25ha2VFbnZOYW1lID0gYCR7ZW52S2V5fV8ke2NvbnZlcnRDYW1lbFRvVXBwZXJTbmFrZUNhc2UoXG5cdFx0XHRcdGVudk5hbWUgYXMgc3RyaW5nXG5cdFx0XHQpfWA7XG5cdFx0XHRpZiAoZW52W3NuYWtlRW52TmFtZV0pIHJldHVybiBlbnZbc25ha2VFbnZOYW1lXTtcblx0XHRcdGlmIChvcHRzW2Vudk5hbWVdKSByZXR1cm4gb3B0c1tlbnZOYW1lXTtcblx0XHRcdHJldHVybiBkZWZbZW52TmFtZV07XG5cdFx0fSxcblx0XHQvLyBnZXRzIGFycmF5IGZyb20gRU5WIHx8IG9wdGlvbnMgfHwgZGVmYXVsdHMgKGluIHRoYXQgb3JkZXIpXG5cdFx0Z2V0QXJyYXkgPSAoZW52TmFtZToga2V5b2YgVCwgb3B0TmFtZToga2V5b2YgVCB8IFwiXCIgPSBcIlwiKSA9PiB7XG5cdFx0XHRsZXQgbmV3RW52TmFtZTtcblx0XHRcdGlmIChvcHROYW1lID09PSBcIlwiKSB7XG5cdFx0XHRcdG9wdE5hbWUgPSBlbnZOYW1lO1xuXHRcdFx0XHRuZXdFbnZOYW1lID0gY29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShlbnZOYW1lIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0XHRuZXdFbnZOYW1lID0gYCR7ZW52S2V5fV8ke1N0cmluZyhlbnZOYW1lKX1gO1xuXHRcdFx0aWYgKGVudltuZXdFbnZOYW1lXSlcblx0XHRcdFx0cmV0dXJuIGVudj8uW25ld0Vudk5hbWUgYXMga2V5b2YgdHlwZW9mIGVudl0/LnNwbGl0KHBhdGguZGVsaW1pdGVyKTtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KG9wdHNbb3B0TmFtZV0pICYmIChvcHRzW29wdE5hbWVdIGFzIFtdKS5sZW5ndGgpXG5cdFx0XHRcdHJldHVybiBvcHRzW29wdE5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltvcHROYW1lXTtcblx0XHR9O1xuXG5cdHJldHVybiB7XG5cdFx0Li4uT2JqZWN0LmtleXMoZGVmKS5yZWR1Y2UoKGFjYzogUGFydGlhbDx0eXBlb2YgZGVmPiwgY3VycikgPT4ge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoZGVmW2N1cnJdKSkgYWNjW2N1cnJdID0gZ2V0QXJyYXkoY3VyciBhcyBrZXlvZiBUKTtcblx0XHRcdGVsc2UgYWNjW2N1cnJdID0gZ2V0VmFsKGN1cnIgYXMga2V5b2YgVCk7XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIHt9KSxcblx0fTtcbn07XG4iXX0=