@beenotung/tslib
Version:
utils library in Typescript
48 lines (47 loc) • 1.19 kB
JavaScript
;
/**
* Created by beenotung on 3/8/17.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Either = void 0;
exports.right = right;
exports.left = left;
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;
}
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;
}
var Either;
(function (Either) {
function get(either) {
return either.isLeft ? either.getLeft() : either.getRight();
}
Either.get = get;
})(Either || (exports.Either = Either = {}));