getAllReleaseNotes method

List<(String, List<String>)> getAllReleaseNotes({
  1. String? changelogContent,
})

Gets all release notes as a list of (version, notes) pairs. Versions are sorted with oldest first.

Implementation

List<(String, List<String>)> getAllReleaseNotes({String? changelogContent}) {
  try {
    final content = changelogContent ?? getStoredChangelogFromMemory();
    final releaseNotes = parseChangelog(content);

    final sortedVersions = releaseNotes.keys.toList()
      ..sort((a, b) => semverGt(a, b) ? 1 : -1);

    return sortedVersions
        .map((version) {
          final notes = releaseNotes[version];
          if (notes == null || notes.isEmpty) return null;
          final filtered = notes.where((n) => n.isNotEmpty).toList();
          if (filtered.isEmpty) return null;
          return (version, filtered);
        })
        .whereType<(String, List<String>)>()
        .toList();
  } catch (_) {
    return [];
  }
}