live-tree

1.0.0 • Public • Published

live-tree.js

Build Status SemVer License

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 ((= 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 node
  • value: The value of the node
  • children: 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 nodes
  • node(name): Return the named node or undefined if the node does not exist
  • _add(node): Called by set to add a node to the children. The default implementation does this.children.push(node);.
  • _value(value): Called by set to change the value. The default implementation does this.value = value;.
  • toObject(): Returns a plain object representation of the node and it's children
  • iterator(): Returns a new Iterator

Iterator API

The iterator is derived from min-iterator.

  • Iterator(node): Returns a new Iterator using the given root node
  • next(): Returns the next node in the tree. If there are no items left, undefined is returned.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i live-tree

Weekly Downloads

6

Version

1.0.0

License

MIT

Last publish

Collaborators

  • mantoni