22 lines
2.1 KiB
JavaScript
22 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.instanceOf = exports.InstanceOf = void 0;
|
|
const result_1 = require("../result");
|
|
const type_1 = require("../type");
|
|
class InstanceOf extends type_1.Type {
|
|
constructor(klass) {
|
|
super();
|
|
this.klass = klass;
|
|
}
|
|
check(val) {
|
|
if (val instanceof this.klass)
|
|
return val;
|
|
return new result_1.Err(`${val} is not an instance of ${this.klass}`);
|
|
}
|
|
}
|
|
exports.InstanceOf = InstanceOf;
|
|
function instanceOf(klass) {
|
|
return new InstanceOf(klass);
|
|
}
|
|
exports.instanceOf = instanceOf;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Utb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY2hlY2tzL2luc3RhbmNlLW9mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNDQUF3QztBQUN4QyxrQ0FBK0I7QUFJL0IsTUFBYSxVQUFjLFNBQVEsV0FBTztJQUd4QyxZQUFZLEtBQXFCO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFRO1FBQ1osSUFBRyxHQUFHLFlBQVksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEdBQWdCLENBQUM7UUFDdEQsT0FBTyxJQUFJLFlBQUcsQ0FBQyxHQUFHLEdBQUcsMEJBQTBCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQVpELGdDQVlDO0FBRUQsU0FBZ0IsVUFBVSxDQUFJLEtBQXFCO0lBQ2pELE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUZELGdDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyLCBSZXN1bHQgfSBmcm9tIFwiLi4vcmVzdWx0XCI7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSBcIi4uL3R5cGVcIjtcblxuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3I8VD4gPSBGdW5jdGlvbiAmIHsgcHJvdG90eXBlOiBUIH1cblxuZXhwb3J0IGNsYXNzIEluc3RhbmNlT2Y8VD4gZXh0ZW5kcyBUeXBlPFQ+IHtcbiAgcmVhZG9ubHkga2xhc3M6IENvbnN0cnVjdG9yPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKGtsYXNzOiBDb25zdHJ1Y3RvcjxUPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5rbGFzcyA9IGtsYXNzO1xuICB9XG5cbiAgY2hlY2sodmFsOiBhbnkpOiBSZXN1bHQ8VD4ge1xuICAgIGlmKHZhbCBpbnN0YW5jZW9mIHRoaXMua2xhc3MpIHJldHVybiB2YWwgYXMgUmVzdWx0PFQ+O1xuICAgIHJldHVybiBuZXcgRXJyKGAke3ZhbH0gaXMgbm90IGFuIGluc3RhbmNlIG9mICR7dGhpcy5rbGFzc31gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFuY2VPZjxUPihrbGFzczogQ29uc3RydWN0b3I8VD4pOiBJbnN0YW5jZU9mPFQ+IHtcbiAgcmV0dXJuIG5ldyBJbnN0YW5jZU9mKGtsYXNzKTtcbn1cbiJdfQ==
|