From 0e6d46c7b3b87669de62ef82e983b88b146ed99e Mon Sep 17 00:00:00 2001 From: Yaroslav Admin Date: Tue, 6 Mar 2018 01:09:23 +0100 Subject: [PATCH] refactor: migrate EmitterWrapped to ES2015 --- lib/emitter_wrapper.js | 49 ++++++++++++++++++------------- test/unit/emitter_wrapper.spec.js | 15 +++++----- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/lib/emitter_wrapper.js b/lib/emitter_wrapper.js index 7dd15d57f..2ed593bf3 100644 --- a/lib/emitter_wrapper.js +++ b/lib/emitter_wrapper.js @@ -1,31 +1,38 @@ -function EmitterWrapper (emitter) { - this.listeners = {} - this.emitter = emitter -} - -EmitterWrapper.prototype.addListener = EmitterWrapper.prototype.on = function (event, listener) { - this.emitter.addListener(event, listener) +'use strict' - if (!this.listeners.hasOwnProperty(event)) { - this.listeners[event] = [] +class EmitterWrapper { + constructor (emitter) { + this.listeners = {} + this.emitter = emitter } - this.listeners[event].push(listener) + addListener (event, listener) { + this.emitter.addListener(event, listener) - return this -} + if (!this.listeners.hasOwnProperty(event)) { + this.listeners[event] = [] + } -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) + this.listeners[event].push(listener) + + return this + } + + on (event, listener) { + return this.addListener(event, listener) + } + + removeAllListeners (event) { + const events = event ? [event] : Object.keys(this.listeners) + events.forEach((event) => { + this.listeners[event].forEach((listener) => { + this.emitter.removeListener(event, listener) + }) + delete this.listeners[event] }) - delete self.listeners[event] - }) - return this + return this + } } module.exports = EmitterWrapper diff --git a/test/unit/emitter_wrapper.spec.js b/test/unit/emitter_wrapper.spec.js index d8aecce8c..136d7f22a 100644 --- a/test/unit/emitter_wrapper.spec.js +++ b/test/unit/emitter_wrapper.spec.js @@ -1,10 +1,11 @@ -var EventEmitter = require('events').EventEmitter +'use strict' -var EmitterWrapper = require('../../lib/emitter_wrapper') +const EventEmitter = require('events').EventEmitter +const EmitterWrapper = require('../../lib/emitter_wrapper') describe('emitter_wrapper', () => { - var emitter - var wrapped + let emitter + let wrapped beforeEach(() => { emitter = new EventEmitter() @@ -14,7 +15,7 @@ describe('emitter_wrapper', () => { }) describe('addListener', () => { - var aListener = (e) => true + const aListener = (e) => true it('should add a listener to the wrapped emitter', () => { wrapped.addListener('anEvent', aListener) @@ -27,7 +28,7 @@ describe('emitter_wrapper', () => { }) describe('removeAllListeners', () => { - var aListener = (e) => true + const aListener = (e) => true beforeEach(() => { wrapped.addListener('anEvent', aListener) @@ -44,7 +45,7 @@ describe('emitter_wrapper', () => { }) it('should remove only matching listeners when called with an event name', () => { - var anotherListener = (e) => true + const anotherListener = (e) => true wrapped.addListener('anotherEvent', anotherListener) wrapped.removeAllListeners('anEvent') expect(emitter.listeners('anEvent')).not.to.contain(aListener)