/** * Global error handling middleware. * @module errorHandler */ import { Request, Response, NextFunction } from 'express'; import { AppError } from '../utils/errors.js'; import { logger } from '../utils/logger.js'; export function errorHandler( err: Error, _req: Request, res: Response, _next: NextFunction ): void { if (err instanceof AppError) { logger.warn(`Operational error: ${err.message}`); res.status(err.statusCode).json({ status: 'error', message: err.message, }); return; } logger.error(`Unexpected error: ${err.message}`, { stack: err.stack }); res.status(500).json({ status: 'error', message: 'Internal server error', }); }