mirror of
https://github.com/bendtherules/react-fiber-traverse.git
synced 2026-08-18 13:52:36 +00:00
traverse - Arrange functions in file
This commit is contained in:
+25
-25
@@ -1,31 +1,6 @@
|
||||
// import { isNodeSimple } from './utils';
|
||||
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.
|
||||
*
|
||||
@@ -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 };
|
||||
|
||||
Reference in New Issue
Block a user