traverse - Arrange functions in file

This commit is contained in:
2019-09-11 14:58:13 +05:30
parent 94ab7112f7
commit 492e69f4dd
+25 -25
View File
@@ -1,31 +1,6 @@
// import { isNodeSimple } from './utils'; // import { isNodeSimple } from './utils';
import { FiberNode } from "./mocked-types"; import { FiberNode } from "./mocked-types";
/**
* Traverse nodes recursively in depth-first manner, starting from a start node.
*
* This is the default and basic traversal function, which covers basic use cases.
* You can't do advanced things like change the order of traversal, skip or cancel traversal after any node, etc.
* For more advanced usecases, see {@link traverseGenerator}
*
* @example
* ```js
* // calls fn for each node inside startNode
* traverse(startNode, fn);
* ```
*
*/
function traverse(node: FiberNode, fn: (node: FiberNode) => any) {
fn.call(null, node);
if (node.child !== null) {
traverse(node.child, fn);
}
if (node.sibling !== null) {
traverse(node.sibling, fn);
}
}
/** /**
* Traverse nodes recursively using generators. * Traverse nodes recursively using generators.
* *
@@ -135,4 +110,29 @@ function* traverseGenerator(
} }
} }
/**
* Traverse nodes recursively in depth-first manner, starting from a start node.
*
* This is the default and basic traversal function, which covers basic use cases.
* You can't do advanced things like change the order of traversal, skip or cancel traversal after any node, etc.
* For more advanced usecases, see {@link traverseGenerator}
*
* @example
* ```js
* // calls fn for each node inside startNode
* traverse(startNode, fn);
* ```
*
*/
function traverse(node: FiberNode, fn: (node: FiberNode) => any) {
fn.call(null, node);
if (node.child !== null) {
traverse(node.child, fn);
}
if (node.sibling !== null) {
traverse(node.sibling, fn);
}
}
export { traverse, traverseGenerator }; export { traverse, traverseGenerator };