MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / getTypeAncestors

Method getTypeAncestors

src/graph/traversal.ts:438–461  ·  view source on GitHub ↗
(
    nodeId: string,
    nodes: Map<string, Node>,
    edges: Edge[],
    visited: Set<string>
  )

Source from the content-addressed store, hash-verified

436 }
437
438 private getTypeAncestors(
439 nodeId: string,
440 nodes: Map<string, Node>,
441 edges: Edge[],
442 visited: Set<string>
443 ): void {
444 if (visited.has(nodeId)) {
445 return;
446 }
447 visited.add(nodeId);
448
449 const outgoingEdges = this.queries.getOutgoingEdges(nodeId, ['extends', 'implements']);
450 if (outgoingEdges.length === 0) return;
451 const parents = this.queries.getNodesByIds(outgoingEdges.map((e) => e.target));
452
453 for (const edge of outgoingEdges) {
454 const parentNode = parents.get(edge.target);
455 if (parentNode && !nodes.has(parentNode.id)) {
456 nodes.set(parentNode.id, parentNode);
457 edges.push(edge);
458 this.getTypeAncestors(parentNode.id, nodes, edges, visited);
459 }
460 }
461 }
462
463 private getTypeDescendants(
464 nodeId: string,

Callers 1

getTypeHierarchyMethod · 0.95

Calls 5

hasMethod · 0.80
getNodesByIdsMethod · 0.80
getMethod · 0.65
getOutgoingEdgesMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected