treeify converts a JS object into a nice, visible depth-indented tree for console printing. The structure
generated is similar to what you get by running the tree
command on Unixy platforms.
{
oranges: {
'mandarin': { ├─ oranges
clementine: null, │ └─ mandarin
tangerine: 'so cheap and juicy!' -=> │ ├─ clementine
} │ └─ tangerine: so cheap and juicy!
}, └─ apples
apples: { ├─ gala
'gala': null, └─ pink lady
'pink lady': null
}
}
It also works well with larger nested hierarchies such as file system directory trees.
In fact, the fs_tree
example does a pretty good job of imitating tree
. Try it out!
See the other included examples or the test suite for usage scenarios.
First you'll want to run this command in your project's root folder:
$ npm install treeify
Then proceed to use it in your project:
var treeify = require('treeify');
console.log(
treeify.asTree({
apples: 'gala', // ├─ apples: gala
oranges: 'mandarin' // └─ oranges: mandarin
}, true)
);
Treeify cooperates with Node, AMD or browser globals to create a module. This means it'll work
in a browser regardless of whether you have an AMD-compliant module loader or not. If such
a loader isn't found when the script is executed, you may access Treeify at window.treeify
.
The methods exposed to you are as follows, in a strange kind of signature notation:
treeify.asLines(obj, showValues (boolean), [hideFunctions (boolean),] lineCallback (function))
// NOTE: hideFunctions is optional and may be safely omitted - this was done to ensure we don't break uses of the previous form
treeify.asTree(obj, showValues (boolean), [hideFunctions (boolean)]): String
There's a pretty extensive suite of Vows tests included.
$ npm test