UNPKG

@reactivex/ix-esnext-esm

Version:

The Interactive Extensions for JavaScript

25 lines (23 loc) 896 B
import { fromEventPattern } from './fromeventpattern'; function isNodeEventEmitter(obj) { return !!obj && typeof obj.addListener === 'function' && typeof obj.removeListener === 'function'; } function isEventTarget(obj) { return (!!obj && typeof obj.addEventListener === 'function' && typeof obj.removeEventListener === 'function'); } export function fromEvent(obj, type, options) { if (isEventTarget(obj)) { const target = obj; return fromEventPattern(h => target.addEventListener(type, h, options), h => target.removeEventListener(type, h, options)); } else if (isNodeEventEmitter(obj)) { const target = obj; return fromEventPattern(h => target.addListener(type, h), h => target.removeListener(type, h)); } else { throw new TypeError('Unsupported event target'); } } //# sourceMappingURL=fromevent.mjs.map