MCPcopy Create free account
hub / github.com/codag-megalith/codag-visualizer / mergeCrossFileEdges

Method mergeCrossFileEdges

frontend/src/cache.ts:716–737  ·  view source on GitHub ↗

* Merge new cross-file edges with replace-on-conflict behavior * Newer edges (by timestamp) replace older ones, preserving latest labels

(newEdges: CrossFileEdge[])

Source from the content-addressed store, hash-verified

714 * Newer edges (by timestamp) replace older ones, preserving latest labels
715 */
716 private mergeCrossFileEdges(newEdges: CrossFileEdge[]) {
717 const edgeKey = (e: CrossFileEdge) =>
718 `${e.sourceFile}:${e.sourceNodeId}->${e.targetFile}:${e.targetNodeId}`;
719
720 // Build map from existing edges
721 const edgeMap = new Map<string, CrossFileEdge>();
722 for (const edge of this.crossFileEdges) {
723 edgeMap.set(edgeKey(edge), edge);
724 }
725
726 // Merge new edges - replace if newer timestamp
727 for (const edge of newEdges) {
728 const key = edgeKey(edge);
729 const existing = edgeMap.get(key);
730 if (!existing || edge.timestamp > existing.timestamp) {
731 edgeMap.set(key, edge);
732 }
733 }
734
735 // Convert back to array
736 this.crossFileEdges = Array.from(edgeMap.values());
737 }
738
739 // =========================================================================
740 // Retrieve & Merge

Callers 1

setAnalysisResultMethod · 0.95

Calls 4

edgeKeyFunction · 0.85
setMethod · 0.80
getMethod · 0.45
fromMethod · 0.45

Tested by

no test coverage detected