error-advisor
Version:
NPM module that aim to facilitate the error handling by providing http errors classes and also let you customize business errors as well with handy and clean way.
55 lines • 3.31 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Utils = void 0;
const Utils_1 = __importDefault(require("./advisor/util/Utils"));
const logger_1 = __importDefault(require("./logger"));
const InternalServerError_1 = __importDefault(require("./advisor/error/server_error/InternalServerError"));
function errorAdvisor(options, err, res) {
let error;
const logger = new logger_1.default(options.env || "development");
if (err &&
err.hasOwnProperty("message") &&
err.hasOwnProperty("type") &&
err.hasOwnProperty("statusCode") &&
err.hasOwnProperty("timestamp")) {
error = Utils_1.default.errorBuilder(err.message, err.type, err.statusCode, err.timestamp);
}
else if (err && err.hasOwnProperty("status")) {
const errorBasedOnStatusCode = Utils_1.default.errorFactory(err.status);
error = Utils_1.default.errorBuilder(errorBasedOnStatusCode.msg, errorBasedOnStatusCode.type, errorBasedOnStatusCode.status, errorBasedOnStatusCode.timestamp);
}
else if (err && err.hasOwnProperty("code")) {
const errorBasedOnStatusCode = JSON.stringify(Utils_1.default.errorFactory(err.status));
error = Utils_1.default.errorBuilder(errorBasedOnStatusCode.message, errorBasedOnStatusCode.name, errorBasedOnStatusCode.status, errorBasedOnStatusCode.timestamp);
}
else if (err && err.hasOwnProperty("statusCode")) {
const errorBasedOnStatusCode = JSON.stringify(Utils_1.default.errorFactory(err.status));
error = Utils_1.default.errorBuilder(errorBasedOnStatusCode.message, errorBasedOnStatusCode.type, errorBasedOnStatusCode.status, errorBasedOnStatusCode.timestamp);
}
else {
const unrecognizedError = JSON.stringify(new InternalServerError_1.default());
error = Utils_1.default.errorBuilder(unrecognizedError.message, unrecognizedError.type, unrecognizedError.status, unrecognizedError.timestamp);
}
options && options.debug && typeof options.debug === "boolean" && (error.stack = err.stack);
options && options.env && options.log && typeof options.log === "boolean" && logger.error(err);
return res.status(error.status).json(error);
}
exports.default = errorAdvisor;
__exportStar(require("./advisor/error/client_error/Client_Errors"), exports);
__exportStar(require("./advisor/error/server_error/Server_Errors"), exports);
var Utils_2 = require("./advisor/util/Utils");
Object.defineProperty(exports, "Utils", { enumerable: true, get: function () { return __importDefault(Utils_2).default; } });
//# sourceMappingURL=index.js.map