properties-gen
Version:
CLI to generate environment properties based on config
46 lines (45 loc) • 1.7 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
var deepMerge = function (base, extension) {
if (base === void 0) { base = {}; }
if (extension === void 0) { extension = {}; }
var keys = Object.keys(base);
var merged = __assign(__assign({}, base), extension);
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
var key = keys_1[_i];
var current = base[key];
var isArray = Array.isArray(current);
var isObject = current instanceof Object && !isArray;
// Extend arrays
if (isArray) {
merged[key] = __spreadArray(__spreadArray([], current, true), (extension[key] || []), true);
}
// Extend objects
if (isObject) {
merged[key] = extension[key]
? __assign({}, deepMerge(current, extension[key])) : current;
}
}
return merged;
};
exports.default = deepMerge;