UNPKG

732 BJavaScriptView Raw
1'use strict'
2
3class EmitterWrapper {
4 constructor (emitter) {
5 this.listeners = {}
6 this.emitter = emitter
7 }
8
9 addListener (event, listener) {
10 this.emitter.addListener(event, listener)
11 this.listeners[event] = this.listeners[event] || []
12 this.listeners[event].push(listener)
13 return this
14 }
15
16 on (event, listener) {
17 return this.addListener(event, listener)
18 }
19
20 removeAllListeners (event) {
21 const events = event ? [event] : Object.keys(this.listeners)
22 events.forEach((event) => {
23 this.listeners[event].forEach((listener) => {
24 this.emitter.removeListener(event, listener)
25 })
26 delete this.listeners[event]
27 })
28
29 return this
30 }
31}
32
33module.exports = EmitterWrapper