23 lines
2.1 KiB
JavaScript
23 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.is = exports.Is = void 0;
|
|
const result_1 = require("../result");
|
|
const type_1 = require("../type");
|
|
class Is extends type_1.Type {
|
|
constructor(name, guard) {
|
|
super();
|
|
this.name = name;
|
|
this.isT = guard;
|
|
}
|
|
check(val) {
|
|
if (this.isT(val))
|
|
return val;
|
|
return new result_1.Err(`${val} is not a ${this.name} (guard failed)`);
|
|
}
|
|
}
|
|
exports.Is = Is;
|
|
function is(name, guard) {
|
|
return new Is(name, guard);
|
|
}
|
|
exports.is = is;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY2hlY2tzL2lzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNDQUF3QztBQUN4QyxrQ0FBK0I7QUFJL0IsTUFBYSxFQUFNLFNBQVEsV0FBTztJQUloQyxZQUFZLElBQVksRUFBRSxLQUFlO1FBQ3ZDLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUE7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFRO1FBQ1osSUFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxZQUFHLENBQUMsR0FBRyxHQUFHLGFBQWEsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0NBQ0Y7QUFkRCxnQkFjQztBQUVELFNBQWdCLEVBQUUsQ0FBSSxJQUFZLEVBQUUsS0FBZTtJQUNqRCxPQUFPLElBQUksRUFBRSxDQUFJLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUMvQixDQUFDO0FBRkQsZ0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnIsIFJlc3VsdCB9IGZyb20gXCIuLi9yZXN1bHRcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi4vdHlwZVwiO1xuXG50eXBlIEd1YXJkPFQ+ID0gKHZhbDogYW55KSA9PiB2YWwgaXMgVFxuXG5leHBvcnQgY2xhc3MgSXM8VD4gZXh0ZW5kcyBUeXBlPFQ+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nXG4gIHJlYWRvbmx5IGlzVDogR3VhcmQ8VD5cblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGd1YXJkOiBHdWFyZDxUPikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLm5hbWUgPSBuYW1lXG4gICAgdGhpcy5pc1QgPSBndWFyZFxuICB9XG5cbiAgY2hlY2sodmFsOiBhbnkpOiBSZXN1bHQ8VD4ge1xuICAgIGlmKHRoaXMuaXNUKHZhbCkpIHJldHVybiB2YWw7XG4gICAgcmV0dXJuIG5ldyBFcnIoYCR7dmFsfSBpcyBub3QgYSAke3RoaXMubmFtZX0gKGd1YXJkIGZhaWxlZClgKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpczxUPihuYW1lOiBzdHJpbmcsIGd1YXJkOiBHdWFyZDxUPikge1xuICByZXR1cm4gbmV3IElzPFQ+KG5hbWUsIGd1YXJkKVxufVxuIl19
|