compareVersions function

int compareVersions(
  1. String a,
  2. String b
)

Compares two dotted versions, ignoring anything after a space or -. Negative when a is older.

Implementation

int compareVersions(String a, String b) {
  List<int> parts(String v) => v
      .split(RegExp(r'[\s-]'))
      .first
      .split('.')
      .map((String p) => int.tryParse(p) ?? 0)
      .toList();
  final x = parts(a), y = parts(b);
  for (var i = 0; i < 3; i++) {
    final d = (i < x.length ? x[i] : 0) - (i < y.length ? y[i] : 0);
    if (d != 0) return d;
  }
  return 0;
}