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 = Node; var n = 'root';n;n;n; var c i = n;while c = inext !== undefined console;
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