UNPKG

fp-ts-std

Version:

The missing pseudo-standard library for fp-ts.

25 lines (24 loc) 1.11 kB
import * as T from "fp-ts/Task"; import { constVoid, flow } from "fp-ts/function"; import { pass as _pass, unless as _unless, when as _when } from "./Applicative"; import { fieldMilliseconds, now, unMilliseconds, } from "./Date"; import { until as _until } from "./Monad"; export const sleep = (n) => () => new Promise(resolve => { setTimeout(resolve, Math.floor(unMilliseconds(n))); }); export const elapsed = (f) => (x) => async () => { const start = now(); const y = await x(); const duration = fieldMilliseconds.sub(now(), start); f(duration)(); return y; }; export const execute = (x) => x(); export const when = _when(T.ApplicativePar); export const unless = _unless(T.ApplicativePar); export const sequenceArray_ = flow(T.sequenceArray, T.map(constVoid)); export const sequenceSeqArray_ = flow(T.sequenceSeqArray, T.map(constVoid)); export const traverseArray_ = f => flow(T.traverseArray(f), T.map(constVoid)); export const traverseSeqArray_ = f => flow(T.traverseSeqArray(f), T.map(constVoid)); export const pass = _pass(T.ApplicativePar); export const until = _until(T.Monad);