MCPcopy Index your code
hub / github.com/browsemake/browser-cli / buildTree

Function buildTree

daemon.js:324–341  ·  view source on GitHub ↗
(nodeId, indent = 0)

Source from the content-addressed store, hash-verified

322 const rootAx = axNodes.find(n => !childSet.has(n.nodeId)) || axNodes[0];
323
324 function buildTree(nodeId, indent = 0) {
325 const axNode = axMap.get(nodeId);
326 if (!axNode) return '';
327 const domNode = backendIdToDomNodeMap.get(axNode.backendDOMNodeId); // Use backendIdToDomNodeMap
328 const role = axNode.role?.value || '';
329 const name = axNode.name?.value || '';
330 const tag = domNode ? `<${domNode.nodeName.toLowerCase()}>` : '';
331 let str = axNode.backendDOMNodeId
332 ? `${' '.repeat(indent)}[${axNode.nodeId}] ${role}${tag ? ' ' + tag : ''}${name ? ': ' + name : ''}\n`
333 : `${' '.repeat(indent)}[${axNode.nodeId}] ${role}${tag ? ' ' + tag : ''} <no DOM>\n`;
334 if (domNode && domNode.nodeId) {
335 idToXPath[axNode.nodeId] = idToXPath[domNode.nodeId];
336 }
337 for (const childId of axNode.childIds || []) {
338 str += buildTree(childId, indent + 1);
339 }
340 return str;
341 }
342
343 const tree = buildTree(rootAx.nodeId, 0);
344 lastIdToXPath = idToXPath; // Store the mapping globally

Callers 1

daemon.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected