brek
Version:
33 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeConfs = void 0;
const isLoader_1 = require("./isLoader");
function mergeConfs(p) {
// put into order of importance, least to most
const configs = [
p.Default,
p.environment || {},
p.deployment || {},
p.user || {},
p.overrides || {},
];
return configs.reduce((mergedConfig, config) => mergeConfigs(mergedConfig, config), {});
}
exports.mergeConfs = mergeConfs;
function mergeConfigs(obj1, obj2) {
const merged = Object.assign(Object.assign({}, obj1), obj2);
Object.keys(merged).forEach((key) => {
const obj1Value = obj1[key];
const obj2Value = obj2[key];
if (typeof obj1Value === 'object'
&& typeof obj2Value === 'object'
&& !(0, isLoader_1.isLoader)(obj1Value)
&& !(0, isLoader_1.isLoader)(obj2Value)
&& !Array.isArray(obj1Value)
&& !Array.isArray(obj2Value)) {
merged[key] = mergeConfigs(obj1Value, obj2Value);
}
});
return merged;
}
//# sourceMappingURL=mergeConfs.js.map