Its possible to create direct proxy watchers for class properties in nodejs?
class User{
constructor(name){
this.name = name;
let pObject = new Proxy(this,{
set: () => {
console.log("something changed"); // should be called
return true;
}
})
Object.assign(this, pObject) // something like this?
}
}
let user = new User("Mike");
user.name = "Jack"
Do you just want to observe setters on the instance? You can return the proxy itself:
class User {
constructor(name) {
this.name = name;
let pObject = new Proxy(this, {
set: (obj, prop, value) => {
console.log("something changed"); // should be called
return Reflect.set(obj, prop,value) // set the property
}
})
return pObject
}
}
let user = new User("Mike");
user.name = "Jack"
user.state = "Alaska"
console.log(user)
console.log(user instanceof User)
Already answered by Mark Meyer, here was my take ( I am late by a few minutes to post this ) :
class User {
constructor(name) {
this.name = name;
this.UserProxy = {
set(object, prop, value) {
console.log('Object ', object);
console.log('Prop ', prop);
console.log('Value ', value);
// Do whatever you wish to
}
};
return new Proxy(this, this.UserProxy);
}
}
let user = new User('Mike');
user.name = 'Jack';
user.name = 'Falcon';
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With