compareVersions function
Implementation
int compareVersions(String v1, String v2) {
// Remove suffixes like -dev, -beta, -alpha, -rc, etc.
final String cleanV1 = _cleanVersionString(v1);
final String cleanV2 = _cleanVersionString(v2);
final List<int> v1Parts = cleanV1.split('.').map((e) => int.tryParse(e) ?? 0).toList();
final List<int> v2Parts = cleanV2.split('.').map((e) => int.tryParse(e) ?? 0).toList();
final int maxLength = v1Parts.length > v2Parts.length ? v1Parts.length : v2Parts.length;
for (int i = 0; i < maxLength; i++) {
final int v1Part = i < v1Parts.length ? v1Parts[i] : 0;
final int v2Part = i < v2Parts.length ? v2Parts[i] : 0;
// print('Comparing parts:');
// print(v1Part);
// print(v2Part);
if (v1Part > v2Part) {
// print('v1 is greater');
return 1; // v1 is greater
} else if (v1Part < v2Part) {
// print('v2 is greater');
return -1; // v1 is smaller
}
}
return 0; // versions are equal
}