From 7f7bf03ea0dd18b8a29b6a1a5f4f2b17bb14565d Mon Sep 17 00:00:00 2001 From: Theo Moulart Date: Thu, 3 Sep 2026 22:35:23 +0200 Subject: [PATCH 1/2] fix(mf-runtime): await remote initialization before loading exposed modules --- libs/mf-runtime/src/lib/loader/dynamic-federation.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/mf-runtime/src/lib/loader/dynamic-federation.ts b/libs/mf-runtime/src/lib/loader/dynamic-federation.ts index 06f2f113..b4b55a30 100644 --- a/libs/mf-runtime/src/lib/loader/dynamic-federation.ts +++ b/libs/mf-runtime/src/lib/loader/dynamic-federation.ts @@ -3,8 +3,8 @@ type Scope = unknown; type Factory = () => any; type Container = { - init(shareScope: Scope): void; - get(module: string): Factory; + init(shareScope: Scope): void | Promise; + get(module: string): Factory | Promise; }; let config: Manifest = {}; @@ -113,8 +113,8 @@ async function loadRemoteModuleEntry(remoteEntry: string): Promise { return Promise.resolve(); } return await import(/* webpackIgnore:true */ remoteEntry).then( - (container) => { - initRemote(container, remoteEntry); + async (container) => { + await initRemote(container, remoteEntry); containerMap[remoteEntry] = container; }, ); @@ -140,11 +140,11 @@ async function loadRemoteScriptEntry( script.onerror = reject; - script.onload = () => { + script.onload = async () => { const container = (window as unknown as Record)[ remoteName ] as Container; - initRemote(container, remoteName); + await initRemote(container, remoteName); containerMap[remoteName] = container; resolve(); }; From 2dc2d2681ea50c6a2b157e80ba218057a33f4951 Mon Sep 17 00:00:00 2001 From: Moulyy <115405804+Moulyy@users.noreply.github.com> Date: Tue, 8 Sep 2026 14:35:31 +0200 Subject: [PATCH 2/2] Update libs/mf-runtime/src/lib/loader/dynamic-federation.ts Co-authored-by: Nikita Karamov --- libs/mf-runtime/src/lib/loader/dynamic-federation.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/mf-runtime/src/lib/loader/dynamic-federation.ts b/libs/mf-runtime/src/lib/loader/dynamic-federation.ts index b4b55a30..2d639686 100644 --- a/libs/mf-runtime/src/lib/loader/dynamic-federation.ts +++ b/libs/mf-runtime/src/lib/loader/dynamic-federation.ts @@ -144,7 +144,11 @@ async function loadRemoteScriptEntry( const container = (window as unknown as Record)[ remoteName ] as Container; - await initRemote(container, remoteName); + try { + await initRemote(container, remoteName); + } catch (error) { + reject(error); + } containerMap[remoteName] = container; resolve(); };