1 | function EmitterWrapper (emitter) {
|
2 | this.listeners = {}
|
3 | this.emitter = emitter
|
4 | }
|
5 |
|
6 | EmitterWrapper.prototype.addListener = EmitterWrapper.prototype.on = function (event, listener) {
|
7 | this.emitter.addListener(event, listener)
|
8 |
|
9 | if (!this.listeners.hasOwnProperty(event)) {
|
10 | this.listeners[event] = []
|
11 | }
|
12 |
|
13 | this.listeners[event].push(listener)
|
14 |
|
15 | return this
|
16 | }
|
17 |
|
18 | EmitterWrapper.prototype.removeAllListeners = function (event) {
|
19 | var events = event ? [event] : Object.keys(this.listeners)
|
20 | var self = this
|
21 | events.forEach(function (event) {
|
22 | self.listeners[event].forEach(function (listener) {
|
23 | self.emitter.removeListener(event, listener)
|
24 | })
|
25 | delete self.listeners[event]
|
26 | })
|
27 |
|
28 | return this
|
29 | }
|
30 |
|
31 | module.exports = EmitterWrapper
|