refactor: wire unified cache and invalidator in di

This commit is contained in:
qzl
2026-03-20 15:25:33 +08:00
parent 632db2b68b
commit 1cea877bf1
3 changed files with 55 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import 'dart:async';
import 'hybrid_cache_store.dart';
class CacheInvalidator {
final HybridCacheStore? _store;
final Set<String> _invalidated = <String>{};
CacheInvalidator({HybridCacheStore? store}) : _store = store;
void invalidate(String key) {
_invalidated.add(key);
final removeFuture = _store?.remove(key);
if (removeFuture != null) {
unawaited(removeFuture);
}
}
void invalidateCalendarDay(DateTime date) {
final month = '${date.year}-${date.month.toString().padLeft(2, '0')}';
final day = '$month-${date.day.toString().padLeft(2, '0')}';
invalidate('calendar:day:$day');
invalidate('calendar:month:$month');
}
bool wasInvalidated(String key) => _invalidated.contains(key);
}