A node module for creating tree data structure from text input

This module takes a simplified tree structured input string and build a JavaScript tree object in memory.
A simple tree structured input string (input.txt) example:
#root node##node1###node11##node2
It illustrates a tree as below:
root node |-- node1 | |--node11 |-- node2
Each line represents a node in the tree, it should begins with the leading character (default is #). The count of leading chracters minus 1 is the level of the node. There should be only 1 root node which has only 1 leading character, and it should be at the first line of the input string.
varfreetree=require('freetree');vartree=freetree.parse(str,settings);
settings
has below listed properties
leadingChar
: optional, defines leading character for the tree, defaulted to '#'compact
: optional, output the object in compact mode.
Prepare aninput.txt
file as above demonstrated.
varfs=require('fs');varfreetree=require('freetree');varstr=fs.readFileSync('input.txt','utf8');vartree=freetree.parse(str);
then, thetree
object is an in-memory JavaScript object. In this example, the object is in structure:
{"level":0,"value":"root","nodes":[{"level":1,"value":"node1","nodes":[{"level":2,"value":"node11"}]},{"level":1,"value":"node2"}]}
If thecompact
option is set totrue
, the object will be compressed in below structure:
{"root":[{"node1":[{"node11":null}]},{"node2":null}]}
Make suremocha
is installed globally
Runnpm test
to run unit test
MIT