UNPKG

dashp

Version:

Utilities for monadic promises.

42 lines (36 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.chain = exports.ap = exports.bimap = exports.map = exports.of = void 0; var _curry = require("./internal/curry"); var _namefn = _interopRequireDefault(require("./internal/namefn")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const of = (0, _namefn.default)("of", x => Promise.resolve(x)); exports.of = of; const map = (0, _curry.curry2)("map", (f, p) => p.then(f)); exports.map = map; const bimap = (0, _curry.curry3)("bimap", (left, right, p) => { let mark = false; // When set to true, don't run left when right throws. return p.then(x => { mark = true; return right(x); }).catch(e => { if (mark) throw e; return left(e); }); }); exports.bimap = bimap; const ap = (0, _curry.curry2)("ap", (pf, p) => Promise.all([pf, p]).then(([f, x]) => f(x))); exports.ap = ap; const chain = (0, _curry.curry2)("chain", (f, p) => p.then(f)); exports.chain = chain; var _default = { of, map, bimap, ap, chain }; exports.default = _default; //# sourceMappingURL=Future.js.map