deleteExpiredEntries method

  1. @override
Future<void> deleteExpiredEntries()
override

Removes all expired entries from the cache.

Implementation

@override
Future<void> deleteExpiredEntries() async {
  final dir = Directory(_cacheDir);
  if (!dir.existsSync()) return;

  final now = _clock();
  final expiryFiles = dir
      .listSync()
      .whereType<File>()
      .where((f) => f.path.endsWith('.expiry'))
      .toList();

  for (final expiryFile in expiryFiles) {
    final expiryStr = await expiryFile.readAsString();
    final expiry = DateTime.tryParse(expiryStr.trim());
    if (expiry == null || now.isAfter(expiry)) {
      final base = expiryFile.path.replaceFirst('.expiry', '');
      final jsonFile = File('$base.json');
      await _deleteEntry(jsonFile, expiryFile);
    }
  }
}