saij
Version:
A learning engine.
76 lines (59 loc) • 5.36 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _uid = require("./utils/uid.js");
var _Errors = _interopRequireDefault(require("./Errors"));
/**
* @module saij/core/AssertionError
*/
const link = 'Assertion failed. See https://skan-io.github.io/saij/module-saij_core_Errors for details.';
const getErrorMessages = () => {
const errorMap = new Map();
for (const key of Reflect.ownKeys(_Errors.default)) {
errorMap.set(_Errors.default[key].code, _Errors.default[key].message);
}
return errorMap;
};
const errorMessageMap = getErrorMessages();
/**
* Error object thrown when an assertion failed. This is an ECMA-262 Error,
* extended with a `code` property.
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error.
*/
class AssertionError extends Error {
/**
* @param {number} code Error code.
*/
constructor(code) {
let message = errorMessageMap.get(code);
if (!message) {
message = '[UNKOWN ERROR] - The error code supplied is unknown.';
}
message += ` ${link} Version: ${_uid.VERSION}`;
super(message);
/**
* Error code. The meaning of the code can be found at
* https://skan-io.github.io/saij/module-saij_core_Errors
* @type {number}
* @api
*/
this.code = code;
/**
* Error message. Description of the error code.
* Check https://skan-io.github.io/saij/module-saij_core_Errors
* @type {string}
* @api
*/
this.message = message;
/**
* @type {string}
*/
this.name = 'AssertionError';
}
}
var _default = AssertionError;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zYWlqL2NvcmUvQXNzZXJ0aW9uRXJyb3IuanMiXSwibmFtZXMiOlsibGluayIsImdldEVycm9yTWVzc2FnZXMiLCJlcnJvck1hcCIsIk1hcCIsImtleSIsIlJlZmxlY3QiLCJvd25LZXlzIiwiRXJyb3JzIiwic2V0IiwiY29kZSIsIm1lc3NhZ2UiLCJlcnJvck1lc3NhZ2VNYXAiLCJBc3NlcnRpb25FcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJnZXQiLCJWRVJTSU9OIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBSUE7O0FBQ0E7O0FBSkE7OztBQU9BLE1BQU1BLElBQUksR0FBRywyRkFBYjs7QUFFQSxNQUFNQyxnQkFBZ0IsR0FBRyxNQUFLO0FBQzVCLFFBQU1DLFFBQVEsR0FBRyxJQUFJQyxHQUFKLEVBQWpCOztBQUNBLE9BQUssTUFBTUMsR0FBWCxJQUFrQkMsT0FBTyxDQUFDQyxPQUFSLENBQWdCQyxlQUFoQixDQUFsQixFQUEyQztBQUN6Q0wsSUFBQUEsUUFBUSxDQUFDTSxHQUFULENBQWFELGdCQUFPSCxHQUFQLEVBQVlLLElBQXpCLEVBQStCRixnQkFBT0gsR0FBUCxFQUFZTSxPQUEzQztBQUNEOztBQUVELFNBQU9SLFFBQVA7QUFDRCxDQVBEOztBQVNBLE1BQU1TLGVBQWUsR0FBR1YsZ0JBQWdCLEVBQXhDO0FBR0E7Ozs7OztBQUtBLE1BQU1XLGNBQU4sU0FBNkJDLEtBQTdCLENBQW1DO0FBRWpDOzs7QUFHQUMsRUFBQUEsV0FBVyxDQUFDTCxJQUFELEVBQU87QUFDaEIsUUFBSUMsT0FBTyxHQUFHQyxlQUFlLENBQUNJLEdBQWhCLENBQW9CTixJQUFwQixDQUFkOztBQUVBLFFBQUksQ0FBQ0MsT0FBTCxFQUFjO0FBQ1pBLE1BQUFBLE9BQU8sR0FBRyxzREFBVjtBQUNEOztBQUVEQSxJQUFBQSxPQUFPLElBQUssSUFBR1YsSUFBSyxhQUFZZ0IsWUFBUSxFQUF4QztBQUVBLFVBQU1OLE9BQU47QUFFQTs7Ozs7OztBQU1BLFNBQUtELElBQUwsR0FBWUEsSUFBWjtBQUVBOzs7Ozs7O0FBTUEsU0FBS0MsT0FBTCxHQUFlQSxPQUFmO0FBRUE7Ozs7QUFHQSxTQUFLTyxJQUFMLEdBQVksZ0JBQVo7QUFDRDs7QUFwQ2dDOztlQXVDcEJMLGMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogQG1vZHVsZSBzYWlqL2NvcmUvQXNzZXJ0aW9uRXJyb3JcbiAqL1xuaW1wb3J0IHtWRVJTSU9OfSBmcm9tICcuL3V0aWxzL3VpZC5qcyc7XG5pbXBvcnQgRXJyb3JzIGZyb20gJy4vRXJyb3JzJztcblxuXG5jb25zdCBsaW5rID0gJ0Fzc2VydGlvbiBmYWlsZWQuIFNlZSBodHRwczovL3NrYW4taW8uZ2l0aHViLmlvL3NhaWovbW9kdWxlLXNhaWpfY29yZV9FcnJvcnMgZm9yIGRldGFpbHMuJztcblxuY29uc3QgZ2V0RXJyb3JNZXNzYWdlcyA9ICgpPT4ge1xuICBjb25zdCBlcnJvck1hcCA9IG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBrZXkgb2YgUmVmbGVjdC5vd25LZXlzKEVycm9ycykpIHtcbiAgICBlcnJvck1hcC5zZXQoRXJyb3JzW2tleV0uY29kZSwgRXJyb3JzW2tleV0ubWVzc2FnZSk7XG4gIH1cblxuICByZXR1cm4gZXJyb3JNYXA7XG59O1xuXG5jb25zdCBlcnJvck1lc3NhZ2VNYXAgPSBnZXRFcnJvck1lc3NhZ2VzKCk7XG5cblxuLyoqXG4gKiBFcnJvciBvYmplY3QgdGhyb3duIHdoZW4gYW4gYXNzZXJ0aW9uIGZhaWxlZC4gVGhpcyBpcyBhbiBFQ01BLTI2MiBFcnJvcixcbiAqIGV4dGVuZGVkIHdpdGggYSBgY29kZWAgcHJvcGVydHkuXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRXJyb3IuXG4gKi9cbmNsYXNzIEFzc2VydGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gY29kZSBFcnJvciBjb2RlLlxuICAgKi9cbiAgY29uc3RydWN0b3IoY29kZSkge1xuICAgIGxldCBtZXNzYWdlID0gZXJyb3JNZXNzYWdlTWFwLmdldChjb2RlKTtcblxuICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgbWVzc2FnZSA9ICdbVU5LT1dOIEVSUk9SXSAtIFRoZSBlcnJvciBjb2RlIHN1cHBsaWVkIGlzIHVua25vd24uJztcbiAgICB9XG5cbiAgICBtZXNzYWdlICs9IGAgJHtsaW5rfSBWZXJzaW9uOiAke1ZFUlNJT059YDtcblxuICAgIHN1cGVyKG1lc3NhZ2UpO1xuXG4gICAgLyoqXG4gICAgICogRXJyb3IgY29kZS4gVGhlIG1lYW5pbmcgb2YgdGhlIGNvZGUgY2FuIGJlIGZvdW5kIGF0XG4gICAgICogaHR0cHM6Ly9za2FuLWlvLmdpdGh1Yi5pby9zYWlqL21vZHVsZS1zYWlqX2NvcmVfRXJyb3JzXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKiBAYXBpXG4gICAgICovXG4gICAgdGhpcy5jb2RlID0gY29kZTtcblxuICAgIC8qKlxuICAgICAqIEVycm9yIG1lc3NhZ2UuIERlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciBjb2RlLlxuICAgICAqIENoZWNrIGh0dHBzOi8vc2thbi1pby5naXRodWIuaW8vc2Fpai9tb2R1bGUtc2Fpal9jb3JlX0Vycm9yc1xuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICogQGFwaVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9ICdBc3NlcnRpb25FcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXNzZXJ0aW9uRXJyb3I7XG4iXX0=