@thi.ng/rstream
Version:
Reactive streams & subscription primitives for constructing dataflow graphs / pipelines
20 lines (19 loc) • 678 B
JavaScript
import { __optsWithID } from "./idgen.js";
import { stream, Stream } from "./stream.js";
const fromEvent = (src, name, listenerOpts = false, streamOpts) => {
const result = stream(
(stream2) => {
let listener = (e) => stream2.next(e);
src.addEventListener(name, listener, listenerOpts);
return () => src.removeEventListener(name, listener, listenerOpts);
},
__optsWithID(`event-${name}`, streamOpts)
);
streamOpts?.init !== void 0 && result.next(streamOpts.init);
return result;
};
const fromDOMEvent = (src, name, listenerOpts = false, streamOpts) => fromEvent(src, name, listenerOpts, streamOpts);
export {
fromDOMEvent,
fromEvent
};