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
JavaScript
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;