File tree Expand file tree Collapse file tree
packages/plugin-rsc/examples/ssg/src/framework Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import { createFromReadableStream } from '@vitejs/plugin-rsc/ssr'
22import React from 'react'
33import { renderToReadableStream } from 'react-dom/server.edge'
4+ import { prerender } from 'react-dom/static.edge'
45import { injectRSCPayload } from 'rsc-html-stream/server'
56import type { RscPayload } from './shared'
67
@@ -18,15 +19,19 @@ export async function renderHtml(
1819 const root = React . use ( payload ) . root
1920 return root
2021 }
21-
2222 const bootstrapScriptContent =
2323 await import . meta. viteRsc . loadBootstrapScriptContent ( 'index' )
2424
25- const htmlStream = await renderToReadableStream ( < SsrRoot /> , {
26- bootstrapScriptContent,
27- } )
25+ let htmlStream : ReadableStream < Uint8Array >
2826 if ( options ?. ssg ) {
29- await htmlStream . allReady
27+ const prerenderResult = await prerender ( < SsrRoot /> , {
28+ bootstrapScriptContent,
29+ } )
30+ htmlStream = prerenderResult . prelude
31+ } else {
32+ htmlStream = await renderToReadableStream ( < SsrRoot /> , {
33+ bootstrapScriptContent,
34+ } )
3035 }
3136
3237 let responseStream : ReadableStream < Uint8Array > = htmlStream
You can’t perform that action at this time.
0 commit comments