From bda918e286d5e656807b115a9f0aabadc17faa04 Mon Sep 17 00:00:00 2001 From: yoshikouki <53972292+yoshikouki@users.noreply.github.com> Date: Wed, 6 Mar 2024 22:43:31 +0900 Subject: [PATCH] feat(react-renderer): Support renderToReadableStream options for hydration (#410) * Support renderToReadableStream options for hydration * Add changeset for @hono/react-renderer * Minor updates, not patches --- .changeset/good-hairs-compare.md | 5 +++++ packages/react-renderer/src/react-renderer.ts | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 .changeset/good-hairs-compare.md diff --git a/.changeset/good-hairs-compare.md b/.changeset/good-hairs-compare.md new file mode 100644 index 00000000..c522c377 --- /dev/null +++ b/.changeset/good-hairs-compare.md @@ -0,0 +1,5 @@ +--- +'@hono/react-renderer': minor +--- + +Support renderToReadableStream options. diff --git a/packages/react-renderer/src/react-renderer.ts b/packages/react-renderer/src/react-renderer.ts index a55b3544..90941997 100644 --- a/packages/react-renderer/src/react-renderer.ts +++ b/packages/react-renderer/src/react-renderer.ts @@ -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 + 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: