findUsedAssetPaths method
Finds all asset paths referenced in Dart code.
Implementation
Future<Set<String>> findUsedAssetPaths(String projectRoot) async {
final usedPaths = <String>{};
final dartFiles = await _findDartFiles(projectRoot);
for (var i = 0; i < dartFiles.length; i += _concurrencyLimit) {
final batch = dartFiles.skip(i).take(_concurrencyLimit).toList();
final batchResults = await Future.wait(
batch.map((file) async {
try {
final content = await file.readAsString();
return _extractAssetPaths(content);
} catch (_) {
return <String>{};
}
}),
);
for (final paths in batchResults) {
usedPaths.addAll(paths);
}
}
return usedPaths;
}