From a86b43d7b160f0da97b3851554eeafccaaa0603e Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 1 Jul 2024 11:18:17 -0400 Subject: [PATCH] Use renderChunk instead of generateBundle --- .../vite-plugin-server-islands.ts | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/packages/astro/src/core/server-islands/vite-plugin-server-islands.ts b/packages/astro/src/core/server-islands/vite-plugin-server-islands.ts index 850cf1e127..c657a4569d 100644 --- a/packages/astro/src/core/server-islands/vite-plugin-server-islands.ts +++ b/packages/astro/src/core/server-islands/vite-plugin-server-islands.ts @@ -73,23 +73,18 @@ export function vitePluginServerIslands({ settings }: { settings: AstroSettings } } }, - generateBundle(_options, bundles) { - let mapSource = 'new Map(['; - for(let [resolvedPath, referenceId] of referenceIdMap) { - const fileName = this.getFileName(referenceId); - const islandName = settings.serverIslandNameMap.get(resolvedPath)!; - mapSource += `\n\t['${islandName}', () => import('./${fileName}')],` - } - mapSource += '\n]);'; - referenceIdMap.clear(); - - for (const [_fileName, output] of Object.entries(bundles)) { - if(output.type !== 'chunk') continue; - - if(output.code.includes(serverIslandPlaceholder)) { - output.code = output.code.replace(serverIslandPlaceholder, mapSource); + renderChunk(code) { + if(code.includes(serverIslandPlaceholder)) { + let mapSource = 'new Map(['; + for(let [resolvedPath, referenceId] of referenceIdMap) { + const fileName = this.getFileName(referenceId); + const islandName = settings.serverIslandNameMap.get(resolvedPath)!; + mapSource += `\n\t['${islandName}', () => import('./${fileName}')],` } + mapSource += '\n]);'; + referenceIdMap.clear(); + return code.replace(serverIslandPlaceholder, mapSource); } - } + }, } }