@@ -4,7 +4,7 @@ import HTMLMinifier from '@minify-html/node';
44import { jsx , toJs } from 'estree-util-to-js' ;
55
66import bundleCode from './bundle.mjs' ;
7- import { createEnhancedRequire } from './chunkHelper .mjs' ;
7+ import { createChunkedRequire } from './chunks .mjs' ;
88
99/**
1010 * Executes server-side JavaScript code in an isolated context with virtual module support.
@@ -21,13 +21,13 @@ export async function executeServerCode(serverCodeMap, requireFn) {
2121 const dehydratedMap = new Map ( ) ;
2222
2323 // Bundle all server-side code, which may produce code-split chunks
24- const { jsChunks } = await bundleCode ( serverCodeMap , { server : true } ) ;
24+ const { chunks } = await bundleCode ( serverCodeMap , { server : true } ) ;
2525
26- const entryChunks = jsChunks . filter ( c => c . isEntry ) ;
27- const otherChunks = jsChunks . filter ( c => ! c . isEntry ) ;
26+ const entryChunks = chunks . filter ( c => c . isEntry ) ;
27+ const otherChunks = chunks . filter ( c => ! c . isEntry ) ;
2828
2929 // Create enhanced require function that can resolve code-split chunks
30- const enhancedRequire = createEnhancedRequire ( otherChunks , requireFn ) ;
30+ const enhancedRequire = createChunkedRequire ( otherChunks , requireFn ) ;
3131
3232 // Execute each bundled entry and collect dehydrated HTML results
3333 for ( const chunk of entryChunks ) {
@@ -81,28 +81,24 @@ export async function processJSXEntries(
8181 // Bundle all client code at once (with code splitting for shared chunks)
8282 const clientBundle = await bundleCode ( clientCodeMap ) ;
8383
84- // Process each entry to create final HTML
85- const results = entries . map ( ( { data } ) => {
86- const fileName = `${ data . api } .js` ;
84+ const titleSuffix = `Node.js v${ version } Documentation` ;
8785
88- const title = `${ data . heading . data . name } | Node.js v${ version } Documentation` ;
86+ // Process each entry to create final HTML
87+ const results = entries . map ( ( { data : { api, heading } } ) => {
88+ const fileName = `${ api } .js` ;
8989
9090 // Replace template placeholders with actual content
9191 const renderedHtml = template
92- . replace ( '{{title}}' , title )
92+ . replace ( '{{title}}' , ` ${ heading . data . name } | ${ titleSuffix } ` )
9393 . replace ( '{{dehydrated}}' , serverBundle . get ( fileName ) ?? '' )
94- . replace ( '{{importMap}}' , clientBundle . importMapHtml )
94+ . replace ( '{{importMap}}' , clientBundle . importMap ?? '' )
9595 . replace ( '{{entrypoint}}' , `./${ fileName } ?${ randomUUID ( ) } ` ) ;
9696
9797 // Minify HTML (input must be a Buffer)
9898 const finalHTMLBuffer = HTMLMinifier . minify ( Buffer . from ( renderedHtml ) , { } ) ;
9999
100- return { html : finalHTMLBuffer , api : data . api } ;
100+ return { html : finalHTMLBuffer , api } ;
101101 } ) ;
102102
103- return {
104- results,
105- css : clientBundle . css ?? '' ,
106- jsChunks : clientBundle . jsChunks ,
107- } ;
103+ return { results, ...clientBundle } ;
108104}
0 commit comments