@beenotung/tslib
Version:
utils library in Typescript
45 lines • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Either = exports.left = exports.right = void 0;
function right(r) {
const res = {
isLeft: false,
isRight: true,
getLeft: () => {
throw new TypeError('get left on right Either');
},
getRight: () => r,
mmap: (fl, fr) => right(fr(r)),
mapLeft: (f) => res,
mapRight: (f) => right(f(r)),
bindLeft: (f) => res,
bindRight: (f) => f(r),
};
return res;
}
exports.right = right;
function left(l) {
const res = {
isLeft: true,
isRight: false,
getLeft: () => l,
getRight: () => {
throw new TypeError('get right on left Either');
},
mmap: (fl, fr) => left(fl(l)),
mapLeft: (f) => left(f(l)),
mapRight: (f) => res,
bindLeft: (f) => f(l),
bindRight: (f) => res,
};
return res;
}
exports.left = left;
var Either;
(function (Either) {
function get(either) {
return either.isLeft ? either.getLeft() : either.getRight();
}
Either.get = get;
})(Either = exports.Either || (exports.Either = {}));
//# sourceMappingURL=either.js.map