UNPKG

apemanerror

Version:
100 lines (81 loc) 2.99 kB
/** * Error object of apeman * @class Apemanerror */ 'use strict'; 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;