From 9af0a3544d8decc1e9f4c4ee6faa27ccf4c02684 Mon Sep 17 00:00:00 2001 From: Remy Munch Date: Mon, 16 Aug 2021 14:14:10 -0700 Subject: [PATCH] prevent infinite loop for remote circular dependencies --- src/NodeModuleFederation/index.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/NodeModuleFederation/index.js b/src/NodeModuleFederation/index.js index 3eda07c..d8905a3 100644 --- a/src/NodeModuleFederation/index.js +++ b/src/NodeModuleFederation/index.js @@ -53,8 +53,14 @@ function buildRemotes(mfConf) { return Object.entries(mfConf.remotes).reduce((acc, [name, config]) => { acc[name] = { external: `external (function() { - ${builtinsTemplate} - return rpcPerform("${config}").then(rpcProcess) + if (!globalThis._MFRemotes) { + globalThis._MFRemotes = {}; + } + if (!globalThis._MFRemotes["${name}"]) { + ${builtinsTemplate} + globalThis._MFRemotes["${name}"] = rpcPerform("${config}").then(rpcProcess) + } + return globalThis._MFRemotes["${name}"]; }())`, }; return acc;