invalidateQueries method

void invalidateQueries(
  1. List keyPrefix
)

Invalidates all cached queries matching keyPrefix within this scope.

Implementation

void invalidateQueries(List<dynamic> keyPrefix) {
  _assertAlive();
  final prefixStr = BloomData.normalizeKey(keyPrefix);
  final matchingKeys = <String>{};
  for (final entry in _cache.values) {
    if (BloomData.matchesKey(entry.key, keyPrefix)) {
      entry.isStale = true;
      matchingKeys.add(BloomData.normalizeKey(entry.key));
    }
  }
  for (final keyStr in _invalidationControllers.keys) {
    if (prefixStr.isEmpty ||
        keyStr == prefixStr ||
        keyStr.startsWith('$prefixStr:')) {
      matchingKeys.add(keyStr);
    }
  }
  for (final keyStr in matchingKeys) {
    _invalidationControllers[keyStr]?.add(null);
  }
}