dependencyDriftMessage function

String dependencyDriftMessage({
  1. required String package,
  2. required Set<String> actual,
  3. required Set<String> expected,
})

Explains how actual drifted from expected, one sorted line per re-added or removed dependency of package. Empty when they match.

Implementation

String dependencyDriftMessage({
  required String package,
  required Set<String> actual,
  required Set<String> expected,
}) {
  final List<String> additions = actual.difference(expected).toList()..sort();
  final List<String> removals = expected.difference(actual).toList()..sort();
  return <String>[
    for (final String dependency in additions)
      '$dependency was re-added to $package runtime dependencies.',
    for (final String dependency in removals)
      '$dependency was removed from $package runtime dependencies.',
  ].join('\n');
}