mirror of
https://github.com/tenrok/vue-native-websocket.git
synced 2026-06-22 18:20:34 +03:00
Check for Proxy before using it
This commit is contained in:
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+27
-21
@@ -29,38 +29,44 @@ export default {
|
|||||||
observer = new Observer(connection, opts)
|
observer = new Observer(connection, opts)
|
||||||
Vue.prototype.$socket = observer.WebSocket
|
Vue.prototype.$socket = observer.WebSocket
|
||||||
}
|
}
|
||||||
|
const hasProxy = typeof Proxy !== 'undefined' && typeof Proxy === 'function' && /native code/.test(Proxy.toString())
|
||||||
|
|
||||||
Vue.mixin({
|
Vue.mixin({
|
||||||
created () {
|
created () {
|
||||||
let vm = this
|
let vm = this
|
||||||
let sockets = this.$options['sockets']
|
let sockets = this.$options['sockets']
|
||||||
|
|
||||||
this.$options.sockets = new Proxy({}, {
|
if (hasProxy) {
|
||||||
set (target, key, value) {
|
this.$options.sockets = new Proxy({}, {
|
||||||
Emitter.addListener(key, value, vm)
|
set (target, key, value) {
|
||||||
target[key] = value
|
Emitter.addListener(key, value, vm)
|
||||||
return true
|
target[key] = value
|
||||||
},
|
return true
|
||||||
deleteProperty (target, key) {
|
},
|
||||||
Emitter.removeListener(key, vm.$options.sockets[key], vm)
|
deleteProperty (target, key) {
|
||||||
delete target.key
|
Emitter.removeListener(key, vm.$options.sockets[key], vm)
|
||||||
return true
|
delete target.key
|
||||||
}
|
return true
|
||||||
})
|
}
|
||||||
|
|
||||||
if (sockets) {
|
|
||||||
Object.keys(sockets).forEach((key) => {
|
|
||||||
this.$options.sockets[key] = sockets[key]
|
|
||||||
})
|
})
|
||||||
|
if (sockets) {
|
||||||
|
Object.keys(sockets).forEach((key) => {
|
||||||
|
this.$options.sockets[key] = sockets[key]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Object.seal(this.$options.sockets)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy () {
|
beforeDestroy () {
|
||||||
let sockets = this.$options['sockets']
|
if (hasProxy) {
|
||||||
|
let sockets = this.$options['sockets']
|
||||||
|
|
||||||
if (sockets) {
|
if (sockets) {
|
||||||
Object.keys(sockets).forEach((key) => {
|
Object.keys(sockets).forEach((key) => {
|
||||||
delete this.$options.sockets[key]
|
delete this.$options.sockets[key]
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user