MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / flattenTree

Function flattenTree

src/lib/fileList.js:207–223  ·  view source on GitHub ↗

* Get all files * @param {Tree} tree * @param {(item:Tree)=>object} transform

(tree, transform, listedDirs)

Source from the content-addressed store, hash-verified

205 * @param {(item:Tree)=>object} transform
206 */
207function flattenTree(tree, transform, listedDirs) {
208 const list = [];
209 const { children } = tree;
210 if (!children) {
211 return [transform(tree)];
212 }
213
214 if (listedDirs.includes(tree.url)) return list;
215
216 listedDirs.push(tree.url);
217
218 children.forEach((item) => {
219 if (item.children) list.push(...flattenTree(item, transform, listedDirs));
220 else list.push(transform(item));
221 });
222 return list;
223}
224
225/**
226 * Called when a folder is added

Callers 1

filesFunction · 0.85

Calls 1

transformFunction · 0.85

Tested by

no test coverage detected