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 { 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 };
|
||||||
|
|||||||
Reference in New Issue
Block a user