webapp/api/edge-ssr.js
Untone 1a393c75c5
All checks were successful
deploy / test (push) Has been skipped
deploy / Update templates on Mailgun (push) Successful in 21s
linter-wider
2024-02-16 22:53:42 +03:00

33 lines
801 B
JavaScript

import { renderPage } from 'vike/server'
export const config = {
runtime: 'edge'
}
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 })
}