UNPKG

465 BJavaScriptView Raw
1/**
2 * Create a wrapper around an event emitter with a `remove` method to remove
3 * all events that were added using the wrapped emitter.
4 */
5module.exports = class EventTracker {
6 constructor (emitter) {
7 this._events = []
8 this._emitter = emitter
9 }
10
11 on (event, fn) {
12 this._events.push([event, fn])
13 return this._emitter.on(event, fn)
14 }
15
16 remove () {
17 this._events.forEach(([event, fn]) => {
18 this._emitter.off(event, fn)
19 })
20 }
21}