From 50bd360b6af0dd5ebe788059daf212a25034a2da Mon Sep 17 00:00:00 2001 From: Joe Ksiazek Date: Thu, 15 Mar 2018 19:06:17 -0400 Subject: [PATCH] Change .sockets interface to use 'on' and 'off' methods to avoid using Proxy --- src/Main.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Main.js b/src/Main.js index f19a820..783eb9c 100755 --- a/src/Main.js +++ b/src/Main.js @@ -15,22 +15,22 @@ export default { created(){ let sockets = this.$options['sockets'] - this.$options.sockets = new Proxy({}, { - set: (target, key, value) => { - Emitter.addListener(key, value, this) - target[key] = value - return true; - }, - deleteProperty: (target, key) => { - Emitter.removeListener(key, this.$options.sockets[key], this) - delete target.key; - return true + // define on and off as non-enumerable properties + Object.defineProperty(this.$options.sockets, 'on', { + value: (label, callback) => { + Emitter.addListener(label, callback, this); } - }) + }); + + Object.defineProperty(this.$options.sockets, 'off', { + value: (label, callback) => { + Emitter.removeListener(label, callback, this); + } + }); if(sockets){ Object.keys(sockets).forEach((key) => { - this.$options.sockets[key] = sockets[key]; + Emitter.addListener(key, sockets[key], this); }); } }, @@ -39,7 +39,7 @@ export default { if(sockets){ Object.keys(sockets).forEach((key) => { - delete this.$options.sockets[key] + Emitter.removeListener(key, sockets[key], this); }); } }