Add production environment guards to Keystatic routes

Implemented production environment guards in Keystatic routes to prevent access to certain functions in production mode. Updated 'layout.tsx.hbs' to redirect to home if the environment is production, and modified 'keystatic-route-handler.ts' to return 404 status code if attempting to utilize route handlers while in production.
This commit is contained in:
giancarlo
2024-05-07 19:07:35 +07:00
parent fc3929c7dd
commit dd99e47e70
2 changed files with 29 additions and 4 deletions

View File

@@ -2,6 +2,28 @@ import { makeRouteHandler } from '@keystatic/next/route-handler';
import config from './keystatic.config';
export const keystaticRouteHandlers = makeRouteHandler({
const handlers = makeRouteHandler({
config,
});
/**
* @name productionGuard
* @description Guard for production environment. Returns 404 if in production.
* @param routeHandler
*/
function productionGuard(routeHandler: (req: Request) => Promise<Response>) {
if (process.env.NODE_ENV === 'production') {
return new Response('Not found', { status: 404 });
}
return (req: Request) => routeHandler(req);
}
/**
* @name keystaticRouteHandlers
* @description Route handlers for keystatic
*/
export const keystaticRouteHandlers = {
POST: productionGuard(handlers.POST),
GET: productionGuard(handlers.GET),
};