An ATproto social media client -- with an independent Appview.
at main 23 lines 603 B view raw
1import {ErrorRequestHandler, Request, RequestHandler, Response} from 'express' 2 3import {httpLogger} from '../logger.js' 4 5export type Handler = (req: Request, res: Response) => Awaited<void> 6 7export const handler = (runHandler: Handler): RequestHandler => { 8 return async (req, res, next) => { 9 try { 10 await runHandler(req, res) 11 } catch (err) { 12 next(err) 13 } 14 } 15} 16 17export const errorHandler: ErrorRequestHandler = (err, _req, res, next) => { 18 httpLogger.error({err}, 'request error') 19 if (res.headersSent) { 20 return next(err) 21 } 22 return res.status(500).end('server error') 23}