MCPcopy Create free account
hub / github.com/agent-tower/core / buildTree

Function buildTree

packages/web/src/components/workspace/ReviewView.tsx:284–304  ·  view source on GitHub ↗
(entries: TreeEntry[])

Source from the content-addressed store, hash-verified

282}
283
284function buildTree(entries: TreeEntry[]): TreeDir {
285 const root: TreeDir = { name: '', path: '', dirs: new Map(), files: [] }
286 for (const entry of entries) {
287 const segments = entry.path.split('/')
288 let node = root
289 for (let i = 0; i < segments.length - 1; i++) {
290 const seg = segments[i]!
291 if (!node.dirs.has(seg)) {
292 node.dirs.set(seg, {
293 name: seg,
294 path: node.path ? `${node.path}/${seg}` : seg,
295 dirs: new Map(),
296 files: [],
297 })
298 }
299 node = node.dirs.get(seg)!
300 }
301 node.files.push(entry)
302 }
303 return compressTree(root)
304}
305
306/** 压缩单链目录:a/b/c 只有一个子目录时合并显示 */
307function compressTree(node: TreeDir): TreeDir {

Callers 1

ReviewViewFunction · 0.85

Calls 5

compressTreeFunction · 0.85
setMethod · 0.80
hasMethod · 0.45
getMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected