UNPKG

earljs

Version:

Ergonomic, modern and type-safe assertion library

39 lines (38 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ErrorMatcher = void 0; const format_1 = require("../format"); const isEqual_1 = require("../isEqual"); const Base_1 = require("./Base"); class ErrorMatcher extends Base_1.Matcher { constructor(errorClass = Error, message) { super(); this.errorClass = errorClass; this.message = message; } check(v) { if (!(v instanceof this.errorClass)) { return false; } if (this.message !== undefined) { return (0, isEqual_1.isEqual)(v.message, this.message); } return true; } toString() { return `[Error: ${this.format()}]`; } format() { if (this.message === undefined) { return `${this.errorClass.name}`; } return `${this.errorClass.name}(${(0, format_1.formatCompact)(this.message)})`; } static make(classOrMessage, message) { if (typeof classOrMessage === 'string' || classOrMessage instanceof Base_1.Matcher) { return new ErrorMatcher(Error, classOrMessage); } return new ErrorMatcher(classOrMessage, message); } } exports.ErrorMatcher = ErrorMatcher;