determineVersionToOffer function
Implementation
List<NewVersion> determineVersionToOffer(Version currentVersion) {
final newVersions = <NewVersion>[];
if (!currentVersion.isPreRelease) {
return defaultVersionToOffer(currentVersion, includePre: true);
} else {
final pre = currentVersion.preRelease;
/// we only know how to handle pre of the form 'beta.1'.
if (pre.length != 2 || pre[0] is! String || pre[1] is! int) {
/// don't know how to handle pre-release versions that don't
/// start with a string such as dev, alpha or beta
return defaultVersionToOffer(currentVersion, includePre: true);
}
final type = pre[0] as String;
final preVersion = pre[1] as int;
switch (type) {
case 'beta':
newVersions.addAll([
NewVersion('Small Patch'.padRight(25),
buildPre(currentVersion, 'beta', preVersion + 1))
]);
break;
case 'alpha':
newVersions.addAll([
NewVersion('Alpha'.padRight(25),
buildPre(currentVersion, 'alpha', preVersion + 1)),
NewVersion('Beta'.padRight(25), buildPre(currentVersion, 'beta', 1))
]);
break;
default:
newVersions.addAll([
NewVersion('Small Patch'.padRight(25),
buildPre(currentVersion, 'dev', preVersion + 1)),
NewVersion(
'Alpha'.padRight(25), buildPre(currentVersion, 'alpha', 1)),
NewVersion('Beta'.padRight(25), buildPre(currentVersion, 'beta', 1))
]);
/// if we don't know the type we treat it as dev.
break;
}
newVersions.addAll(defaultVersionToOffer(currentVersion));
}
return newVersions;
}