live-tree
v1.0.0
Published
Fast tree with live iterator
Downloads
26
Readme
live-tree.js
Fast tree with live iterator. The tree can be modified while iterating over the nodes.
Install with npm
npm install live-tree
Browser 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 byset
to add a node to the children. The default implementation doesthis.children.push(node);
._value(value)
: Called byset
to 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,undefined
is returned.
License
MIT