From 121dd524e7c25a4b5050cfc988618b1e7024be68 Mon Sep 17 00:00:00 2001
From: f4562 <nicolas.tual@arkea.com>
Date: Mon, 23 Dec 2024 07:06:07 +0100
Subject: [PATCH] fix: normalize shared with trailing slash

---
 src/plugins/pluginProxySharedModule_preBuild.ts | 4 +---
 src/utils/normalizeModuleFederationOptions.ts   | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/plugins/pluginProxySharedModule_preBuild.ts b/src/plugins/pluginProxySharedModule_preBuild.ts
index bc41775..4039eb2 100644
--- a/src/plugins/pluginProxySharedModule_preBuild.ts
+++ b/src/plugins/pluginProxySharedModule_preBuild.ts
@@ -45,9 +45,7 @@ export function proxySharedModule(options: {
       config(config: UserConfig, { command }) {
         (config.resolve as any).alias.push(
           ...Object.keys(shared).map((key) => {
-            const pattern = key.endsWith('/')
-              ? `(^${key.replace(/\/$/, '')}(\/.+)?$)`
-              : `(^${key}$)`;
+            const pattern = key.endsWith('/') ? `(^${key.replace(/\/$/, '')}(\/)?$)` : `(^${key}$)`;
             return {
               // Intercept all shared requests and proxy them to loadShare
               find: new RegExp(pattern),
diff --git a/src/utils/normalizeModuleFederationOptions.ts b/src/utils/normalizeModuleFederationOptions.ts
index 7469811..1d31648 100644
--- a/src/utils/normalizeModuleFederationOptions.ts
+++ b/src/utils/normalizeModuleFederationOptions.ts
@@ -195,13 +195,13 @@ function normalizeShared(
   const result: NormalizedShared = {};
   if (Array.isArray(shared)) {
     shared.forEach((key) => {
-      result[key] = normalizeShareItem(key, key);
+      result[cleanShareItem(key)] = normalizeShareItem(key, key);
     });
     return result;
   }
   if (typeof shared === 'object') {
     Object.keys(shared).forEach((key) => {
-      result[key] = normalizeShareItem(key, shared[key] as any);
+      result[cleanShareItem(key)] = normalizeShareItem(key, shared[key] as any);
     });
   }