in src/utilities/graph-util.js [73:103]
static linkNodesAndEdges(nodesMap: any, edges: IEdge[]) {
let nodeMapSourceNode = null;
let nodeMapTargetNode = null;
let edge = null;
for (let i = 0; i < edges.length; i++) {
edge = edges[i];
if (edge.target == null) {
continue;
}
const sourceID = `key-${edge.source != null ? edge.source : ''}`;
const targetID = `key-${edge.target}`;
nodeMapSourceNode = nodesMap[sourceID];
nodeMapTargetNode = nodesMap[targetID];
// avoid an orphaned edge
if (nodeMapSourceNode && nodeMapTargetNode) {
nodeMapSourceNode.outgoingEdges.push(edge);
nodeMapTargetNode.incomingEdges.push(edge);
nodeMapSourceNode.children.push(nodeMapTargetNode);
nodeMapTargetNode.parents.push(nodeMapSourceNode);
} else {
// This can get noisy because linkNodesAndEdges runs a lot.
// The consumer should have cleared out the edges before rendering react-digraph
console.warn('react-digraph: Found orphaned edges');
}
}
}