UNPKG

@macrof/loader

Version:

React MicroFrontend Loader, Typescript, Webpack 5, ModuleFederation

32 lines (31 loc) 1.14 kB
import { Error } from '../components/error'; export const getUid = (name) => `MFClient-${name}-${Math.random().toString(36).slice(2, -1)}`; export const load = (dynamicImport, name) => dynamicImport(name) .then((app) => { window.__MF_IMPORTED__ = true; return app; }) .catch(() => { console.error(`Failed to load MF ${name}.`); return { default: () => Error }; }); export const unmount = (currentTarget, name) => { var _a, _b, _c; const key = `__${name}__`; window[key] = (_a = window[key]) !== null && _a !== void 0 ? _a : {}; const insertedStyle = window[key]; (_b = insertedStyle.targets) === null || _b === void 0 ? void 0 : _b.splice((_c = insertedStyle.targets) === null || _c === void 0 ? void 0 : _c.findIndex((target) => target === currentTarget), 1); }; export const Bootstrap = (render, element) => { if (!window.__MF_IMPORTED__) { render(element); } }; export function LoadMF(MF) { const Window = window; if (!Window.__PROVIDERS_LOADED__) { MF.providers.forEach((func) => func()); Window.__PROVIDERS_LOADED__ = true; } return MF.apps; }