validateConnection()

in seatunnel-ui/src/views/task/synchronization-definition/dag/canvas/use-dag-graph.ts [42:62]


      validateConnection(data) {
        const { sourceCell, targetCell } = data
        if (targetCell?.getData().type === 'source') return false
        if (targetCell?.getData().type === 'sink') {
          return graph.value?.getConnectedEdges(targetCell).length < 1
        }
        
        if (targetCell?.getData().type === 'transform') {
          // The same 'Copy' transform node cannot be connected
          const srcData = sourceCell?.getData(), tgtData = targetCell?.getData()
          if (srcData.type === 'transform' && srcData.connectorType === 'Copy' && tgtData.connectorType === 'Copy') return false

          // don't connect self
          const edges = graph.value?.getConnectedEdges(targetCell)
          return !edges.some((edge: Edge) => {
            return edge.getTargetCellId() === targetCell.id
          })
        }

        return true
      }