trapx
Version:
A plug-and-play middleware for standardized error handling in TypeScript-based Express.js applications
31 lines (30 loc) • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createExpressErrorHandler = createExpressErrorHandler;
const errors_1 = require("../../core/errors");
const utils_1 = require("./utils");
function createExpressErrorHandler(options = {}) {
const { includeStackTrace = process.env.NODE_ENV === 'development', logError = console.error, } = options;
return (error, _req, res, _next) => {
logError(error);
let processedError;
if (error instanceof errors_1.BaseError) {
processedError = error;
}
else if (options.transformError) {
processedError = options.transformError(error);
}
else {
processedError = new errors_1.BaseError({
message: 'Internal Server Error',
statusCode: 500,
metadata: {
code: 'INTERNAL_SERVER_ERROR',
isOperational: false
}
});
}
const response = (0, utils_1.formatError)(processedError, includeStackTrace);
res.status(processedError.statusCode).json(response);
};
}