MCPcopy Index your code
hub / github.com/getsentry/sentry-javascript / merge

Function merge

packages/core/src/utils/merge.ts:8–31  ·  view source on GitHub ↗
(initialObj: T, mergeObj: T, levels = 2)

Source from the content-addressed store, hash-verified

6 * By default, this merges 2 levels deep.
7 */
8export function merge<T>(initialObj: T, mergeObj: T, levels = 2): T {
9 // If the merge value is not an object, or we have no merge levels left,
10 // we just set the value to the merge value
11 if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {
12 return mergeObj;
13 }
14
15 // If the merge object is an empty object, and the initial object is not undefined, we return the initial object
16 if (initialObj && Object.keys(mergeObj).length === 0) {
17 return initialObj;
18 }
19
20 // Clone object
21 const output = { ...initialObj };
22
23 // Merge values into output, resursively
24 for (const key in mergeObj) {
25 if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {
26 output[key] = merge(output[key], mergeObj[key], levels - 1);
27 }
28 }
29
30 return output;
31}

Callers 5

merge.test.tsFile · 0.90
processBeforeSendFunction · 0.90
mergeScopeDataFunction · 0.90

Calls 2

callMethod · 0.80
keysMethod · 0.65

Tested by

no test coverage detected