js2flowchart
Version:
> Why? While I've been working on [Under-the-hood-ReactJS](https://github.com/Bogdan-Lyashenko/Under-the-hood-ReactJS) I spent enormous amount of time on creating schemes. Each change in code or flowchart affects all entire scheme instantly, forcing you t
24 lines (21 loc) • 726 B
JavaScript
import { levelsTraversal } from './traversal';
import { setupPointer } from './treeLevelsPointer';
export const complexTraversal = (tree, root, onStepIn, onNode, onStepOut, options) => {
const levelsPointer = setupPointer();
let latestShape = root;
levelsTraversal(
tree,
parentNode => {
levelsPointer.stepIn(latestShape);
onStepIn(parentNode, levelsPointer.getCurrent());
},
node => {
latestShape = onNode(node, levelsPointer.getCurrent());
},
parentNode => {
levelsPointer.getCurrent() && onStepOut(parentNode, levelsPointer.getCurrent());
levelsPointer.stepOut();
},
options
);
};