1.0.10 • Published 6 years ago
deep-freeze-assert v1.0.10
deep-freeze-assert
A Node.js module for listening to attempts of mutation objects and arrays.
Installation
npm install deep-freeze-assert --save
yarn add deep-freeze-assert
bower install deep-freeze-assert --save
Usage
Javascript
const deepFreezeAssert = require('deep-freeze-assert');
const obj = { a: 1 };
const freezedObj = deepFreezeAssert(obj);
obj.a = 2; // throws an error
TypeScript
import { deepFreezeAssert } from 'deep-freeze-assert';
const freezedObj = deepFreezeAssert(obj);
obj.a = 2; // throws an error
AMD
define(function(require,exports,module){
const freezedObj = deepFreezeAssert(obj);
obj.a = 2; // throws an error
});
Methods
deepFreezeAssert(target, config)
Return either a deep Proxy (if target is an Object or an Array) with listeners on set and deleteProperty traps, or itself (if target is a primitive or null). In case of nesting, traps will be bound recursively.
target
Any value
Behavior
config
Null or an Object with the next structure
Property | Optional | Type | Default | Description |
---|---|---|---|---|
silent | optional | boolean | false | false - in case of mutation throws an error true - in case of mutation writes warning to log |
setFn | optional | Function (target: any, p: PropertyKey, value: any) => boolean | setThrow | Function which will be called in case of set mutation, must return boolean |
deletePropertyFn | optional | Function (target: any, p: PropertyKey) => boolean | deletePropertyThrow | Function which will be called in case of deleteProperty mutation, must return boolean |
Test
npm run test
or
yarn test
LICENSE
MIT. See the LICENSE file for text.