forked from
samuel.fm/statusphere-react
the statusphere demo reworked into a vite/react app in a monorepo
1import { XRPCError } from '@atproto/xrpc-server'
2import { ErrorRequestHandler } from 'express'
3
4import { AppContext } from '#/context'
5
6export const createHandler: (ctx: AppContext) => ErrorRequestHandler =
7 (ctx) => (err, _req, res, next) => {
8 ctx.logger.error('unexpected internal server error', err)
9 if (res.headersSent) {
10 return next(err)
11 }
12 const serverError = XRPCError.fromError(err)
13 res.status(serverError.type).json(serverError.payload)
14 }