getReleaseFromVersion method

Release? getReleaseFromVersion(
  1. String version
)

Retrieves version information

Implementation

Release? getReleaseFromVersion(String version) {
  if (checkIsChannel(version)) {
    return channels[version];
  }

  int findReleaseIdx(Channel channel) {
    return releases.indexWhere(
      (v) => v.version == version && v.channel == channel,
    );
  }

  // Versions can be in multiple versions
  // Prioritize by order of maturity
  // TODO: could be optimized and avoid multiple loops
  final stableIndex = findReleaseIdx(Channel.stable);
  final betaIndex = findReleaseIdx(Channel.beta);
  final devIndex = findReleaseIdx(Channel.dev);

  Release? release;
  if (stableIndex >= 0) {
    release = releases[stableIndex];
  } else if (betaIndex >= 0) {
    release = releases[betaIndex];
  } else if (devIndex >= 0) {
    release = releases[devIndex];
  }

  return release;
}