shack/src/web/default.js

35 lines
744 B
JavaScript

import { renderPage } from 'vite-plugin-ssr/server';
export default async function initDefaultHandler() {
async function defaultHandler(req, res, next) {
const pageContextInit = {
urlOriginal: req.originalUrl,
session: req.session,
};
const pageContext = await renderPage(pageContextInit);
const { httpResponse } = pageContext;
if (!httpResponse) {
next();
return;
}
const {
statusCode, contentType, earlyHints,
} = httpResponse;
const body = await httpResponse.getBody();
console.log(pageContext.pageData);
if (res.writeEarlyHints) {
res.writeEarlyHints({ link: earlyHints.map((e) => e.earlyHintLink) });
}
res.status(statusCode).type(contentType).send(body);
}
return defaultHandler;
}