zephyr-xpack-internal
Version:
Xpack internals for Zephyr
81 lines (80 loc) • 3.66 kB
JavaScript
;
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, getters, values)=>{
var define = (defs, kind)=>{
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
[kind]: defs[key]
});
};
define(getters, "get");
define(values, "value");
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
function mergeWithoutDupe(source) {
return source.reduce((acc, item)=>{
if ('object' == typeof item) {
const isDupe = acc.find((existing)=>Object.entries(existing).every(([key, value])=>item[key] === value));
if (!isDupe) acc.push(item);
} else acc.push(item);
return acc;
}, []);
}
function mergeGraphs(graph1, graph2) {
graph1.devDependencies = mergeWithoutDupe([
...graph2.devDependencies ?? [],
...graph1.devDependencies ?? []
]);
graph1.dependencies = mergeWithoutDupe([
...graph2.dependencies ?? [],
...graph1.dependencies ?? []
]);
graph2.modules.forEach((hostModules)=>{
const existing = graph1.modules.find((sidecarModules)=>hostModules.id === sidecarModules.id && hostModules.name === sidecarModules.name && hostModules.file === sidecarModules.file && hostModules.applicationID === sidecarModules.applicationID);
if (existing) existing.requires = Array.from(new Set([
...existing.requires,
...hostModules.requires
]));
else graph1.modules.push(hostModules);
});
graph2.overrides.forEach((hostOverrides)=>{
const existing = graph1.overrides.find((sidecarOverrides)=>sidecarOverrides.id === hostOverrides.id && sidecarOverrides.name === hostOverrides.name && sidecarOverrides.version === hostOverrides.version && sidecarOverrides.location === hostOverrides.location && sidecarOverrides.applicationID === hostOverrides.applicationID);
if (!existing) graph1.overrides.push(hostOverrides);
});
graph2.consumes.forEach((hostConsumedModule)=>{
const existing = graph1.consumes.find((sidecarConsumedModule)=>sidecarConsumedModule.consumingApplicationID === hostConsumedModule.consumingApplicationID && sidecarConsumedModule.applicationID === hostConsumedModule.applicationID && sidecarConsumedModule.name === hostConsumedModule.name);
if (existing) hostConsumedModule.usedIn.forEach((consumedModule)=>{
const alreadyExists = existing.usedIn.find(({ file, url })=>consumedModule.file === file && consumedModule.url === url);
if (!alreadyExists) existing.usedIn.push(consumedModule);
});
else graph1.consumes.push(hostConsumedModule);
});
return graph1;
}
__webpack_require__.d(__webpack_exports__, {
mergeGraphs: ()=>mergeGraphs
});
exports.mergeGraphs = __webpack_exports__.mergeGraphs;
for(var __rspack_i in __webpack_exports__)if (-1 === [
"mergeGraphs"
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=merge-graphs.js.map