import type { Response, NextFunction } from 'express' import { ExtendedRequest } from '@/types' const INVALID_HEADER_KEYS = [ // Next.js will pick this up and override the status code. // We don't want that to happen because `x-invoke-status: 203` can // trigger the CDN to cache it. // It can also trigger a 500 error because the header is not used // correctly. 'x-invoke-status', ] export default function handleInvalidNextPaths( req: ExtendedRequest, res: Response, next: NextFunction, ) { const header = INVALID_HEADER_KEYS.find((key) => req.headers[key]) if (header) { // There's no point attempting to set a cache-control on this. // The CDN will not cache if the status code is not a success // and not a 404. res.status(400).type('text').send('Invalid request headers') return } return next() }