UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

24 lines (23 loc) 709 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.lift = exports.bindM = exports.bind = void 0; const Either_1 = require("./Either"); const main_1 = require("./main"); const Maybe_1 = require("./Maybe"); function bind(f) { return (m) => m._(f); } exports.bind = bind; function bindM(f) { return (m) => lift(m._(f)); } exports.bindM = bindM; const of = (m) => (v) => (m.isJust && m.isJust(m)) || (m.isNothing && m.isNothing()) ? (0, Maybe_1.maybe)(v) : (m.isLeft && m.isLeft()) || (m.isRight && m.isRight()) ? (0, Either_1.either)(v) : (0, main_1.chain)(v); function lift(m) { return of(m)(m.getValueOr(undefined)); } exports.lift = lift;