apemanerror
Version:
Error parser for apeman.
101 lines (82 loc) • 3.05 kB
JavaScript
/**
* Error object of apeman
* @class Apemanerror
*/
;
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 argx = require('argx');
var uuid = require('uuid');
var defaults = require('defaults');
var ErrorCodes = require('./error_codes');
/** @lends Apemanerror */
var Apemanerror = function () {
function Apemanerror(code, pointer, options) {
_classCallCheck(this, Apemanerror);
var args = argx(arguments);
code = args.shift('string|number');
pointer = args.shift('string') || '.';
options = args.pop('object') || {};
var s = this;
var _defaults = defaults(options, {
trigger: undefined,
context: {},
namespace: '/'
});
var trigger = _defaults.trigger;
var context = _defaults.context;
var namespace = _defaults.namespace;
var id = uuid.v4();
var name = Apemanerror.nameOfCode(code);
return {
id: id,
code: code,
title: name,
detail: 'Trigger by ' + trigger + ', with context: ' + JSON.stringify(context),
source: {
pointer: ['/', String(namespace).replace(/\./g, '/'), pointer].join('/').replace(/\/+/g, '/').replace(/\/$/, '')
},
meta: { name: name, trigger: trigger, context: context }
};
}
_createClass(Apemanerror, [{
key: 'toJSON',
value: function toJSON() {
var s = this;
return Object.assign(s, this);
}
}]);
return Apemanerror;
}();
Object.assign(Apemanerror, {
nameOfCode: function nameOfCode(code) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = Object.keys(ErrorCodes)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var name = _step.value;
var hit = ErrorCodes[name] === code;
if (hit) {
return name;
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return code;
}
});
module.exports = Apemanerror;
//# sourceMappingURL=data:application/json;base64,bnVsbA==