From db17f2d95a231d3048793420fd49373d0a3c8937 Mon Sep 17 00:00:00 2001 From: Michel Betancourt Date: Tue, 9 Jun 2026 12:04:50 -0400 Subject: [PATCH] fix(preview): rewrite inline module scripts in proxy HTML responses (#1470) Co-authored-by: mdbetancourt Co-authored-by: Bohdan Triapitsyn --- packages/web/server/lib/preview/proxy-runtime.js | 2 +- .../web/server/lib/preview/proxy-runtime.test.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/web/server/lib/preview/proxy-runtime.js b/packages/web/server/lib/preview/proxy-runtime.js index f02c8387..83ae60d2 100644 --- a/packages/web/server/lib/preview/proxy-runtime.js +++ b/packages/web/server/lib/preview/proxy-runtime.js @@ -194,7 +194,7 @@ export const classifyPreviewNavigation = ({ url, currentUrl, targetOrigin }) => return { action: 'external', url: parsed.toString() }; }; - const PREVIEW_BRIDGE_SCRIPT = String.raw`(() => { +const PREVIEW_BRIDGE_SCRIPT = String.raw`(() => { if (window.__openchamberPreviewBridgeInstalled) return; window.__openchamberPreviewBridgeInstalled = true; diff --git a/packages/web/server/lib/preview/proxy-runtime.test.js b/packages/web/server/lib/preview/proxy-runtime.test.js index 1f38add6..aa199441 100644 --- a/packages/web/server/lib/preview/proxy-runtime.test.js +++ b/packages/web/server/lib/preview/proxy-runtime.test.js @@ -146,11 +146,27 @@ describe('preview body URL rewriting', () => { 'import RefreshRuntime from "/@react-refresh";', 'window.__vite_plugin_react_preamble_installed__ = true;', '', + '', + '', + '', '', ].join(''); const output = rewrite(input, 'html'); expect(output).toContain('from "/api/preview/proxy/abc123/@react-refresh"'); + expect(output).toContain('import { injectIntoGlobalHook } from "/api/preview/proxy/abc123/@react-refresh";'); + expect(output).toContain('import value from "/api/preview/proxy/abc123/module.js";'); + expect(output).toContain('const url = "/api/data";'); + expect(output).toContain('import "/api/preview/proxy/abc123/entry.js";'); + expect(output).toContain('import "/not-rewritten.js";'); expect(output).toContain('window.__vite_plugin_react_preamble_installed__ = true;'); expect(output).toContain('const refreshUrl = "/@react-refresh";'); });