zephyr-xpack-internal
Version:
Xpack internals for Zephyr
116 lines (115 loc) • 5 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__);
__webpack_require__.d(__webpack_exports__, {
getLegacyModuleFederationConfig: ()=>getLegacyModuleFederationConfig,
mergeModuleFederationBuildMetadata: ()=>mergeModuleFederationBuildMetadata,
mergeModuleFederationConfigs: ()=>mergeModuleFederationConfigs
});
const external_zephyr_agent_namespaceObject = require("zephyr-agent");
function stableJson(value) {
if (null === value) return 'null';
switch(typeof value){
case 'undefined':
return 'undefined';
case 'string':
case 'number':
case 'boolean':
return JSON.stringify(value);
case 'bigint':
return `bigint:${value.toString()}`;
case 'symbol':
return `symbol:${String(value)}`;
case 'function':
return `function:${String(value)}`;
default:
break;
}
if (Array.isArray(value)) return `[${value.map((item)=>stableJson(item)).join(',')}]`;
const record = value;
return `{${Object.keys(record).sort().map((key)=>`${JSON.stringify(key)}:${stableJson(record[key])}`).join(',')}}`;
}
function nonEmptyString(value) {
return 'string' == typeof value && value.trim() ? value : void 0;
}
function mergeUnique(candidates, kind) {
const byFingerprint = new Set();
const byIdentity = new Map();
const merged = [];
for (const candidate of candidates)if (!byFingerprint.has(candidate.fingerprint)) {
for (const identity of candidate.identities){
const existing = byIdentity.get(identity);
if (existing && existing !== candidate.fingerprint) throw new external_zephyr_agent_namespaceObject.ZephyrError(external_zephyr_agent_namespaceObject.ZeErrors.ERR_DEPLOY_LOCAL_BUILD, {
message: `Conflicting Module Federation ${kind} for ${identity}.`
});
}
byFingerprint.add(candidate.fingerprint);
for (const identity of candidate.identities)byIdentity.set(identity, candidate.fingerprint);
merged.push(candidate.value);
}
return merged;
}
function mergeModuleFederationConfigs(configs) {
return mergeUnique(configs.flatMap((configList)=>(configList ?? []).map((config)=>({
value: config,
fingerprint: stableJson(config),
identities: [
nonEmptyString(config.name) ? `name:${config.name}` : void 0,
nonEmptyString(config.filename) ? `entry:${config.filename}` : void 0
].filter((identity)=>!!identity)
}))), 'configuration');
}
function getLegacyModuleFederationConfig(configs) {
const config = configs?.length === 1 ? configs[0] : void 0;
if (!config || !nonEmptyString(config.name) || !nonEmptyString(config.filename)) return;
return config;
}
function mergeModuleFederationBuildMetadata(metadata) {
return mergeUnique(metadata.flatMap((metadataList)=>(metadataList ?? []).map((entry)=>({
value: entry,
fingerprint: stableJson(entry),
identities: [
nonEmptyString(entry.name) ? `name:${entry.name}` : void 0,
nonEmptyString(entry.remote) ? `entry:${entry.remote}` : void 0,
nonEmptyString(entry.mf_manifest) ? `manifest:${entry.mf_manifest}` : void 0
].filter((identity)=>!!identity)
}))), 'metadata');
}
exports.getLegacyModuleFederationConfig = __webpack_exports__.getLegacyModuleFederationConfig;
exports.mergeModuleFederationBuildMetadata = __webpack_exports__.mergeModuleFederationBuildMetadata;
exports.mergeModuleFederationConfigs = __webpack_exports__.mergeModuleFederationConfigs;
for(var __rspack_i in __webpack_exports__)if (-1 === [
"getLegacyModuleFederationConfig",
"mergeModuleFederationBuildMetadata",
"mergeModuleFederationConfigs"
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=federation-config-metadata.js.map