22 lines
609 B
TypeScript
22 lines
609 B
TypeScript
import { ErrorRequestHandler } from 'express';
|
|
import { pick } from 'lodash';
|
|
|
|
import { CustomError } from 'errors';
|
|
|
|
export const handleError: ErrorRequestHandler = (error, _req, res, _next) => {
|
|
console.error(error);
|
|
|
|
const isErrorSafeForClient = error instanceof CustomError;
|
|
|
|
const clientError = isErrorSafeForClient
|
|
? pick(error, ['message', 'code', 'status', 'data'])
|
|
: {
|
|
message: 'Something went wrong, please contact our support.',
|
|
code: 'INTERNAL_ERROR',
|
|
status: 500,
|
|
data: {},
|
|
};
|
|
|
|
res.status(clientError.status).send({ error: clientError });
|
|
};
|