feat(react-renderer): Support renderToReadableStream options for hydration (#410)
* Support renderToReadableStream options for hydration * Add changeset for @hono/react-renderer * Minor updates, not patchespull/414/head
parent
053b2d5143
commit
bda918e286
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'@hono/react-renderer': minor
|
||||
---
|
||||
|
||||
Support renderToReadableStream options.
|
|
@ -1,12 +1,13 @@
|
|||
import type { Context } from 'hono'
|
||||
import type { Env, MiddlewareHandler } from 'hono/types'
|
||||
import React from 'react'
|
||||
import { renderToString } from 'react-dom/server'
|
||||
import { renderToString, type RenderToReadableStreamOptions } from 'react-dom/server'
|
||||
import type { Props } from '.'
|
||||
|
||||
type RendererOptions = {
|
||||
docType?: boolean | string
|
||||
stream?: boolean | Record<string, string>
|
||||
readableStreamOptions?: RenderToReadableStreamOptions
|
||||
}
|
||||
|
||||
type BaseProps = {
|
||||
|
@ -26,7 +27,8 @@ const createRenderer =
|
|||
if (options?.stream) {
|
||||
const { renderToReadableStream } = await import('react-dom/server')
|
||||
const stream = await renderToReadableStream(
|
||||
React.createElement(RequestContext.Provider, { value: c }, node)
|
||||
React.createElement(RequestContext.Provider, { value: c }, node),
|
||||
options.readableStreamOptions
|
||||
)
|
||||
return c.body(stream, {
|
||||
headers:
|
||||
|
|
Loading…
Reference in New Issue