code: function compare([l, ...left], [r, ...right]) {
    if (l < r) {
      return -1;
    }
    if (l > r) {
      return 1;
    }
  
    if (left.length === 0) {
      return 0;
    }
  
    return compare(left, right);
  }
docs: /* eslint-disable complexity 
  Recursive compareFunction for sorting version strings
  @param {number} l
  @param {Array<number>} left
  @param {number} r
  @param {Array<number>} right
  @returns {number}