File size: 583 Bytes
c01955c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { Request, Response, NextFunction } from "express";
import logger from "../logger/create.logger.js";
type AsyncFunction = (req: Request, res: Response, next: NextFunction) => Promise<any>;

const asyncHandler = (fn: AsyncFunction) => (req: Request, res: Response, next: NextFunction) => {
    Promise.resolve(fn(req, res, next)).catch((error: any) => {
        logger.error(error);
        res.status(error.statusCode || 500).json({ 
            success: false,
            message: error.message || "Something went wrong" 
        });
    });
};

export default asyncHandler;