streams
Version:
A lazy streams library for functional composition in JavaScript.
27 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultScheduler = void 0;
exports.iteratorInterval = iteratorInterval;
const event_1 = require("./event");
exports.defaultScheduler = {
schedule(interval, listener) {
return setInterval(listener, interval);
},
cancel(scheduled) {
clearInterval(scheduled);
},
};
function iteratorInterval(periodMillis, scheduler = exports.defaultScheduler) {
let timer;
function startTimer(handler) {
let n = 0;
timer = scheduler.schedule(periodMillis, () => {
handler(n++);
});
}
function stopTimer() {
scheduler.cancel(timer);
}
return (0, event_1.fromEventPattern)(startTimer, stopTimer);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc291cmNlcy9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQkEsNENBa0JDO0FBbENELG1DQUF5RDtBQU81QyxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFFBQW9CO1FBQzdDLE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLFNBQVM7UUFDZCxhQUFhLENBQUMsU0FBbUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDbUIsQ0FBQztBQUV2QixTQUFnQixnQkFBZ0IsQ0FDOUIsWUFBb0IsRUFDcEIsWUFBK0Isd0JBQWdCO0lBRS9DLElBQUksS0FBYyxDQUFDO0lBRW5CLFNBQVMsVUFBVSxDQUFDLE9BQTZCO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDNUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLFNBQVM7UUFDaEIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxJQUFBLHdCQUFnQixFQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqRCxDQUFDIn0=