remove proxy

This commit is contained in:
Philipp Kühn
2021-02-16 18:54:44 +01:00
parent 21b93e65f8
commit 744dab5601
2 changed files with 3 additions and 58 deletions

View File

@@ -1,34 +0,0 @@
export default function magicMethods(Clazz: any): any {
const classHandler = Object.create(null)
classHandler.construct = (_: any, args: any) => {
const instance = new Clazz(...args)
const instanceHandler = Object.create(null)
const get = Object.getOwnPropertyDescriptor(Clazz.prototype, '__get')
if (get) {
instanceHandler.get = (target: any, name: any) => {
if (typeof name !== 'string') {
return
}
const exists = name in target
|| name.startsWith('_')
|| ['then', 'catch'].includes(name)
if (exists) {
return target[name]
}
return get.value.call(target, name)
}
}
instance.proxy = new Proxy(instance, instanceHandler)
instance.emit('createdProxy')
return instance.proxy
}
return new Proxy(Clazz, classHandler)
}