1.0.0 • Published 11 years ago
live-tree v1.0.0
live-tree.js
Fast tree with live iterator. The tree can be modified while iterating over the nodes.
Install with npm
npm install live-treeBrowser compatibility
To use this module in a browser, download the npm package and then use Browserify to create a standalone version.
Usage
var Node = require('live-tree').Node;
var n = new Node('root');
n.set('a', 2);
n.set('a.b', 3);
n.set('a.c', 7);
var c, i = n.iterator();
while ((c = i.next()) !== undefined) {
console.log(c.value);
}Node API
Node(name): Returns a new Node with the given name. The name must be of type string and not empty.name: The name of the nodevalue: The value of the nodechildren: The list of children (see live-list)set(name, value): Sets the value of the named node. If the node does not exist, it is created and added to the children by calling_add(node). The value is changed by calling_value(value).get(name): Returns the value of the named node. If the node does not exist, undefined is returned.remove(name): Removes the named node. If it has children, the value is deleted. Parent nodes in the path with no value and no remaining children will be removed as well.removeAll(): Removes all child nodesnode(name): Return the named node or undefined if the node does not exist_add(node): Called bysetto add a node to the children. The default implementation doesthis.children.push(node);._value(value): Called bysetto change the value. The default implementation doesthis.value = value;.toObject(): Returns a plain object representation of the node and it's childreniterator(): Returns a newIterator
Iterator API
The iterator is derived from min-iterator.
Iterator(node): Returns a new Iterator using the given root nodenext(): Returns the next node in the tree. If there are no items left,undefinedis returned.
License
MIT