Skip to content

Commit df8b800

Browse files
authored
chore(rsc): use prerender in ssg example (#758)
1 parent a7ca366 commit df8b800

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

packages/plugin-rsc/examples/ssg/src/framework/entry.ssr.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { createFromReadableStream } from '@vitejs/plugin-rsc/ssr'
22
import React from 'react'
33
import { renderToReadableStream } from 'react-dom/server.edge'
4+
import { prerender } from 'react-dom/static.edge'
45
import { injectRSCPayload } from 'rsc-html-stream/server'
56
import 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

0 commit comments

Comments
 (0)