function compareVersionResults()

in frontend/app/getbuilds.ts [130:162]


function compareVersionResults(
  deployment: DeployedImageInfo,
  available: BuildInfo
): string {
  if (!available.built_image) {
    return CompareVersionResult.NOTHING_AVAILABLE;
  }

  try {
    const numericVersionAvailable = parseInt(available.built_image.version);
    if (Number.isNaN(numericVersionAvailable))
      return CompareVersionResult.NON_NUMERIC;

    const relevantDeployedImages = deployment.deployedImages.filter(
      (img) => img.imageName == available.built_image?.imageName
    );
    if (relevantDeployedImages.length == 0)
      return CompareVersionResult.NOTHING_AVAILABLE;
    const numericVersionDeployed = parseInt(relevantDeployedImages[0].version);
    if (Number.isNaN(numericVersionDeployed))
      return CompareVersionResult.NON_NUMERIC;

    if (numericVersionAvailable == numericVersionDeployed) {
      return CompareVersionResult.SAME;
    } else if (numericVersionDeployed < numericVersionAvailable) {
      return CompareVersionResult.NEEDS_UPDATE;
    } else {
      return CompareVersionResult.DEPLOYMENT_AHEAD;
    }
  } catch (e) {
    return CompareVersionResult.NON_NUMERIC;
  }
}