cleanProject method

Future<CleanResult> cleanProject(
  1. ProjectInfo project
)

Cleans cache targets from a project. Returns a CleanResult with deleted paths and errors.

Implementation

Future<CleanResult> cleanProject(ProjectInfo project) async {
  final deletedPaths = <String>[];
  final failedPaths = <String, String>{};
  int reclaimedSize = 0;

  for (final target in project.targets) {
    // Validate deletion safety
    final validationError =
        SafetyUtils.validateDeletion(target, project.path);
    if (validationError != null) {
      failedPaths[target.path] = validationError;
      continue;
    }

    // Attempt deletion
    final success = await _deleteTarget(target);
    if (success) {
      deletedPaths.add(target.path);
      reclaimedSize += target.size;
    } else {
      failedPaths[target.path] = 'Failed to delete';
    }
  }

  return CleanResult(
    deletedPaths: deletedPaths,
    failedPaths: failedPaths,
    reclaimedSize: reclaimedSize,
  );
}