2.0.0 • Published 3 years ago
@exodus/proxy-freeze v2.0.0
proxy-freeze
A simple way to freeze JavaScript objects and know of attempted modifications.
Why?
Why not just use Object.freeze and Object.isFrozen?
If you use Object.freeze and later set a property on that object, it silently fails unless in strict mode. Also, using this technique gives you the ability to listen for warnings on the warning event.
Install
npm install --save proxy-freezeUsage
proxyFreeze(target, options)
- target: can be either an
objector constructorfunction - options
- addProxyIdentifier:
boolean, adds a symbol getter that detects Proxies created via this method. Defaults tofalse. - preventRefreeze:
boolean, uses symbol added viaaddProxyIdentifierto identify frozen Proxies and doesn't re-freeze them. Defaults tofalse.
- addProxyIdentifier:
const obj = {
name: 'jp'
}
const obj2 = proxyFreeze(obj)
obj2.name = 'bob'
process.once('warning', (warning) => {
console.warn(warning.name) // => ProxyFreezeWarning
console.warn(warning.message) // => Trying to set value of property (name) of frozen object.
console.warn(warning.stack)
})License
2.0.0
3 years ago