invalidateQueries static method
Invalidates all cached queries matching keyPrefix.
All active listeners matching the prefix trigger background revalidation.
Example:
BloomData.invalidateQueries(['users']);
Implementation
static void invalidateQueries(List<dynamic> keyPrefix) {
final prefixStr = normalizeKey(keyPrefix);
logger.debug('BloomData: Invalidating queries matching [$prefixStr]');
final matchingKeys = <String>{};
for (final entry in _cache.values) {
if (matchesKey(entry.key, keyPrefix)) {
entry.isStale = true;
matchingKeys.add(normalizeKey(entry.key));
}
}
// Also reach queries that have never cached a successful result.
for (final keyStr in _invalidationControllers.keys) {
if (_matchesNormalizedPrefix(keyStr, keyPrefix)) matchingKeys.add(keyStr);
}
for (final keyStr in matchingKeys) {
_invalidationControllers[keyStr]?.add(null);
}
}