UNPKG

@sphereon/ssi-express-support

Version:

55 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jsonErrorHandler = void 0; exports.sendErrorResponse = sendErrorResponse; function sendErrorResponse(response, statusCode, message, error) { let msg = message; if (!msg) { console.error('Message was null when calling sendErrorResponse. This should not happen'); msg = 'An unexpected error occurred'; statusCode = 500; } else { console.error(`sendErrorResponse (${statusCode}): ${typeof msg === 'string' ? msg : JSON.stringify(msg)}`); } if (error) { if (error instanceof Error) { console.error(`error message: ${error.message}`); } console.error(`error object: ${JSON.stringify(error)}`); } if (statusCode >= 500) { console.error('Original error stack (if any) and REST API error stack:'); console.error(error === null || error === void 0 ? void 0 : error.stack); console.error(Error().stack); } if (response.headersSent) { console.error(`sendErrorResponse headers already sent`); return response; } response.statusCode = statusCode; if (typeof msg === 'string' && !msg.startsWith('{')) { msg = { error: msg }; } if (typeof msg === 'string' && msg.startsWith('{')) { response.header('Content-Type', 'application/json'); return response.status(statusCode).end(msg); } return response.status(statusCode).json(msg); } const jsonErrorHandler = (err, req, res, next) => { var _a; const statusCode = 'statusCode' in err ? err.statusCode : 500; let errorMsg = typeof err === 'string' ? err : ((_a = err.message) !== null && _a !== void 0 ? _a : err); if (typeof errorMsg !== 'string') { errorMsg = JSON.stringify(errorMsg); } if (res.headersSent) { console.log('Headers already sent, when calling error handler. Will defer to next error handler'); console.log(`Error was: ${JSON.stringify(err)}`); return next(err); } return sendErrorResponse(res, statusCode, errorMsg, err); }; exports.jsonErrorHandler = jsonErrorHandler; //# sourceMappingURL=express-utils.js.map