archieve-projects/微信机器人/node_modules/fp-ts/lib/FromTask.js

33 lines
1.0 KiB
JavaScript
Executable File

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tapTask = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = void 0;
/**
* Lift a computation from the `Task` monad
*
* @since 2.10.0
*/
var Chain_1 = require("./Chain");
var function_1 = require("./function");
function fromTaskK(F) {
return function (f) { return (0, function_1.flow)(f, F.fromTask); };
}
exports.fromTaskK = fromTaskK;
function chainTaskK(F, M) {
return function (f) {
var g = (0, function_1.flow)(f, F.fromTask);
return function (first) { return M.chain(first, g); };
};
}
exports.chainTaskK = chainTaskK;
function chainFirstTaskK(F, M) {
var tapTaskM = tapTask(F, M);
return function (f) { return function (first) { return tapTaskM(first, f); }; };
}
exports.chainFirstTaskK = chainFirstTaskK;
/** @internal */
function tapTask(F, M) {
var tapM = (0, Chain_1.tap)(M);
return function (self, f) { return tapM(self, (0, function_1.flow)(f, F.fromTask)); };
}
exports.tapTask = tapTask;