EventIndex: Subclass the event emitter instead of putting one in a property.

This commit is contained in:
Damir Jelić 2020-01-24 11:28:33 +01:00
parent 6f919eaeec
commit 38b1663755

View file

@ -22,8 +22,9 @@ import {EventEmitter} from "events";
/* /*
* Event indexing class that wraps the platform specific event indexing. * Event indexing class that wraps the platform specific event indexing.
*/ */
export default class EventIndex { export default class EventIndex extends EventEmitter {
constructor() { constructor() {
super();
this.crawlerCheckpoints = []; this.crawlerCheckpoints = [];
// The time in ms that the crawler will wait loop iterations if there // The time in ms that the crawler will wait loop iterations if there
// have not been any checkpoints to consume in the last iteration. // have not been any checkpoints to consume in the last iteration.
@ -35,7 +36,6 @@ export default class EventIndex {
this._crawler = null; this._crawler = null;
this._currentCheckpoint = null; this._currentCheckpoint = null;
this.liveEventsForIndex = new Set(); this.liveEventsForIndex = new Set();
this._eventEmitter = new EventEmitter();
} }
async init() { async init() {
@ -188,7 +188,7 @@ export default class EventIndex {
} }
emitNewCheckpoint() { emitNewCheckpoint() {
this._eventEmitter.emit("changedCheckpoint", this.currentRoom()); this.emit("changedCheckpoint", this.currentRoom());
} }
async crawlerFunc() { async crawlerFunc() {
@ -459,12 +459,4 @@ export default class EventIndex {
return client.getRoom(this.crawlerCheckpoints[0].roomId); return client.getRoom(this.crawlerCheckpoints[0].roomId);
} }
} }
on(eventName, callback) {
this._eventEmitter.on(eventName, callback);
}
removeListener(eventName, callback) {
this._eventEmitter.removeListener(eventName, callback);
}
} }