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/node/src | |
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/node/src')
-rw-r--r-- | packages/integrations/node/src/server.ts | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/integrations/node/src/server.ts b/packages/integrations/node/src/server.ts index 12fcf0448..794580ee9 100644 --- a/packages/integrations/node/src/server.ts +++ b/packages/integrations/node/src/server.ts @@ -18,7 +18,7 @@ export function createExports(manifest: SSRManifest) { if (route) { try { const response = await app.render(req); - await writeWebResponse(res, response); + await writeWebResponse(app, res, response); } catch (err: unknown) { if (next) { next(err); @@ -39,8 +39,16 @@ export function createExports(manifest: SSRManifest) { }; } -async function writeWebResponse(res: ServerResponse, webResponse: Response) { +async function writeWebResponse(app: NodeApp, res: ServerResponse, webResponse: Response) { const { status, headers, body } = webResponse; + + if(app.setCookieHeaders) { + const setCookieHeaders: Array<string> = Array.from(app.setCookieHeaders(webResponse)); + if(setCookieHeaders.length) { + res.setHeader('Set-Cookie', setCookieHeaders); + } + } + res.writeHead(status, Object.fromEntries(headers.entries())); if (body) { for await (const chunk of body as unknown as Readable) { |