28 lines
722 B
Dart
28 lines
722 B
Dart
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 store = _store;
|
|
if (store != null) {
|
|
unawaited(store.remove(key));
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|