Spaces:
Build error
Build error
import { Request, Response, NextFunction } from 'express'; | |
import { createLogger, APIError, constants } from '@aiostreams/core'; | |
import { createResponse } from '../utils/responses'; | |
const logger = createLogger('server'); | |
export const errorMiddleware = ( | |
err: Error, | |
req: Request, | |
res: Response, | |
next: NextFunction | |
) => { | |
if (!err) { | |
next(); | |
return; | |
} | |
let error; | |
if (!(err instanceof APIError)) { | |
// log unexpected errors | |
logger.error(err); | |
logger.error(err.stack); | |
error = new APIError(constants.ErrorCode.INTERNAL_SERVER_ERROR); | |
} else { | |
error = err; | |
} | |
res.status(error.statusCode).json( | |
createResponse({ | |
success: false, | |
error: { | |
code: error.code, | |
message: error.message, | |
}, | |
}) | |
); | |
return; | |
}; | |