objnav
v1.0.2
Published
create fast getters and setters for deep obj traversal
Downloads
3
Maintainers
Readme
objnav
create fast getters and setters for deep obj traversal.
objnav creates, compiles and caches appropiate getter/setter functions by using 'Function'
examples
var objnav = require('objnav');
var obj={
a:[0,{b:42}]
};
var N = objnav(['a',1,'b']);
N.get(obj); // returns 42
N.set(obj,5); // returns 5; N.get(obj) == 5
//lazy getter/setter
N(obj); // returns 5;
N(obj,6); returns 6; T.get(obj) is now 6
// more functions:
N.unset(obj) // unsets obj['a'][1]['b']
// secure[exception safe] operations
N.sGet(obj,42) // returns N.get(obj) when no error occurs otherwise 42;
N.sSet(obj,42) // returns value which has been set otherwise null is returned
N.sUnset(obj) // returns 1 if unset was successfull otherwise 0
//traversal
N.chain([1]).get(obj); // accesses obj['a'][1]['b'][1]
N.parent().get(obj); // accesses obj['a'][1];
// templates :
var N2 = objnav(['a','$x','$y']); // threads $<str> as placeholder
N2.bind({x:1,y:'b'})(obj); // works the same way with get/set/ etc...
// cache
N.cache // raw access
N.clearCache() // self explanatory