shack/src/web/default.js

33 lines
694 B
JavaScript

const { renderPage } = require('vite-plugin-ssr/server');
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 {
body, statusCode, contentType, earlyHints,
} = httpResponse;
if (res.writeEarlyHints) {
res.writeEarlyHints({ link: earlyHints.map((e) => e.earlyHintLink) });
}
res.status(statusCode).type(contentType).send(body);
}
return defaultHandler;
}
module.exports = initDefaultHandler;