Skip to content

Commit e1cf30d

Browse files
committed
fix: split cookies into multiple set-cookie headers
1 parent 1ec2891 commit e1cf30d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

package/src/server.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,19 +129,23 @@ export function createTRPCHandle<Router extends AnyRouter, URL extends string>({
129129
body: string;
130130
};
131131

132+
const finalHeaders = new Headers();
133+
134+
for (const [key, value] of Object.entries(headers)) {
135+
finalHeaders.set(key, value);
136+
}
132137
for (const [key, value] of Object.entries(headersProxy)) {
133-
headers[key] = value;
138+
finalHeaders.set(key, value);
134139
}
135140

136141
if (Object.keys(cookiesProxy).length > 0) {
137-
let cookieHeader = headers['Set-Cookie'] ?? '';
138142
for (const [name, { value, options }] of Object.entries(cookiesProxy)) {
139-
cookieHeader += serialize(name, value, options) + '; ';
143+
const serializedCookie = serialize(name, value, options);
144+
finalHeaders.append('Set-Cookie', serializedCookie);
140145
}
141-
headers['Set-Cookie'] = cookieHeader;
142146
}
143147

144-
return new Response(body, { status, headers });
148+
return new Response(body, { status, headers: finalHeaders });
145149
}
146150

147151
return resolve(event);

0 commit comments

Comments
 (0)