import type { Request, Response, NextFunction } from 'express'; export class AppError extends Error { constructor( public statusCode: number, public message: string, public isOperational = true ) { super(message); Object.setPrototypeOf(this, AppError.prototype); } } export function errorMiddleware( err: Error, req: Request, res: Response, next: NextFunction ) { if (err instanceof AppError) { return res.status(err.statusCode).json({ status: 'error', message: err.message, }); } console.error('Unhandled error:', err); return res.status(500).json({ status: 'error', message: 'Internal server error', }); }