rexuws
Version:
An express-like framework built on top of uWebsocket.js aims at simple codebase and high performance
35 lines (34 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../../../utils");
function errorMiddleware(opts) {
const { preferJSON, logger, logMethod } = opts;
switch (!!preferJSON) {
case true:
// return application/json
return (err, req, res, next) => {
logger[logMethod](err);
if (err && typeof err === 'object' && err.constructor === 'Object')
return res.status(500).json(err);
return res.status(500).json({
err,
});
};
default:
// Return text/html
return (err, _, res, next) => {
logger[logMethod](err);
if (err instanceof Error) {
res.status(500);
const message = `${err.stack}`;
return res.send(utils_1.toHtml(message));
}
if (typeof err === 'string') {
res.status(500);
return res.send(utils_1.toHtml(err));
}
return res.status(500).send(utils_1.toHtml(JSON.stringify(err)));
};
}
}
exports.default = errorMiddleware;