diff options
author | 2022-09-28 16:55:27 -0400 | |
---|---|---|
committer | 2022-09-28 16:55:27 -0400 | |
commit | d3091f89e92fcfe1ad48daca74055d54b1c853a3 (patch) | |
tree | 78a49dcdd19b970ba42fb100ec2f25a39f047d97 /packages/integrations/vercel/src/serverless/request-transform.ts | |
parent | ec55745ae5454207fa0405170588d898b49b9a48 (diff) | |
download | astro-d3091f89e92fcfe1ad48daca74055d54b1c853a3.tar.gz astro-d3091f89e92fcfe1ad48daca74055d54b1c853a3.tar.zst astro-d3091f89e92fcfe1ad48daca74055d54b1c853a3.zip |
Astro.cookies implementation (#4876)
* Astro.cookies implementation
* Remove unused var
* Fix build
* Add a changesetp
* Remove spoken-word expires
Diffstat (limited to 'packages/integrations/vercel/src/serverless/request-transform.ts')
-rw-r--r-- | packages/integrations/vercel/src/serverless/request-transform.ts | 10 |
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) { |