37 lines
No EOL
1.3 KiB
JavaScript
37 lines
No EOL
1.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.asyncHandler = exports.createError = exports.errorHandler = void 0;
|
|
const logger_1 = require("../utils/logger");
|
|
const errorHandler = (error, req, res, next) => {
|
|
const statusCode = error.statusCode || 500;
|
|
const message = error.message || 'Internal Server Error';
|
|
logger_1.logger.error('Error occurred:', {
|
|
error: error.message,
|
|
stack: error.stack,
|
|
url: req.url,
|
|
method: req.method,
|
|
ip: req.ip,
|
|
userAgent: req.get('User-Agent'),
|
|
});
|
|
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
res.status(statusCode).json({
|
|
success: false,
|
|
message: isDevelopment ? message : 'Something went wrong',
|
|
...(isDevelopment && { stack: error.stack }),
|
|
});
|
|
};
|
|
exports.errorHandler = errorHandler;
|
|
const createError = (message, statusCode = 500) => {
|
|
const error = new Error(message);
|
|
error.statusCode = statusCode;
|
|
error.isOperational = true;
|
|
return error;
|
|
};
|
|
exports.createError = createError;
|
|
const asyncHandler = (fn) => {
|
|
return (req, res, next) => {
|
|
Promise.resolve(fn(req, res, next)).catch(next);
|
|
};
|
|
};
|
|
exports.asyncHandler = asyncHandler;
|
|
//# sourceMappingURL=errorHandler.js.map
|