fixAndPrune method

Future<FixResult> fixAndPrune(
  1. ComparisonResult comparison,
  2. ExtractionResult extracted, {
  3. bool fix = true,
  4. bool prune = true,
})

Fix and prune in a single operation.

Implementation

Future<FixResult> fixAndPrune(
  ComparisonResult comparison,
  ExtractionResult extracted, {
  bool fix = true,
  bool prune = true,
}) async {
  final filesModified = <String>{};
  final warnings = <String>[];
  var keysAdded = 0;
  var keysRemoved = 0;

  if (fix) {
    final fixResult = await this.fix(comparison, extracted);
    filesModified.addAll(fixResult.filesModified);
    keysAdded = fixResult.keysAdded;
    warnings.addAll(fixResult.warnings);
  }

  if (prune) {
    final pruneResult = await this.prune(comparison);
    filesModified.addAll(pruneResult.filesModified);
    keysRemoved = pruneResult.keysRemoved;
    warnings.addAll(pruneResult.warnings);
  }

  return FixResult(
    filesModified: filesModified.toList(),
    keysAdded: keysAdded,
    keysRemoved: keysRemoved,
    warnings: warnings,
    isDryRun: dryRun,
  );
}