UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

34 lines (33 loc) 1.56 kB
"use strict"; 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;