MCPcopy
hub / github.com/webpack/webpack / cachedCleverMerge

Function cachedCleverMerge

lib/util/cleverMerge.js:31–51  ·  lib/util/cleverMerge.js::cachedCleverMerge
(first, second)

Source from the content-addressed store, hash-verified

29 * @returns {T & O | T | O} merged object of first and second object
30 */
31const cachedCleverMerge = (first, second) => {
32 if (second === undefined) return /** @type {T} */ (first);
33 if (first === undefined) return /** @type {O} */ (second);
34 if (typeof second !== class="st">"object" || second === null) {
35 return /** @type {O} */ (second);
36 }
37 if (typeof first !== class="st">"object" || first === null) {
38 return /** @type {T} */ (first);
39 }
40
41 let innerCache = mergeCache.get(first);
42 if (innerCache === undefined) {
43 innerCache = new WeakMap();
44 mergeCache.set(first, innerCache);
45 }
46 const prevMerge = /** @type {T & O} */ (innerCache.get(second));
47 if (prevMerge !== undefined) return prevMerge;
48 const newMerge = _cleverMerge(first, second, true);
49 innerCache.set(second, newMerge);
50 return newMerge;
51};
52
53/**
54 * Caches d set property.

Callers 9

_createMethod · 0.85
updateAssetMethod · 0.85
mergeGlobalOptionsFunction · 0.85
constructorMethod · 0.85
_cleverMergeFunction · 0.85
newFnFunction · 0.85
mergeSingleValueFunction · 0.85
resolveByPropertyFunction · 0.85

Calls 3

_cleverMergeFunction · 0.85
getMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected