zater-error-handler
Version:
Module for error handler zater
47 lines (37 loc) • 4.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ErrorHandler = function () {
function ErrorHandler(config, codes, i18n) {
_classCallCheck(this, ErrorHandler);
if (!config || config.locales === undefined || Array.isArray(config.locales) === false || config.defaultLocale === undefined || config.directory === undefined) throw new Error('[ZATER-ERROR-HANDLER] Config is not valid');
this.i18n = i18n;
this.codes = codes;
this.i18n.configure({
locales: config.locales,
defaultLocale: config.defaultLocale,
directory: config.directory,
objectNotation: true
});
}
_createClass(ErrorHandler, [{
key: 'error',
value: function error(code) {
var httpStatus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var description = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
return {
code: code,
httpStatus: httpStatus || (this.codes[code] || {}).httpStatus || 400,
description: description || this.i18n.__((this.codes[code] || {}).i18n || 'global.general')
};
}
}]);
return ErrorHandler;
}();
exports.default = function (config, codes, i18n) {
return new ErrorHandler(config, codes, i18n);
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FcnJvckhhbmRsZXIuanMiXSwibmFtZXMiOlsiRXJyb3JIYW5kbGVyIiwiY29uZmlnIiwiY29kZXMiLCJpMThuIiwibG9jYWxlcyIsInVuZGVmaW5lZCIsIkFycmF5IiwiaXNBcnJheSIsImRlZmF1bHRMb2NhbGUiLCJkaXJlY3RvcnkiLCJFcnJvciIsImNvbmZpZ3VyZSIsIm9iamVjdE5vdGF0aW9uIiwiY29kZSIsImh0dHBTdGF0dXMiLCJkZXNjcmlwdGlvbiIsIl9fIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBQU1BLFk7QUFDTCx1QkFBWUMsTUFBWixFQUFvQkMsS0FBcEIsRUFBMkJDLElBQTNCLEVBQWlDO0FBQUE7O0FBQ2hDLE1BQUcsQ0FBQ0YsTUFBRCxJQUNGQSxPQUFPRyxPQUFQLEtBQW1CQyxTQURqQixJQUVGQyxNQUFNQyxPQUFOLENBQWNOLE9BQU9HLE9BQXJCLE1BQWtDLEtBRmhDLElBR0ZILE9BQU9PLGFBQVAsS0FBeUJILFNBSHZCLElBSUZKLE9BQU9RLFNBQVAsS0FBcUJKLFNBSnRCLEVBS0MsTUFBTSxJQUFJSyxLQUFKLENBQVUsMkNBQVYsQ0FBTjtBQUNELE9BQUtQLElBQUwsR0FBWUEsSUFBWjtBQUNBLE9BQUtELEtBQUwsR0FBYUEsS0FBYjs7QUFFQSxPQUFLQyxJQUFMLENBQVVRLFNBQVYsQ0FBb0I7QUFDbkJQLFlBQVNILE9BQU9HLE9BREc7QUFFbkJJLGtCQUFlUCxPQUFPTyxhQUZIO0FBR25CQyxjQUFXUixPQUFPUSxTQUhDO0FBSW5CRyxtQkFBZ0I7QUFKRyxHQUFwQjtBQU1BOzs7O3dCQUVLQyxJLEVBQTZDO0FBQUEsT0FBdkNDLFVBQXVDLHVFQUExQixJQUEwQjtBQUFBLE9BQXBCQyxXQUFvQix1RUFBTixJQUFNOztBQUNsRCxVQUFRO0FBQ1BGLGNBRE87QUFFUEMsZ0JBQVlBLGNBQWMsQ0FBQyxLQUFLWixLQUFMLENBQVdXLElBQVgsS0FBb0IsRUFBckIsRUFBeUJDLFVBQXZDLElBQXFELEdBRjFEO0FBR1BDLGlCQUFhQSxlQUFlLEtBQUtaLElBQUwsQ0FBVWEsRUFBVixDQUFhLENBQUMsS0FBS2QsS0FBTCxDQUFXVyxJQUFYLEtBQW9CLEVBQXJCLEVBQXlCVixJQUF6QixJQUFpQyxnQkFBOUM7QUFIckIsSUFBUjtBQUtBOzs7Ozs7a0JBR2EsVUFBQ0YsTUFBRCxFQUFTQyxLQUFULEVBQWdCQyxJQUFoQjtBQUFBLFFBQXlCLElBQUlILFlBQUosQ0FBaUJDLE1BQWpCLEVBQXlCQyxLQUF6QixFQUFnQ0MsSUFBaEMsQ0FBekI7QUFBQSxDIiwiZmlsZSI6IkVycm9ySGFuZGxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEVycm9ySGFuZGxlciB7XG5cdGNvbnN0cnVjdG9yKGNvbmZpZywgY29kZXMsIGkxOG4pIHtcblx0XHRpZighY29uZmlnIHx8IFxuXHRcdFx0Y29uZmlnLmxvY2FsZXMgPT09IHVuZGVmaW5lZCB8fCBcblx0XHRcdEFycmF5LmlzQXJyYXkoY29uZmlnLmxvY2FsZXMpID09PSBmYWxzZSB8fCBcblx0XHRcdGNvbmZpZy5kZWZhdWx0TG9jYWxlID09PSB1bmRlZmluZWQgfHwgXG5cdFx0XHRjb25maWcuZGlyZWN0b3J5ID09PSB1bmRlZmluZWQpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1taQVRFUi1FUlJPUi1IQU5ETEVSXSBDb25maWcgaXMgbm90IHZhbGlkJyk7XG5cdFx0dGhpcy5pMThuID0gaTE4bjtcblx0XHR0aGlzLmNvZGVzID0gY29kZXM7XG5cblx0XHR0aGlzLmkxOG4uY29uZmlndXJlKHtcblx0XHRcdGxvY2FsZXM6IGNvbmZpZy5sb2NhbGVzLFxuXHRcdFx0ZGVmYXVsdExvY2FsZTogY29uZmlnLmRlZmF1bHRMb2NhbGUsXG5cdFx0XHRkaXJlY3Rvcnk6IGNvbmZpZy5kaXJlY3RvcnksXG5cdFx0XHRvYmplY3ROb3RhdGlvbjogdHJ1ZSxcblx0XHR9KTtcblx0fVxuXG5cdGVycm9yKGNvZGUsIGh0dHBTdGF0dXMgPSBudWxsLCBkZXNjcmlwdGlvbiA9IG51bGwpIHtcblx0XHRyZXR1cm4gKHtcblx0XHRcdGNvZGUsXG5cdFx0XHRodHRwU3RhdHVzOiBodHRwU3RhdHVzIHx8ICh0aGlzLmNvZGVzW2NvZGVdIHx8IHt9KS5odHRwU3RhdHVzIHx8IDQwMCxcblx0XHRcdGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB8fCB0aGlzLmkxOG4uX18oKHRoaXMuY29kZXNbY29kZV0gfHwge30pLmkxOG4gfHwgJ2dsb2JhbC5nZW5lcmFsJyksXG5cdFx0fSlcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCAoY29uZmlnLCBjb2RlcywgaTE4bikgPT4gbmV3IEVycm9ySGFuZGxlcihjb25maWcsIGNvZGVzLCBpMThuKTtcbiJdfQ==