cli-ux
Version:
cli IO utilities
42 lines (41 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const treeify = require('treeify');
class Tree {
constructor() {
this.nodes = {};
}
insert(child, value = new Tree()) {
this.nodes[child] = value;
return this;
}
search(key) {
for (let child of Object.keys(this.nodes)) {
if (child === key) {
return this.nodes[child];
}
else {
let c = this.nodes[child].search(key);
if (c)
return c;
}
}
}
// tslint:disable-next-line:no-console
display(logger = console.log) {
const addNodes = function (nodes) {
let tree = {};
for (let p of Object.keys(nodes)) {
tree[p] = addNodes(nodes[p].nodes);
}
return tree;
};
let tree = addNodes(this.nodes);
logger(treeify.asTree(tree));
}
}
exports.Tree = Tree;
function tree() {
return new Tree();
}
exports.default = tree;