0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2025-03-10 23:01:26 -05:00

Use renderChunk instead of generateBundle

This commit is contained in:
Matthew Phillips 2024-07-01 11:18:17 -04:00
parent 567e6a6d25
commit a86b43d7b1

View file

@ -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);
}
}
},
}
}