summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2023-05-01 10:08:18 -0400
committerGravatar GitHub <noreply@github.com> 2023-05-01 10:08:18 -0400
commitc405cef64711a7b6a480e8b4068cd2bf3cf889a9 (patch)
treed889655a1ccd376e95c8efff81f65b69a8d798fd /packages/integrations/node/src
parent649d70934e709bb1aa6e5e7583b12fa1703377cb (diff)
downloadastro-c405cef64711a7b6a480e8b4068cd2bf3cf889a9.tar.gz
astro-c405cef64711a7b6a480e8b4068cd2bf3cf889a9.tar.zst
astro-c405cef64711a7b6a480e8b4068cd2bf3cf889a9.zip
Catch errors that occur within the stream in the Node adapter (#6935)
* Catch errors that occur within the stream in the Node adapter * Adding a changeset * Better error message on completely uncaught errors within the stream * Update test
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r--packages/integrations/node/src/middleware.ts9
1 files changed, 7 insertions, 2 deletions
diff --git a/packages/integrations/node/src/middleware.ts b/packages/integrations/node/src/middleware.ts
index 1af4539a6..7c45db1ae 100644
--- a/packages/integrations/node/src/middleware.ts
+++ b/packages/integrations/node/src/middleware.ts
@@ -51,8 +51,13 @@ async function writeWebResponse(app: NodeApp, res: ServerResponse, webResponse:
res.writeHead(status, Object.fromEntries(headers.entries()));
if (webResponse.body) {
- for await (const chunk of responseIterator(webResponse) as unknown as Readable) {
- res.write(chunk);
+ try {
+ for await (const chunk of responseIterator(webResponse) as unknown as Readable) {
+ res.write(chunk);
+ }
+ } catch(err: any) {
+ console.error(err?.stack || err?.message || String(err))
+ res.write('Internal server error');
}
}
res.end();