Skip to content

Commit d5d137f

Browse files
authored
fix cookies-edge-response (#859)
* fix headers for edge middleware * changeset
1 parent 2447024 commit d5d137f

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

.changeset/quiet-games-retire.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@opennextjs/aws": patch
3+
---
4+
5+
fix cookies for edge converters

packages/open-next/src/overrides/converters/edge.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,22 @@ const converter: Converter<InternalEvent, InternalResult | MiddlewareResult> = {
7878
}
7979
const headers = new Headers();
8080
for (const [key, value] of Object.entries(result.headers)) {
81-
headers.set(key, Array.isArray(value) ? value.join(",") : value);
81+
if (key === "set-cookie" && typeof value === "string") {
82+
// If the value is a string, we need to parse it into an array
83+
// This is the case for middleware direct result
84+
const cookies = parseCookies(value);
85+
for (const cookie of cookies) {
86+
headers.append(key, cookie);
87+
}
88+
continue;
89+
}
90+
if (Array.isArray(value)) {
91+
for (const v of value) {
92+
headers.append(key, v);
93+
}
94+
} else {
95+
headers.set(key, value);
96+
}
8297
}
8398

8499
return new Response(result.body as ReadableStream, {

0 commit comments

Comments
 (0)