cleanProject method
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,
);
}