MCPcopy
hub / github.com/webpack/webpack / mergeAssetInfo

Function mergeAssetInfo

lib/asset/AssetGenerator.js:89–122  ·  view source on GitHub ↗
(a, b)

Source from the content-addressed store, hash-verified

87 * @returns {AssetInfo} object
88 */
89const mergeAssetInfo = (a, b) => {
90 /** @type {AssetInfo} */
91 const result = { ...a, ...b };
92 for (const key of Object.keys(a)) {
93 if (key in b) {
94 if (a[key] === b[key]) continue;
95 switch (key) {
96 case "fullhash":
97 case "chunkhash":
98 case "modulehash":
99 case "contenthash":
100 result[key] = mergeMaybeArrays(a[key], b[key]);
101 break;
102 case "immutable":
103 case "development":
104 case "hotModuleReplacement":
105 case "javascriptModule":
106 result[key] = a[key] || b[key];
107 break;
108 case "related":
109 result[key] = mergeRelatedInfo(
110 /** @type {NonNullable<AssetInfo["related"]>} */
111 (a[key]),
112 /** @type {NonNullable<AssetInfo["related"]>} */
113 (b[key])
114 );
115 break;
116 default:
117 throw new Error(`Can't handle conflicting asset info for ${key}`);
118 }
119 }
120 }
121 return result;
122};
123
124/**
125 * Merges related info.

Callers 3

getFilenameWithInfoMethod · 0.85
getAssetPathWithInfoMethod · 0.85
generateMethod · 0.85

Calls 3

mergeMaybeArraysFunction · 0.85
mergeRelatedInfoFunction · 0.85
keysMethod · 0.65

Tested by

no test coverage detected