UNPKG

trapx

Version:

A plug-and-play middleware for standardized error handling in TypeScript-based Express.js applications

31 lines (30 loc) 1.16 kB
"use strict"; 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); }; }