aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/events-proxy.js
diff options
context:
space:
mode:
authorfrankiebee <frankie.diamond@gmail.com>2018-04-20 02:49:11 +0800
committerfrankiebee <frankie.diamond@gmail.com>2018-04-20 02:49:11 +0800
commitc20c97ce625207c7afcd48a12f6e7891d582ae99 (patch)
treeb5e063ee7cfd0d0e99fcdb0409fe3106c010bf79 /app/scripts/lib/events-proxy.js
parenteeb9390de81ce6fc92247d5c499e991dce8330bd (diff)
parent00efcf9e8ba34d448b628c98d32ad12d5be2ffc9 (diff)
downloadtangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar
tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.gz
tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.bz2
tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.lz
tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.xz
tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.zst
tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.zip
Merge branch 'master' into tx-controller-rewrite-v3
Diffstat (limited to 'app/scripts/lib/events-proxy.js')
-rw-r--r--app/scripts/lib/events-proxy.js25
1 files changed, 18 insertions, 7 deletions
diff --git a/app/scripts/lib/events-proxy.js b/app/scripts/lib/events-proxy.js
index c0a490b05..f83773ccc 100644
--- a/app/scripts/lib/events-proxy.js
+++ b/app/scripts/lib/events-proxy.js
@@ -1,26 +1,37 @@
+/**
+ * Returns an EventEmitter that proxies events from the given event emitter
+ * @param {any} eventEmitter
+ * @param {object} listeners - The listeners to proxy to
+ * @returns {any}
+ */
module.exports = function createEventEmitterProxy (eventEmitter, listeners) {
let target = eventEmitter
const eventHandlers = listeners || {}
- const proxy = new Proxy({}, {
- get: (obj, name) => {
+ const proxy = /** @type {any} */ (new Proxy({}, {
+ get: (_, name) => {
// intercept listeners
if (name === 'on') return addListener
if (name === 'setTarget') return setTarget
if (name === 'proxyEventHandlers') return eventHandlers
- return target[name]
+ return (/** @type {any} */ (target))[name]
},
- set: (obj, name, value) => {
+ set: (_, name, value) => {
target[name] = value
return true
},
- })
- function setTarget (eventEmitter) {
+ }))
+ function setTarget (/** @type {EventEmitter} */ eventEmitter) {
target = eventEmitter
// migrate listeners
Object.keys(eventHandlers).forEach((name) => {
- eventHandlers[name].forEach((handler) => target.on(name, handler))
+ /** @type {Array<Function>} */ (eventHandlers[name]).forEach((handler) => target.on(name, handler))
})
}
+ /**
+ * Attaches a function to be called whenever the specified event is emitted
+ * @param {string} name
+ * @param {Function} handler
+ */
function addListener (name, handler) {
if (!eventHandlers[name]) eventHandlers[name] = []
eventHandlers[name].push(handler)