summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src/nodeMiddleware.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/node/src/nodeMiddleware.ts')
-rw-r--r--packages/integrations/node/src/nodeMiddleware.ts9
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) {