cacheFiles method
Implementation
Future<void> cacheFiles(List<CodeFile> files) async {
if (files.isEmpty) {
return Logger.header('No new files to cache');
}
Logger.header('Caching ${files.length} files');
final cacheEntry = <String, String>{};
for (final file in files) {
final generatedCodeFile = File(file.getGeneratedFilePath());
Logger.v('Caching: ${Utils.getFileName(generatedCodeFile.path)}');
final cachedFilePath = path.join(Utils.appCacheDirectory, file.digest);
if (generatedCodeFile.existsSync()) {
final _ = generatedCodeFile.copySync(cachedFilePath);
} else {
continue;
}
/// if file has been successfully copied, let's make an entry to the db
if (File(cachedFilePath).existsSync()) {
cacheEntry[file.digest] = cachedFilePath;
} else {
Logger.e(
'ERROR: _cacheGeneratedCodesFor: failed to copy generated file $file',
);
}
}
/// create a bulk entry
await _dbOperation((db) => db.createEntryForBulk(cacheEntry));
}