vite-plugin-zephyr
Version:
Vite plugin for Zephyr
154 lines (153 loc) • 6.13 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__, {
createViteModuleFederationPublicationMetadata: ()=>createViteModuleFederationPublicationMetadata,
getConfigIdentities: ()=>getConfigIdentities,
mergeViteModuleFederationConfigs: ()=>mergeViteModuleFederationConfigs
});
const external_zephyr_agent_namespaceObject = require("zephyr-agent");
function nonEmptyString(value) {
return 'string' == typeof value && value.trim() ? value : void 0;
}
function serializeConfig(config) {
try {
const serialized = JSON.stringify(config);
if (!serialized) throw new Error('configuration did not serialize to JSON');
return JSON.parse(serialized);
} catch {
throw new external_zephyr_agent_namespaceObject.ZephyrError(external_zephyr_agent_namespaceObject.ZeErrors.ERR_DEPLOY_LOCAL_BUILD, {
message: 'Vite Module Federation configuration must be JSON-serializable before Zephyr can publish it.'
});
}
}
function stableJson(value) {
if (null === value || 'object' != typeof value) return JSON.stringify(value) ?? 'undefined';
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 getConfigIdentities(config) {
return [
nonEmptyString(config.name) ? `name:${config.name}` : void 0,
nonEmptyString(config.filename) ? `entry:${config.filename}` : void 0
].filter((identity)=>!!identity);
}
function mergeViteModuleFederationConfigs(configLists) {
const byFingerprint = new Set();
const byIdentity = new Map();
const merged = [];
for (const sourceConfig of configLists.flatMap((configs)=>configs ?? [])){
const config = serializeConfig(sourceConfig);
const fingerprint = stableJson(config);
if (!byFingerprint.has(fingerprint)) {
for (const identity of getConfigIdentities(config)){
const existing = byIdentity.get(identity);
if (existing && existing !== fingerprint) throw new external_zephyr_agent_namespaceObject.ZephyrError(external_zephyr_agent_namespaceObject.ZeErrors.ERR_DEPLOY_LOCAL_BUILD, {
message: `Conflicting Vite Module Federation configuration for ${identity}.`
});
}
byFingerprint.add(fingerprint);
for (const identity of getConfigIdentities(config))byIdentity.set(identity, fingerprint);
merged.push(config);
}
}
return merged;
}
function stringRecord(value) {
if (!value || 'object' != typeof value || Array.isArray(value) || !Object.values(value).every((entry)=>'string' == typeof entry)) return;
return value;
}
function getLegacyConfig(configs) {
const config = 1 === configs.length ? configs[0] : void 0;
const name = nonEmptyString(config?.name);
const filename = nonEmptyString(config?.filename);
if (!config || !name || !filename) return;
const remotes = stringRecord(config.remotes);
return {
name,
filename,
...config.exposes ? {
exposes: config.exposes
} : {},
...remotes ? {
remotes
} : {},
...config.shared ? {
shared: config.shared
} : {},
...config.runtimePlugins ? {
runtimePlugins: config.runtimePlugins
} : {},
...void 0 !== config.manifest ? {
manifest: config.manifest
} : {}
};
}
function libraryType(library) {
if ('string' == typeof library) return library;
if (library && !Array.isArray(library)) return library.type;
}
function createViteModuleFederationPublicationMetadata(configs) {
const mfConfigs = mergeViteModuleFederationConfigs([
configs
]);
const mfConfig = getLegacyConfig(mfConfigs);
const federation = mfConfigs.map((config)=>({
name: config.name,
remote: config.filename,
mf_manifest: (0, external_zephyr_agent_namespaceObject.resolveMfManifestPath)(config.manifest),
library_type: libraryType(config.library),
exposes: config.exposes,
shared: config.shared
}));
return {
...mfConfigs.length > 0 ? {
mfConfigs
} : {},
...mfConfig ? {
mfConfig
} : {},
...federation.length > 0 ? {
federation
} : {}
};
}
exports.createViteModuleFederationPublicationMetadata = __webpack_exports__.createViteModuleFederationPublicationMetadata;
exports.getConfigIdentities = __webpack_exports__.getConfigIdentities;
exports.mergeViteModuleFederationConfigs = __webpack_exports__.mergeViteModuleFederationConfigs;
for(var __rspack_i in __webpack_exports__)if (-1 === [
"createViteModuleFederationPublicationMetadata",
"getConfigIdentities",
"mergeViteModuleFederationConfigs"
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=federation-metadata.js.map