2023-11-13 20:57:04 +00:00
|
|
|
import { renderPage } from 'vike/server'
|
|
|
|
|
|
|
|
export const config = {
|
2023-11-14 15:10:00 +00:00
|
|
|
runtime: 'edge',
|
2023-11-13 20:57:04 +00:00
|
|
|
}
|
|
|
|
export default async function handler(request) {
|
|
|
|
const { url, cookies } = request
|
|
|
|
|
|
|
|
const pageContext = await renderPage({ urlOriginal: url, cookies })
|
|
|
|
|
|
|
|
const { httpResponse, errorWhileRendering, is404 } = pageContext
|
|
|
|
|
|
|
|
if (errorWhileRendering && !is404) {
|
|
|
|
console.error(errorWhileRendering)
|
|
|
|
return new Response('', { status: 500 })
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!httpResponse) {
|
|
|
|
return new Response()
|
|
|
|
}
|
|
|
|
|
|
|
|
const { body, statusCode, headers: headersArray } = httpResponse
|
|
|
|
|
|
|
|
const headers = headersArray.reduce((acc, [name, value]) => {
|
|
|
|
acc[name] = value
|
|
|
|
return acc
|
|
|
|
}, {})
|
|
|
|
|
|
|
|
headers['Cache-Control'] = 's-maxage=1, stale-while-revalidate'
|
|
|
|
|
|
|
|
return new Response(body, { status: statusCode, headers })
|
|
|
|
}
|