UNPKG

sse-events

Version:

SSE event source polyfill wrapped in Node.js like EventEmitter with performance fixes and custom api. Compatible with React/React-Native.

37 lines (31 loc) 833 B
import EventSource from './EventSource' class RNEventSource { constructor(url, options) { this.url = url; this.options = options; this.eventSource = new EventSource(url, options); this.listeners = []; } addEventListener (type, listener) { this.eventSource.addEventListener(type, listener) const remove = () => { this.removeListener(type, listener); } this.listeners.push({ remove: remove, type: type, listener: listener }); return this.listeners[this.listeners.length - 1]; } removeAllListeners () { this.listeners.map((listener) => { listener.remove(); }); } removeListener(type, listener) { this.eventSource.removeEventListener(type, listener); } close () { this.eventSource.close(); } } export default RNEventSource;