emitter_wrapper.js
751 Bytes
function EmitterWrapper (emitter) {
this.listeners = {}
this.emitter = emitter
}
EmitterWrapper.prototype.addListener = EmitterWrapper.prototype.on = function (event, listener) {
this.emitter.addListener(event, listener)
if (!this.listeners.hasOwnProperty(event)) {
this.listeners[event] = []
}
this.listeners[event].push(listener)
return this
}
EmitterWrapper.prototype.removeAllListeners = function (event) {
var events = event ? [event] : Object.keys(this.listeners)
var self = this
events.forEach(function (event) {
self.listeners[event].forEach(function (listener) {
self.emitter.removeListener(event, listener)
})
delete self.listeners[event]
})
return this
}
module.exports = EmitterWrapper