Sindbad~EG File Manager
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _apiError = _interopRequireDefault(require("../utils/apiError"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var setCastError = function setCastError(err) {
return new _apiError["default"]("".concat(err.message), 404);
};
var setDuplicateNameError = function setDuplicateNameError(err) {
if (err.keyPattern.email === 1) err.keyValue.name = "Email";
var msg = err.keyValue.name === "Email" ? "Already user has the same: / ".concat(err.keyValue.name, " /") : "Already user has the same name: / ".concat(err.keyValue.name, " /");
return new _apiError["default"](msg, 404);
};
var setValidatorError = function setValidatorError(err) {
var msgs = Object.values(err.errors).map(function (el) {
return el.message;
}).join(",");
return new _apiError["default"]("/ ".concat(msgs, " /"), 404);
};
var setJwtError = function setJwtError(err) {
new _apiError["default"]("".concat(err.message), 402);
};
var unAuthorizedErrorHandler = function unAuthorizedErrorHandler(err) {
return new _apiError["default"]("".concat(err.inner.message), 402);
};
var productionError = function productionError(err, req, res) {
var error = err;
if (err.name === "UnauthorizedError") error = unAuthorizedErrorHandler(error);
if (err.name === "MongoNetworkError") error.message = "Mongo Not working";
if (err.name === "CastError") error = setCastError(error);
if (err.code === 11000) error = setDuplicateNameError(error);
if (err._message === "Tour validation failed") error = setValidatorError(error);
if (err._message === "users validation failed") error = setValidatorError(error);
if (err.name === "JsonWebTokenError") error = setJwtError(error);
if (err.name === "TokenExpiredError") error = setJwtError(error);
return res.status(err.statusCode).json({
name: error.name,
message: error.message,
statusCode: error.statusCode,
isOperational: error.isOperational
});
};
var developmentError = function developmentError(err, req, res) {
res.status(err.statusCode).json({
name: err.name,
message: err.message,
status: err.status,
statusCode: err.statusCode,
isOperational: err.isOperational,
stack: err.stack
});
};
var globalErrorHandler = function globalErrorHandler(err, req, res, next) {
err.statusCode = err.statusCode || 500;
err.status = err.status || "error";
if (process.env.NODE_ENV === "development") {
developmentError(err, req, res);
} else if (process.env.NODE_ENV === "production") {
productionError(err, req, res);
}
next();
};
var _default = exports["default"] = globalErrorHandler;
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists