summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/src/serverless/request-transform.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/vercel/src/serverless/request-transform.ts')
-rw-r--r--packages/integrations/vercel/src/serverless/request-transform.ts10
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/integrations/vercel/src/serverless/request-transform.ts b/packages/integrations/vercel/src/serverless/request-transform.ts
index 6f3a063bd..97337751f 100644
--- a/packages/integrations/vercel/src/serverless/request-transform.ts
+++ b/packages/integrations/vercel/src/serverless/request-transform.ts
@@ -1,4 +1,5 @@
import type { IncomingMessage, ServerResponse } from 'node:http';
+import type { App } from 'astro/app';
import { Readable } from 'node:stream';
const clientAddressSymbol = Symbol.for('astro.clientAddress');
@@ -77,7 +78,7 @@ export async function getRequest(base: string, req: IncomingMessage): Promise<Re
return request;
}
-export async function setResponse(res: ServerResponse, response: Response): Promise<void> {
+export async function setResponse(app: App, res: ServerResponse, response: Response): Promise<void> {
const headers = Object.fromEntries(response.headers);
if (response.headers.has('set-cookie')) {
@@ -85,6 +86,13 @@ export async function setResponse(res: ServerResponse, response: Response): Prom
headers['set-cookie'] = response.headers.raw()['set-cookie'];
}
+ if(app.setCookieHeaders) {
+ const setCookieHeaders: Array<string> = Array.from(app.setCookieHeaders(response));
+ if(setCookieHeaders.length) {
+ res.setHeader('Set-Cookie', setCookieHeaders);
+ }
+ }
+
res.writeHead(response.status, headers);
if (response.body instanceof Readable) {