MCPcopy
hub / github.com/react-component/form / treeTraverse

Function treeTraverse

src/utils.js:24–53  ·  view source on GitHub ↗
(path = '', tree, isLeafNode, errorMessage, callback)

Source from the content-addressed store, hash-verified

22}
23
24export function treeTraverse(path = '', tree, isLeafNode, errorMessage, callback) {
25 if (isLeafNode(path, tree)) {
26 callback(path, tree);
27 } else if (tree === undefined || tree === null) {
28 // Do nothing
29 } else if (Array.isArray(tree)) {
30 tree.forEach((subTree, index) => treeTraverse(
31 `${path}[${index}]`,
32 subTree,
33 isLeafNode,
34 errorMessage,
35 callback
36 ));
37 } else { // It's object and not a leaf node
38 if (typeof tree !== 'object') {
39 warning(false, errorMessage);
40 return;
41 }
42 Object.keys(tree).forEach(subTreeKey => {
43 const subTree = tree[subTreeKey];
44 treeTraverse(
45 `${path}${path ? '.' : ''}${subTreeKey}`,
46 subTree,
47 isLeafNode,
48 errorMessage,
49 callback
50 );
51 });
52 }
53}
54
55export function flattenFields(maybeNestedFields, isLeafNode, errorMessage) {
56 const fields = {};

Callers 1

flattenFieldsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected