From 6eaf2a14cd3bdc1456903e3f9b34ca3964063f79 Mon Sep 17 00:00:00 2001 From: yoshikouki <53972292+yoshikouki@users.noreply.github.com> Date: Sun, 17 Mar 2024 10:40:58 +0900 Subject: [PATCH] fix(react-renderer): fix overwriting headers when stream is enabled (#419) * fix(react-renderer): fix overwriting headers when stream is enabled * Create changeset * Add test to set headers with stream enaabled --- .changeset/twenty-windows-raise.md | 5 +++++ packages/react-renderer/src/react-renderer.ts | 18 +++++++++--------- .../test/react-renderer.test.tsx | 17 +++++++++++++++++ 3 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 .changeset/twenty-windows-raise.md 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', () => { '