UNPKG

@beenotung/tslib

Version:
48 lines (47 loc) 1.19 kB
"use strict"; /** * 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 = {}));