25 lines
570 B
JavaScript
25 lines
570 B
JavaScript
|
const url = require('url');
|
||
|
|
||
|
module.exports = (page) => {
|
||
|
const handler = async (request) => {
|
||
|
const { pathname, query } = url.parse(request.url, true);
|
||
|
|
||
|
// todo: figure out static asset serving
|
||
|
if (pathname.startsWith('/_next/')) {
|
||
|
return new Response('', {
|
||
|
status: 404,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
const { status, headers, body } = await page.render(pathname, query);
|
||
|
|
||
|
// todo: consider etag handling
|
||
|
return new Response(body, {
|
||
|
status,
|
||
|
headers: new Headers(headers),
|
||
|
});
|
||
|
};
|
||
|
|
||
|
return handler;
|
||
|
};
|