pragmatic-fp-ts
Version:
Opinionated functional programming library with easy use in mind
21 lines (20 loc) • 665 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.converge = void 0;
const main_1 = require("./main");
function converge(join, fns, value) {
if (arguments.length === 1) {
return function (_fns, _value) {
return arguments.length === 1 ? converge(join, _fns) : converge(join, _fns, _value);
};
}
else if (arguments.length === 2) {
return (_value) => converge(join, fns, _value);
}
const val = (0, main_1.getValue)(value);
return (0, main_1.chain)(fns)
.bind((0, main_1.map)((fn) => fn(val)))
.bind(join)
.getValue();
}
exports.converge = converge;