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

Method resolveAll

src/resolution/index.ts:697–759  ·  view source on GitHub ↗

* Resolve all unresolved references

(
    unresolvedRefs: UnresolvedReference[],
    onProgress?: (current: number, total: number) => void
  )

Source from the content-addressed store, hash-verified

695 * Resolve all unresolved references
696 */
697 resolveAll(
698 unresolvedRefs: UnresolvedReference[],
699 onProgress?: (current: number, total: number) => void
700 ): ResolutionResult {
701 // Pre-load all nodes into memory for fast lookups
702 this.warmCaches();
703
704 const resolved: ResolvedRef[] = [];
705 const unresolved: UnresolvedRef[] = [];
706 const byMethod: Record<string, number> = {};
707
708 // Convert to our internal format, using denormalized fields when available
709 const refs: UnresolvedRef[] = unresolvedRefs.map((ref) => ({
710 fromNodeId: ref.fromNodeId,
711 referenceName: ref.referenceName,
712 referenceKind: ref.referenceKind,
713 line: ref.line,
714 column: ref.column,
715 filePath: ref.filePath || this.getFilePathFromNodeId(ref.fromNodeId),
716 language: ref.language || this.getLanguageFromNodeId(ref.fromNodeId),
717 rowId: ref.rowId,
718 }));
719
720 const total = refs.length;
721 let lastReportedPercent = -1;
722
723 for (let i = 0; i < refs.length; i++) {
724 const ref = refs[i]!; // Array index is guaranteed to be in bounds
725 const result = this.resolveOneTimed(ref);
726
727 if (result) {
728 resolved.push(result);
729 byMethod[result.resolvedBy] = (byMethod[result.resolvedBy] || 0) + 1;
730 } else {
731 unresolved.push(ref);
732 }
733
734 // Report progress every 1% to avoid too many updates
735 if (onProgress) {
736 const currentPercent = Math.floor((i / total) * 100);
737 if (currentPercent > lastReportedPercent) {
738 lastReportedPercent = currentPercent;
739 onProgress(i + 1, total);
740 }
741 }
742 }
743
744 // Final progress report
745 if (onProgress && total > 0) {
746 onProgress(total, total);
747 }
748
749 return {
750 resolved,
751 unresolved,
752 stats: {
753 total: refs.length,
754 resolved: resolved.length,

Callers 1

resolveAndPersistMethod · 0.95

Calls 5

warmCachesMethod · 0.95
getFilePathFromNodeIdMethod · 0.95
getLanguageFromNodeIdMethod · 0.95
resolveOneTimedMethod · 0.95
onProgressFunction · 0.85

Tested by

no test coverage detected