@typed/fp
Version:
Data Structures and Resources for fp-ts
34 lines • 1.25 kB
JavaScript
;
/**
* @typed/fp/Scheduler is an extension of @most/scheduler with additional
* combinators and integration with Env.
* @since 0.9.2
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.runStream = exports.getScheduler = exports.delay = void 0;
const tslib_1 = require("tslib");
const S = (0, tslib_1.__importStar)(require("@most/scheduler"));
const E = (0, tslib_1.__importStar)(require("./Env"));
const Env_1 = require("./Env");
const function_1 = require("./function");
const Resume_1 = require("./Resume");
const Stream_1 = require("./Stream");
/**
* @since 0.9.2
* @category Constructor
*/
const delay = (ms) => ({ scheduler }) => (0, Resume_1.async)((resume) => S.delay(ms, (0, Stream_1.createCallbackTask)(() => resume(scheduler.currentTime())), scheduler));
exports.delay = delay;
/**
* @since 0.9.2
* @category Combinator
*/
exports.getScheduler = (0, Env_1.asks)((e) => e.scheduler);
/**
* @since 0.9.2
* @category Combinator
*/
const runStream = (sink, stream) => (0, function_1.pipe)(exports.getScheduler, E.map((scheduler) => stream.run(sink, scheduler)));
exports.runStream = runStream;
(0, tslib_1.__exportStar)(require("@most/scheduler"), exports);
//# sourceMappingURL=Scheduler.js.map