function comparePackageVersions()

in build-scripts/build_api_helpers.ts [229:246]


function comparePackageVersions(a: string, b: string) {
  const partsA = a.split('-');
  const partsB = b.split('-');
  const pa = partsA[0].split('.');
  const pb = partsB[0].split('.');
  for (let i = 0; i < 3; i++) {
    const na = Number(pa[i]);
    const nb = Number(pb[i]);
    if (na > nb) return 1;
    if (nb > na) return -1;
    if (!isNaN(na) && isNaN(nb)) return 1;
    if (isNaN(na) && !isNaN(nb)) return -1;
  }
  if (partsA[1] && partsB[1]) {
    return partsA[1] > partsB[1] ? 1 : (partsA[1] < partsB[1] ? -1 : 0);
  }
  return !partsA[1] && partsB[1] ? 1 : (partsA[1] && !partsB[1] ? -1 : 0);
}