UNPKG

@sentry/core

Version:
37 lines (30 loc) 1.09 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /** * Shallow merge two objects. * Does not mutate the passed in objects. * Undefined/empty values in the merge object will overwrite existing values. * * By default, this merges 2 levels deep. */ function merge(initialObj, mergeObj, levels = 2) { // If the merge value is not an object, or we have no merge levels left, // we just set the value to the merge value if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) { return mergeObj; } // If the merge object is an empty object, and the initial object is not undefined, we return the initial object if (initialObj && Object.keys(mergeObj).length === 0) { return initialObj; } // Clone object const output = { ...initialObj }; // Merge values into output, resursively for (const key in mergeObj) { if (Object.prototype.hasOwnProperty.call(mergeObj, key)) { output[key] = merge(output[key], mergeObj[key], levels - 1); } } return output; } exports.merge = merge; //# sourceMappingURL=merge.js.map