The set syntax binds an object property to a function to be called when there is an attempt to set that property. It can also be used in classes.| MDN Web Docs
The get syntax binds an object property to a function that will be called when that property is looked up. It can also be used in classes.| MDN Web Docs
The Proxy object enables you to create a proxy for another object, which can intercept and redefine fundamental operations for that object.| MDN Web Docs
Immer (German for: always) is a tiny package that allows you to work with immutable state in a more convenient way.| immerjs.github.io