fp-ts-std
Version:
The missing pseudo-standard library for fp-ts.
33 lines (32 loc) • 1.66 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.until = exports.pass = exports.traverseSeqArray_ = exports.traverseArray_ = exports.sequenceSeqArray_ = exports.sequenceArray_ = exports.unless = exports.when = exports.execute = exports.elapsed = exports.sleep = void 0;
const T = require("fp-ts/Task");
const function_1 = require("fp-ts/function");
const Applicative_1 = require("./Applicative");
const Date_1 = require("./Date");
const Monad_1 = require("./Monad");
const sleep = (n) => () => new Promise(resolve => {
setTimeout(resolve, Math.floor((0, Date_1.unMilliseconds)(n)));
});
exports.sleep = sleep;
const elapsed = (f) => (x) => async () => {
const start = (0, Date_1.now)();
const y = await x();
const duration = Date_1.fieldMilliseconds.sub((0, Date_1.now)(), start);
f(duration)();
return y;
};
exports.elapsed = elapsed;
const execute = (x) => x();
exports.execute = execute;
exports.when = (0, Applicative_1.when)(T.ApplicativePar);
exports.unless = (0, Applicative_1.unless)(T.ApplicativePar);
exports.sequenceArray_ = (0, function_1.flow)(T.sequenceArray, T.map(function_1.constVoid));
exports.sequenceSeqArray_ = (0, function_1.flow)(T.sequenceSeqArray, T.map(function_1.constVoid));
const traverseArray_ = f => (0, function_1.flow)(T.traverseArray(f), T.map(function_1.constVoid));
exports.traverseArray_ = traverseArray_;
const traverseSeqArray_ = f => (0, function_1.flow)(T.traverseSeqArray(f), T.map(function_1.constVoid));
exports.traverseSeqArray_ = traverseSeqArray_;
exports.pass = (0, Applicative_1.pass)(T.ApplicativePar);
exports.until = (0, Monad_1.until)(T.Monad);
;