Files
speckle-server/packages/monitor-deployment/src/utils/errorHandler.ts
T

26 lines
714 B
TypeScript

import { ErrorRequestHandler } from 'express'
import { isNaN, isObject, isString } from 'lodash-es'
export const errorHandler: ErrorRequestHandler = (err, req, res) => {
if (
isObject(err) &&
'status' in err &&
typeof err.status === 'number' &&
!isNaN(err.status)
) {
res.status(err?.status)
} else {
res.status(500)
}
res.setHeader('Content-Type', 'application/json')
if (req.app.get('env') === 'development') {
res.send(JSON.stringify(err, undefined, 2))
} else if (isObject(err) && 'message' in err && isString(err.message)) {
res.send(JSON.stringify({ message: err.message }))
} else {
res.send(JSON.stringify({ message: 'Internal Server Error' }))
}
}