events-proxy - clean up

feature/default_network_editable
kumavis 7 years ago
parent 4d273d3cea
commit e32d75965f
  1. 10
      app/scripts/lib/events-proxy.js

@ -1,6 +1,5 @@
module.exports = function createEventEmitterProxy(eventEmitter, listeners) { module.exports = function createEventEmitterProxy(eventEmitter, eventHandlers = {}) {
let target = eventEmitter let target = eventEmitter
const eventHandlers = listeners || {}
const proxy = new Proxy({}, { const proxy = new Proxy({}, {
get: (obj, name) => { get: (obj, name) => {
// intercept listeners // intercept listeners
@ -14,9 +13,12 @@ module.exports = function createEventEmitterProxy(eventEmitter, listeners) {
return true return true
}, },
}) })
proxy.setTarget(eventEmitter)
return proxy
function setTarget (eventEmitter) { function setTarget (eventEmitter) {
target = eventEmitter target = eventEmitter
// migrate listeners // migrate eventHandlers
Object.keys(eventHandlers).forEach((name) => { Object.keys(eventHandlers).forEach((name) => {
eventHandlers[name].forEach((handler) => target.on(name, handler)) eventHandlers[name].forEach((handler) => target.on(name, handler))
}) })
@ -26,6 +28,4 @@ module.exports = function createEventEmitterProxy(eventEmitter, listeners) {
eventHandlers[name].push(handler) eventHandlers[name].push(handler)
target.on(name, handler) target.on(name, handler)
} }
if (listeners) proxy.setTarget(eventEmitter)
return proxy
} }
Loading…
Cancel
Save