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 | */
|
5 | module.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 | }
|