-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
tree2.js
20 lines (16 loc) · 661 Bytes
/
tree2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import fs from 'fs';
import path from 'path';
import { flatten } from '../src';
import tree from '../test/fixtures/tree.json';
flatten(tree, { openAllNodes: true }).forEach((node, index) => {
const { state, label = '', children = [] } = node;
const { depth, open, path, prefixMask } = state;
if (depth === 0) {
console.log('%s (%s)', label, path);
return;
}
const prefix = prefixMask.substr(1).split('')
.map(s => (Number(s) === 0) ? ' ' : '| ')
.join('');
console.log('%s%s─%s %s (%s)', prefix, (node.isLastChild() ? '└' : '├'), (node.hasChildren() && open ? '┬' : '─'), label, path);
});