clean method

  1. @override
Future<void> clean({
  1. CachePriority priorityOrBelow = CachePriority.high,
  2. bool staleOnly = false,
})
override

Removes all keys from store. priorityOrBelow flag will remove keys only for the priority or below. staleOnly flag will remove keys only if expired (from maxStale).

By default, all keys will be removed.

Implementation

@override
Future<void> clean({
  CachePriority priorityOrBelow = CachePriority.high,
  bool staleOnly = false,
}) {
  final keys = <String>[];

  _cache.entries.forEach((key, resp) {
    var shouldRemove = resp.value.priority.index <= priorityOrBelow.index;
    shouldRemove &= (staleOnly && resp.value.isStaled()) || !staleOnly;

    if (shouldRemove) {
      keys.add(key);
    }
  });

  for (var key in keys) {
    _cache.remove(key);
  }

  return Future.value();
}