getLatestVersion method
Return the most recent verison of the given package contained in the
cache. This method will prefer to return only release verions. If
includePreRelease
is true, then the very latest verision will be
returned, include pre-release versions.
Implementation
PackageRef? getLatestVersion(String packageName,
{bool includePreRelease: false}) {
List<PackageRef> refs = getAllPackageVersions(packageName);
if (refs.isEmpty) return null;
if (refs.length == 1) return refs.first;
PackageRef latest = refs.first;
if (includePreRelease) {
for (int i = 1; i < refs.length; i++) {
if (refs[i].version > latest.version) latest = refs[i];
}
} else {
List<Version> versions = refs.map((ref) => ref.version).toList();
Version latestVersion = Version.primary(versions);
for (PackageRef ref in refs) {
if (ref.version == latestVersion) latest = ref;
}
}
return latest;
}