ts-cast
Version:
Runtime typechecking
15 lines (14 loc) • 555 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var names_1 = require("../helpers/names");
var throw_type_error_1 = require("./throw-type-error");
var either = function (caster, leftFactory, rightFactory) { return (0, names_1.withName)(function (value, context) {
try {
var casted = caster(value, context, throw_type_error_1.throwTypeError);
return rightFactory(casted);
}
catch (err) {
return leftFactory(err);
}
}, "either<*, ".concat(caster.name, ">")); };
exports.default = either;