mapFilesToCache method
Implementation
Future<CachedFilesResult> mapFilesToCache(List<CodeFile> files) async {
final goodFiles = <CodeFile>[];
final badFiles = <CodeFile>[];
final bulkMapping = await _dbOperation(
(db) async => await db.isMappingAvailableForBulk(
files.map((f) => f.digest),
),
);
/// segregate good and bad files
/// good files -> files for whom the generated codes are available
/// bad files -> files for whom no generated codes are available in the cache
for (final file in files) {
final isGeneratedCodeAvailable = bulkMapping[file.digest] ?? false;
/// mock generated files are always considered badFiles,
/// as they depends on various services, and to keep track of changes can become complicated
if (isGeneratedCodeAvailable) {
goodFiles.add(file);
} else {
badFiles.add(file);
}
}
return (good: goodFiles, bad: badFiles);
}