From 21283abd8c2754284264cdf516d2250e9f107cf5 Mon Sep 17 00:00:00 2001 From: Kensuke Takahara Date: Thu, 10 Mar 2022 04:34:34 +0900 Subject: [PATCH] fix: redirect in getStaticProps (#2393) * implement redirectSsg. * rename function. --- packages/libs/core/src/handle/redirect.ts | 18 ++++++++++++++++++ .../libs/lambda-at-edge/src/default-handler.ts | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/libs/core/src/handle/redirect.ts b/packages/libs/core/src/handle/redirect.ts index 1202ae001d..0a8f1aae63 100644 --- a/packages/libs/core/src/handle/redirect.ts +++ b/packages/libs/core/src/handle/redirect.ts @@ -7,3 +7,21 @@ export const redirect = (event: Event, route: RedirectRoute) => { event.res.statusMessage = route.statusDescription; event.res.end(); }; + +export const redirectByPageProps = (event: Event, route: RedirectRoute) => { + event.res.setHeader( + "cache-control", + route.headers?.cacheControl?.join(":") ?? "" + ); + event.res.statusCode = 200; + + const body = { + pageProps: { + __N_REDIRECT: route.headers?.location[0].value ?? "", + __N_REDIRECT_STATUS: route.status + }, + __N_SSG: true + }; + event.res.write(JSON.stringify(body)); + event.res.end(); +}; diff --git a/packages/libs/lambda-at-edge/src/default-handler.ts b/packages/libs/lambda-at-edge/src/default-handler.ts index efa17493e8..4af8b03ee0 100644 --- a/packages/libs/lambda-at-edge/src/default-handler.ts +++ b/packages/libs/lambda-at-edge/src/default-handler.ts @@ -51,7 +51,7 @@ import { s3BucketNameFromEventRequest } from "./s3/s3BucketNameFromEventRequest" import { triggerStaticRegeneration } from "./lib/triggerStaticRegeneration"; import { s3StorePage } from "./s3/s3StorePage"; import { createRedirectResponse } from "@sls-next/core/dist/module/route/redirect"; -import { redirect } from "@sls-next/core/dist/module/handle/redirect"; +import { redirectByPageProps } from "@sls-next/core/dist/module/handle/redirect"; import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; import getStream from "get-stream"; @@ -492,7 +492,7 @@ const handleOriginResponse = async ({ statusCode ); - redirect({ req, res, responsePromise }, redirectResponse); + redirectByPageProps({ req, res, responsePromise }, redirectResponse); return await responsePromise; }