mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-27 08:32:56 +00:00
27 lines
1.2 KiB
JavaScript
27 lines
1.2 KiB
JavaScript
|
|
//#region src/getSharedFallbackGetter.ts
|
|
const getSharedFallbackGetter = ({ shareKey, factory, version, webpackRequire, libraryType = "global" }) => {
|
|
const { runtime, instance, bundlerRuntime, sharedFallback } = webpackRequire.federation;
|
|
if (!sharedFallback) return factory;
|
|
const fallbackItems = sharedFallback[shareKey];
|
|
if (!fallbackItems) return factory;
|
|
const fallbackItem = version ? fallbackItems.find((item) => item[1] === version) : fallbackItems[0];
|
|
if (!fallbackItem) throw new Error(`No fallback item found for shareKey: ${shareKey} and version: ${version}`);
|
|
return () => runtime.getRemoteEntry({
|
|
origin: webpackRequire.federation.instance,
|
|
remoteInfo: {
|
|
name: fallbackItem[2],
|
|
entry: `${webpackRequire.p}${fallbackItem[0]}`,
|
|
type: libraryType,
|
|
entryGlobalName: fallbackItem[2],
|
|
shareScope: "default"
|
|
}
|
|
}).then((shareEntry) => {
|
|
if (!shareEntry) throw new Error(`Failed to load fallback entry for shareKey: ${shareKey} and version: ${version}`);
|
|
return shareEntry.init(webpackRequire.federation.instance, bundlerRuntime).then(() => shareEntry.get());
|
|
});
|
|
};
|
|
|
|
//#endregion
|
|
exports.getSharedFallbackGetter = getSharedFallbackGetter;
|
|
//# sourceMappingURL=getSharedFallbackGetter.cjs.map
|