@netdata/charts
Version:
Netdata frontend SDK and chart utilities
34 lines (33 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _deepEqual = require("../deepEqual");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
var deepMergeArray = function deepMergeArray(arrA, arrB, options) {
var filteredB = (0, _deepEqual.filter)(arrA, options);
return filteredB.reduce(function (h, element, index) {
h.push(deepMerge(element, filteredB[index]));
return h;
}, []);
};
var deepMergeObject = function deepMergeObject(objA, objB, options) {
var keysB = (0, _deepEqual.filter)(Object.keys(objB), options);
var aHasOwnProperty = Object.prototype.hasOwnProperty.bind(objA);
keysB.reduce(function (h, key) {
if (!aHasOwnProperty(key)) {
h[key] = objB[key];
} else {
h[key] = deepMerge(objA[key], objB[key]);
}
return h;
}, {});
};
var deepMerge = function deepMerge(objA, objB) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (objA === objB) return objB;
if (_typeof(objA) !== "object" || objA === null || _typeof(objB) !== "object" || objB === null) return objB;
return Array.isArray(objB) ? deepMergeArray(objA, objB, options) : deepMergeObject(objA, objB, options);
};
var _default = exports["default"] = deepMerge;