UNPKG

streams

Version:

A lazy streams library for functional composition in JavaScript.

35 lines 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fromEvent = fromEvent; exports.fromEventPattern = fromEventPattern; const async_iterator_pair_1 = require("../util/async-iterator-pair"); function fromEvent(target, eventName, options) { if (typeof target.on === "function") { return fromEventPattern((handler) => target.on(eventName, handler), (handler) => target.off?.(eventName, handler)); } else if (typeof target.addListener === "function") { return fromEventPattern((handler) => target.addListener(eventName, handler), (handler) => target.removeListener?.(eventName, handler)); } else if (typeof target.addEventListener === "function") { return fromEventPattern((handler) => target.addEventListener(eventName, handler, options), (handler) => target.removeEventListener?.(eventName, handler, options)); } throw new TypeError("unsupported event target"); } function fromEventPattern(addHandler, removeHandler) { const [eventConsumer, eventProducer] = (0, async_iterator_pair_1.makeAsyncGeneratorPair)({ onReturn: stop, }); const eventHandler = (value) => eventProducer.next(value); function start() { addHandler(eventHandler); } function stop() { removeHandler?.(eventHandler); } async function* eventGenerator() { start(); return yield* eventConsumer; } return eventGenerator(); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc291cmNlcy9ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStCQSw4QkFzQkM7QUFFRCw0Q0F5QkM7QUFoRkQscUVBQXFFO0FBK0JyRSxTQUFnQixTQUFTLENBQ3ZCLE1BQXVCLEVBQ3ZCLFNBQTBCLEVBQzFCLE9BQWdCO0lBRWhCLElBQUksT0FBTyxNQUFNLENBQUMsRUFBRSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sZ0JBQWdCLENBQ3JCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFDM0MsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDcEQsT0FBTyxnQkFBZ0IsQ0FDckIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUNwRCxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7U0FBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3pELE9BQU8sZ0JBQWdCLENBQ3JCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWlCLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFDbEUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxJQUFJLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsVUFBOEMsRUFDOUMsYUFBa0Q7SUFFbEQsTUFBTSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxJQUFBLDRDQUFzQixFQUFlO1FBQzFFLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0QsU0FBUyxLQUFLO1FBQ1osVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLElBQUk7UUFDWCxhQUFhLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxTQUFTLENBQUMsQ0FBQyxjQUFjO1FBQzVCLEtBQUssRUFBRSxDQUFDO1FBRVIsT0FBTyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sY0FBYyxFQUFFLENBQUM7QUFDMUIsQ0FBQyJ9