keypath-observer v1.0.1
keypath-observer
Keypaths
A keypath is a non-empty array consisting of strings and integers. A single element in this array is called a segment.
Wildcards are supported; when supplying a keypath to observe, use ? to match any value for the current segment, or * to match all keypaths from this point, regardless of length.
Wildcard Examples
['a', 'b', '?'] matches ['a', 'b', 'c'], ['a', 'b', 'a'], but not ['a', 'b', 'c', 'd'].
['a', '*'] matches ['a', 'b'], ['a', 'b', 'b'], and so-on.
Events
Events are designated by strings and may be namespaced with :. Events propagate through the namespace hierarchy, so for example, firing the event change:update:add would fire listeners registers for change:update:add, change:update and change.
API
var tree = require('keypath-observer')()
Create a new keypath observer instance.
tree.observe(keypath, cb, [ctx])
Register callback cb, optionally bound to context ctx, to be fired whenever any event is emitted on keypath.
Returns a function that can be called to remove the callback registration.
tree.observe(keypath, evt, cb, [ctx])
Register callback cb, optionally bound to context ctx, to be fired whenever event evt is emitted on keypath.
Returns a function that can be called to remove the callback registration.
tree.emit(keypath, evt, [args...])
Emit event evt on keypath.