dvRoutesOverlap function

bool dvRoutesOverlap(
  1. String a,
  2. String b
)

Whether some URL would match both a and b.

Implementation

bool dvRoutesOverlap(String a, String b) {
  final List<String> left = _segments(a);
  final List<String> right = _segments(b);
  final int length = left.length < right.length ? left.length : right.length;
  for (int i = 0; i < length; i++) {
    final String l = left[i];
    final String r = right[i];
    // A catch-all takes the rest of the path, whatever it is.
    if (l.startsWith('*') || r.startsWith('*')) return true;
    if (_isParameter(l) || _isParameter(r)) continue;
    if (l != r) return false;
  }
  if (left.length == right.length) return true;
  // One ran out first. They still meet when the longer one's next segment is
  // a catch-all, which can match nothing more.
  final List<String> longer = left.length > right.length ? left : right;
  return longer[length].startsWith('*') && longer.length == length + 1;
}