From 06b65a4d319fe9d952bd86c770a72f29fe69d350 Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Mon, 16 Sep 2024 14:13:21 +0100 Subject: [PATCH] fix(angular): dynamic module federation should not reset remoteUrlDefinitions #27793 --- packages/angular/mf/mf.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/angular/mf/mf.ts b/packages/angular/mf/mf.ts index a1d65b1926f48..8184174b9e909 100644 --- a/packages/angular/mf/mf.ts +++ b/packages/angular/mf/mf.ts @@ -6,23 +6,27 @@ declare const __webpack_init_sharing__: (scope: 'default') => Promise; declare const __webpack_share_scopes__: { default: unknown }; let resolveRemoteUrl: ResolveRemoteUrlFunction; + export function setRemoteUrlResolver( _resolveRemoteUrl: ResolveRemoteUrlFunction ) { resolveRemoteUrl = _resolveRemoteUrl; } -let remoteUrlDefinitions: Record = {}; +let remoteUrlDefinitions: Record; + export function setRemoteDefinitions(definitions: Record) { remoteUrlDefinitions = definitions; } export function setRemoteDefinition(remoteName: string, remoteUrl: string) { + remoteUrlDefinitions ??= {}; remoteUrlDefinitions[remoteName] = remoteUrl; } let remoteModuleMap = new Map(); let remoteContainerMap = new Map(); + export async function loadRemoteModule(remoteName: string, moduleName: string) { const remoteModuleKey = `${remoteName}:${moduleName}`; if (remoteModuleMap.has(remoteModuleKey)) { @@ -46,6 +50,7 @@ function loadModule(url: string) { } let initialSharingScopeCreated = false; + async function loadRemoteContainer(remoteName: string) { if (!resolveRemoteUrl && !remoteUrlDefinitions) { throw new Error(