0.1.1 • Published 9 years ago

tree-manipulator v0.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

Tree Manipulator npm version

A service manipulating tree object.

Installation

npm install tree-manipulator --save

Code Example

var tree = {
	id: '1',
	children: [{
		id: '2',
		children: [
			{
				id: '3',
			},
			{
				id: '4'
			}
		]
	}, {
		id: '5',
		children: [{
			id: '6'
		}, {
			id: '7'
		}]
	}]
};

var tm = new TreeManipulator();

tm.findNode('2', tree);
// 
/*
Returns the entire node with identifier '2' and its path
{
	node: {id:'2' ... },
	path: ['1', '2']	
}
*/

tm.deleteNode('2', tree);
/*
 Deletes node from the tree. Returns the entire node with identifier '2' and its path.
returns {
	node: {id:'2' ... },
	path: ['1', '2']	
}
*/

tm.createNode('8', {parent: '2', before: '4'}, tree);
/*
Inserts a new node before the node '4'. Returns a new node with identifier '8' and its path.
returns {
	node: {id:'8' ... },
	path: ['1', '2', '8']	
}
*/

tm.createNode('8', {parent: '2', after: '3'}, tree);
/*
Inserts a new node after the node '3'. Returns a new node with identifier '8' and its path.
returns {
	node: {id:'8' ... },
	path: ['1', '2', '8']	
}
*/

tm.createNode('8', {parent: '2'}, tree);
/*
Appends a new node as a last child of the node '2'. Returns a new node with identifier '8' and its path.
returns {
	node: {id:'8' ... },
	path: ['1', '2', '8']	
}
*/

tm.print(tree);
/** 
output:
		1
		\___5
			\___6
			\___7

**/

API Reference

#####constructor (options)

  • Arguments:
    - options Object
    - identifierProperty String
    identifier property of a node
    default: 'id'
    - nestedNodesProperty String
    property name for nested nodes array
    default: 'children'
    - idGenerator Function
    node identifier generator
    default:
    			```
    			function(){  
    				//returns a unique sha derived from timestamp and an internal counter
    			}
    			```    
    		- valueGetter [`Function`]  
    			a node property value getter 
    			default:  
    			```
    			function(obj, property) {  
    				return obj[property];  
    			}  
    			```   
    		- valueSetter [`Function`]  
    			a node property value setter  
    			default:  
    			```
    			function(obj, property, value) { 
    				obj[property] = value;
    			}
    			```  
    		- nodeCreator [`Function`]  
    			a newly created node generator  
    			default:  
    			```
    			function() {
    				return {};
    			}
    			```
    		- addItemToArray [`Function`]  
    			item adder to array  
    			default:  
    			```
    			function(item, index, array) {
    				array.splice(index, 0, item);
    			}
    			```  
    		- removeItemFromArray [`Function`]  
    			item adder to array  
    			default:  
    			```
    			function(item, array) {
    				var index = array.indexOf(item);
    				return array.splice(index, 1)[0];
    			}
    			```  

#####findNode (identifierValue, tree)

#####createNode (identifierValue, options, tree)

#####deleteNode (identifierValue, tree)

#####print (tree)

License

MIT

0.1.1

9 years ago

0.1.0

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago