Ward
A library for effortlessly managing deeply-nested immutable data structures in node and the browser.
Installation
npm install ward
Usage
var ward = ;var data = ; var observer = ward; datauserfirstName; // -> 'John'datauserfriends; // -> ['Mike', 'Alex'] datauserfirstName;datauserfirstName; // -> 'Jack' datauserfriends0;datauserfriends; // -> ['Josh', 'Alex'] // Stop observing changes to data.observer;
API
ward(value)
Create a ward wrapper object around any value
. Ward will recursively wrap plain objects and arrays. All ward object are immutable.
var data = ;
ward.observe(object, observer)
Observe ward object
for changes, triggering observer
function on any change to object
’s value or nested values, passing in the new value wrapped in a ward object.
var students = ; var observer1 = ward; var observer2 = ward; // This will trigger the above observers.studentsgroupA0; observer1;observer2;
ward.keys(object)
Given an object
returned by ward(value)
, return an array of all enumerable properties of value
.
var fruits = ;ward; // -> 'red', 'yellow' var units = ;ward; // -> '0', '1', '2'
ward.count(object)
Return the count of an object’s enumerable properties.
var fruits = ;ward; // -> 2 var units = ;ward; // -> 3 ward === wardlength // -> true
IE8 Support
For Ward to work on IE8, make sure to include ES5 shim and sham.