diff --git a/.changeset/twenty-windows-raise.md b/.changeset/twenty-windows-raise.md new file mode 100644 index 00000000..3ac3e78a --- /dev/null +++ b/.changeset/twenty-windows-raise.md @@ -0,0 +1,5 @@ +--- +'@hono/react-renderer': patch +--- + +fix: overwriting headers when stream is enabled diff --git a/packages/react-renderer/src/react-renderer.ts b/packages/react-renderer/src/react-renderer.ts index 90941997..e83bf916 100644 --- a/packages/react-renderer/src/react-renderer.ts +++ b/packages/react-renderer/src/react-renderer.ts @@ -30,15 +30,15 @@ const createRenderer = React.createElement(RequestContext.Provider, { value: c }, node), options.readableStreamOptions ) - return c.body(stream, { - headers: - options.stream === true - ? { - 'Transfer-Encoding': 'chunked', - 'Content-Type': 'text/html; charset=UTF-8', - } - : options.stream, - }) + if (options.stream === true) { + c.header('Transfer-Encoding', 'chunked') + c.header('Content-Type', 'text/html; charset=UTF-8') + } else { + for (const [key, value] of Object.entries(options.stream)) { + c.header(key, value) + } + } + return c.body(stream) } else { const docType = typeof options?.docType === 'string' diff --git a/packages/react-renderer/test/react-renderer.test.tsx b/packages/react-renderer/test/react-renderer.test.tsx index f7a07681..048b8df4 100644 --- a/packages/react-renderer/test/react-renderer.test.tsx +++ b/packages/react-renderer/test/react-renderer.test.tsx @@ -105,6 +105,23 @@ describe('Basic', () => { '