23 lines
699 B
TypeScript
23 lines
699 B
TypeScript
|
|
import { Request, Response, NextFunction } from 'express';
|
||
|
|
import { AppError, err } from '../types/index';
|
||
|
|
|
||
|
|
export function errorHandler(
|
||
|
|
error: Error,
|
||
|
|
_req: Request,
|
||
|
|
res: Response,
|
||
|
|
_next: NextFunction
|
||
|
|
): void {
|
||
|
|
const statusCode = error instanceof AppError ? error.statusCode : 500;
|
||
|
|
const code = error instanceof AppError ? error.code : 'INTERNAL_ERROR';
|
||
|
|
const message =
|
||
|
|
process.env.NODE_ENV === 'production' && statusCode === 500
|
||
|
|
? 'Internal server error'
|
||
|
|
: error.message;
|
||
|
|
|
||
|
|
if (statusCode === 500 && process.env.NODE_ENV !== 'production') {
|
||
|
|
console.error('[ErrorHandler]', error);
|
||
|
|
}
|
||
|
|
|
||
|
|
res.status(statusCode).json(err(message, code ? { code } : undefined));
|
||
|
|
}
|