UNPKG

@thi.ng/rstream

Version:

Reactive streams & subscription primitives for constructing dataflow graphs / pipelines

32 lines (31 loc) 781 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 (const s of src) { stream2.next(s); } stream2.closeIn !== "never" && stream2.done(); }, __optsWithID("iterable-sync", opts) ); export { fromIterable, fromIterableSync };