dashp
Version:
Utilities for monadic promises.
28 lines (21 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unless = exports.when = exports.unlessElse = exports.whenElse = void 0;
var _Future = require("./Future");
var _curry = require("./internal/curry");
var _identity = _interopRequireDefault(require("./internal/identity"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const whenElse = (0, _curry.curry4)("whenElse", (predicate, consequent, alternative, p) => {
const branch = x => (0, _Future.of)(predicate(x)).then(bool => bool === true ? consequent(x) : alternative(x));
return (0, _Future.of)(p).then(branch);
});
exports.whenElse = whenElse;
const unlessElse = (0, _curry.curry4)("unlessElse", (predicate, consequent, alternative, p) => whenElse(predicate, alternative, consequent, p));
exports.unlessElse = unlessElse;
const when = (0, _curry.curry3)("when", (predicate, consequent, p) => whenElse(predicate, consequent, _identity.default, p));
exports.when = when;
const unless = (0, _curry.curry3)("unless", (predicate, consequent, p) => unlessElse(predicate, consequent, _identity.default, p));
exports.unless = unless;
//# sourceMappingURL=when.js.map