UNPKG

@thi.ng/rstream

Version:

Reactive streams & subscription primitives for constructing dataflow graphs / pipelines

26 lines (25 loc) 733 B
import { __optsWithID } from "./idgen.js"; import { stream } from "./stream.js"; const fromIterable = (src, opts = {}) => stream((stream2) => { const iter = src[Symbol.iterator](); const id = setInterval(() => { let val; if ((val = iter.next()).done) { clearInterval(id); stream2.closeIn !== "never" && stream2.done(); } else { stream2.next(val.value); } }, opts.delay || 0); return () => clearInterval(id); }, __optsWithID("iterable", opts)); const fromIterableSync = (src, opts) => stream((stream2) => { for (let s of src) { stream2.next(s); } stream2.closeIn !== "never" && stream2.done(); }, __optsWithID("iterable-sync", opts)); export { fromIterable, fromIterableSync };