invalidateQueries static method

void invalidateQueries(
  1. List keyPrefix
)

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);
  }
}