summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/src
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2023-08-01 09:52:16 -0500
committerGravatar GitHub <noreply@github.com> 2023-08-01 09:52:16 -0500
commit298dbb89f2963a547370b6e65cafd2650fdb1b27 (patch)
tree6650c12dc5985f5d700319b3fc4a3826fbc40070 /packages/integrations/vercel/src
parent0b8375fe82a15bfff3f517f98de6454adb2779f1 (diff)
downloadastro-298dbb89f2963a547370b6e65cafd2650fdb1b27.tar.gz
astro-298dbb89f2963a547370b6e65cafd2650fdb1b27.tar.zst
astro-298dbb89f2963a547370b6e65cafd2650fdb1b27.zip
Refactor 404 and 500 approach (#7754)
* fix(app): refactor 404 and 500 approach * chore: refactor logic * fix: always treat error as page * test: migrate ssr-prerender-404 to node adapter * feat: merge original response metadata with error response * chore: update lockfile * chore: trigger ci * chore(lint): fix lint issue * fix: ensure merged request has proper status * fix(node): prerender test * chore: update test label * fix(node): improve 404 behavior in middleware mode * fix(vercel): improve 404 behavior * fix(netlify): improve 404 behavior * chore: update test labels * chore: force ci * chore: fix lint * fix: avoid infinite loops * test: fix failing test in Node 18 * chore: remove volta
Diffstat (limited to 'packages/integrations/vercel/src')
-rw-r--r--packages/integrations/vercel/src/edge/entrypoint.ts20
-rw-r--r--packages/integrations/vercel/src/serverless/entrypoint.ts7
2 files changed, 8 insertions, 19 deletions
diff --git a/packages/integrations/vercel/src/edge/entrypoint.ts b/packages/integrations/vercel/src/edge/entrypoint.ts
index a9870ef2b..4b88bc793 100644
--- a/packages/integrations/vercel/src/edge/entrypoint.ts
+++ b/packages/integrations/vercel/src/edge/entrypoint.ts
@@ -13,21 +13,15 @@ export function createExports(manifest: SSRManifest) {
const app = new App(manifest);
const handler = async (request: Request): Promise<Response> => {
- if (app.match(request)) {
- Reflect.set(request, clientAddressSymbol, request.headers.get('x-forwarded-for'));
- const response = await app.render(request);
- if (app.setCookieHeaders) {
- for (const setCookieHeader of app.setCookieHeaders(response)) {
- response.headers.append('Set-Cookie', setCookieHeader);
- }
+ const routeData = app.match(request);
+ Reflect.set(request, clientAddressSymbol, request.headers.get('x-forwarded-for'));
+ const response = await app.render(request, routeData);
+ if (app.setCookieHeaders) {
+ for (const setCookieHeader of app.setCookieHeaders(response)) {
+ response.headers.append('Set-Cookie', setCookieHeader);
}
- return response;
}
-
- return new Response(null, {
- status: 404,
- statusText: 'Not found',
- });
+ return response;
};
return { default: handler };
diff --git a/packages/integrations/vercel/src/serverless/entrypoint.ts b/packages/integrations/vercel/src/serverless/entrypoint.ts
index 48c9b71d9..9e3cb1da0 100644
--- a/packages/integrations/vercel/src/serverless/entrypoint.ts
+++ b/packages/integrations/vercel/src/serverless/entrypoint.ts
@@ -23,12 +23,7 @@ export const createExports = (manifest: SSRManifest) => {
return res.end(err.reason || 'Invalid request body');
}
- let routeData = app.match(request, { matchNotFound: true });
- if (!routeData) {
- res.statusCode = 404;
- return res.end('Not found');
- }
-
+ let routeData = app.match(request);
let locals = {};
if (request.headers.has(ASTRO_LOCALS_HEADER)) {
let localsAsString = request.headers.get(ASTRO_LOCALS_HEADER);