Topiary
Topiary is a utility that shapes tree structures into a prettified format ala npm list
.
It is used by npm-graph.
Usage
Given a tree structure and a key to recurse on, call topiary on that object:
var topiary = ; var tree = name: "root" deps: name : 'sub1' deps : name : 'sub2' deps : name : 'sub2sub' deps : name : 'sub3' deps : ;console;
Output:
root
├──sub1
├─┬sub2
│ └──sub2sub
└──sub3
The 'deps'
string is the key to recurse on, expected to hold an array of objects of the same structure.
Options
A third options object can be supplied to topiary with the following key/value combinations:
name
If labelling by the default name
key is not working, you can supply your own labeller:
var { return '#' + objname; // combine stuff from object into a sensible string};console;
root
├──#sub1
├─┬#sub2
│ └──#sub2sub
└──#sub3
filter
You can optionally pass in a function to help filter certain branches or leaf nodes:
var { return elname !== 'sub2';};console;
Output:
root
├──sub1
└──sub3
sort
You can ask topiary to sort the recurseName
array before starting to work on it. This solves non-deterministic outputs sometimes produced if it is generated in a non-deterministic manner:
console;
Note that sorting is done lexicographically based on the labels output by the label functions.
Installation
$ npm install topiary
License
MIT-Licensed. See LICENSE file for details.