fix(#5): avoid clobbering conflicting reciprocal port connections

This commit is contained in:
Josh Creek
2026-02-25 22:05:37 +00:00
parent 6d0b50a4bf
commit 7bfab68d94
+21 -10
View File
@@ -113,19 +113,30 @@ function ensureReciprocalConnections(data: NetworkData) {
continue;
}
const targetPort = findPort(targetOwner, port.connectedTo.port);
if (!targetPort) {
delete port.connectedTo;
continue;
}
const targetPort = findPort(targetOwner, port.connectedTo.port);
if (!targetPort) {
delete port.connectedTo;
continue;
}
targetPort.connectedTo = {
device: owner.name,
port: port.portName
};
const expectedReciprocal = {
device: owner.name,
port: port.portName
};
if (!targetPort.connectedTo) {
targetPort.connectedTo = expectedReciprocal;
continue;
}
const hasMatchingReciprocal =
equalsIgnoreCase(targetPort.connectedTo.device, owner.name) &&
equalsIgnoreCase(targetPort.connectedTo.port, port.portName);
if (hasMatchingReciprocal) {
continue;
}
}
}
}
}
function clearInboundReferences(data: NetworkData, predicate: (connection: Port['connectedTo']) => boolean) {
for (const owner of allOwners(data)) {