diff options
Diffstat (limited to 'packages/integrations/node/src/nodeMiddleware.ts')
-rw-r--r-- | packages/integrations/node/src/nodeMiddleware.ts | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/packages/integrations/node/src/nodeMiddleware.ts b/packages/integrations/node/src/nodeMiddleware.ts index c23cdb89c..492130daa 100644 --- a/packages/integrations/node/src/nodeMiddleware.ts +++ b/packages/integrations/node/src/nodeMiddleware.ts @@ -3,6 +3,7 @@ import type { IncomingMessage, ServerResponse } from 'http'; import type { Readable } from 'stream'; import { responseIterator } from './response-iterator'; import type { Options } from './types'; +import { createOutgoingHttpHeaders } from './createOutgoingHttpHeaders'; export default function (app: NodeApp, mode: Options['mode']) { return async function ( @@ -44,12 +45,16 @@ async function writeWebResponse(app: NodeApp, res: ServerResponse, webResponse: if (app.setCookieHeaders) { const setCookieHeaders: Array<string> = Array.from(app.setCookieHeaders(webResponse)); + if (setCookieHeaders.length) { - res.setHeader('Set-Cookie', setCookieHeaders); + for (const setCookieHeader of setCookieHeaders) { + webResponse.headers.append('set-cookie', setCookieHeader); + } } } - res.writeHead(status, Object.fromEntries(headers.entries())); + const nodeHeaders = createOutgoingHttpHeaders(headers); + res.writeHead(status, nodeHeaders); if (webResponse.body) { try { for await (const chunk of responseIterator(webResponse) as unknown as Readable) { |