index.js
function rectConnect() {
  if (arguments.length === 3) {
    return _rectConnectRectToPoint.apply(undefined, arguments);
  }
  return _rectConnectRectToRect.apply(undefined, arguments);
}
function rectConnect() {
  if (arguments.length === 3) {
    return _rectConnectRectToPoint.apply(undefined, arguments);
  }
  return _rectConnectRectToRect.apply(undefined, arguments);
}
function rectConnect ( ) { if ( arguments . length === 3 ) { return _rectConnectRectToPoint . apply ( undefined , arguments ) ; } return _rectConnectRectToRect . apply ( undefined , arguments ) ; }
rectConnect(sourceCenter: {x, y}, sourceSize: {width, height},
targetCenter: {x, y}, targetSize: {width, height})
Imagine drawing a line between the centers of the source rectangle and the
target rectangle. This function returns the intersections of this line
with the boundaries of the two rectangles, in the format
{source: {x, y}, target: {x, y}}.

rectConnect(rectCenter: {x, y}, rectSize: {width, height}, point: {x, y})
Imagine drawing a line between the center of the rectangle and the other
point. This function returns the intersection of this line with the
boundary of the rectangle, in the format {x, y}.
rectConnect ( sourceCenter : { x y } sourceSize : { width height } targetCenter : { x y } targetSize : { width height } ) Imagine drawing a line between the centers of the source rectangle and the target rectangle . This function returns the intersections of this line with the boundaries of the two rectangles in the format { source : { x y } target : { x y }} .