extractLatestVersions function

Map<String, LatestVersionInfo> extractLatestVersions(
  1. Map<String, dynamic> definitions
)

Implementation

Map<String, LatestVersionInfo> extractLatestVersions(
  Map<String, dynamic> definitions,
) {
  final latest = <String, LatestVersionInfo>{};
  final re = RegExp(r'^(v\d+)([A-Z][A-Za-z0-9]*?)(V\d+)?$');
  for (final k in definitions.keys) {
    final m = re.firstMatch(k);
    if (m == null) continue;
    final full = m.group(0)!;
    final base = m.group(2)!;
    final suf = m.group(3);
    final formatted = '${base[0].toLowerCase()}${base.substring(1)}${suf ?? ''}';

    final prev = latest[base];
    if (prev == null || (suf ?? '').compareTo(prev.versionSuffix ?? '') > 0) {
      latest[base] = LatestVersionInfo(full, formatted, suf);
    }
  }
  return latest;
}