UNPKG

kequapp

Version:

DEPRECATED: renamed to @kequtech/arbor

27 lines (26 loc) 917 B
import { renderError, renderRoute } from "./actions.js"; import { createBundle } from "./create-bundle.js"; export async function requestProcessor(router, req, res) { const startedAt = Date.now(); const url = new URL(req.url || '/', `${req.headers.protocol}://${req.headers.host}`); const method = req.method || 'GET'; const [route, params, methods] = router(method, url.pathname); const bundle = createBundle(req, res, params, methods); const { logger } = route; try { await renderRoute(route, bundle); } catch (error) { try { await renderError(route, bundle, error, logger); } catch (fatalError) { res.statusCode = 500; logger.error(fatalError); } } if (!res.writableEnded) { res.end(); } logger.info(res.statusCode, Date.now() - startedAt, method, url.pathname + url.search); }