UNPKG

trapx

Version:

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

33 lines (32 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createErrorHandler = createErrorHandler; const BaseError_1 = require("../errors/BaseError"); function createErrorHandler(options = {}) { const { includeStackTrace = process.env.NODE_ENV === 'development', logError = console.error, transformError, } = options; return (error, req, res, _next) => { logError(error); let processedError; if (error instanceof BaseError_1.BaseError) { processedError = error; } else { processedError = transformError?.(error) || { message: 'Internal Server Error', statusCode: 500, code: 'INTERNAL_SERVER_ERROR', isOperational: false, }; } const response = { success: false, error: { message: processedError.message || 'Internal Server Error', code: processedError.code || 'INTERNAL_SERVER_ERROR', ...(processedError.details && { details: processedError.details }), ...(includeStackTrace && { stack: error.stack }), }, }; res.status(processedError.statusCode || 500).json(response); }; }