From 088e07400a16f160a37735a4f3d25b4381252e38 Mon Sep 17 00:00:00 2001 From: Vasilii Cuhar Date: Tue, 4 Jun 2024 07:10:18 +0300 Subject: [PATCH] fix: Update serializeDefine implementation from upstream vite (#193) --- .../src/plugins/hmr-rewrite-plugin.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/vite-plugin-web-extension/src/plugins/hmr-rewrite-plugin.ts b/packages/vite-plugin-web-extension/src/plugins/hmr-rewrite-plugin.ts index b85c6a5d..cf10ecb2 100644 --- a/packages/vite-plugin-web-extension/src/plugins/hmr-rewrite-plugin.ts +++ b/packages/vite-plugin-web-extension/src/plugins/hmr-rewrite-plugin.ts @@ -24,17 +24,26 @@ export function hmrRewritePlugin(config: { : undefined; // Coped from node_modules/vite, do a global search for: vite:client-inject - function serializeDefine(define: any): string { + function serializeDefine(define: Record): string { let res = `{`; - for (const key in define) { + const keys = Object.keys(define); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; const val = define[key]; - res += `${JSON.stringify(key)}: ${ - typeof val === "string" ? `(${val})` : JSON.stringify(val) - }, `; + res += `${JSON.stringify(key)}: ${handleDefineValue(val)}`; + if (i !== keys.length - 1) { + res += `, `; + } } return res + `}`; } + function handleDefineValue(value: any): string { + if (typeof value === "undefined") return "undefined"; + if (typeof value === "string") return value; + return JSON.stringify(value); + } + return { name: HMR_REWRITE_PLUGIN_NAME,