QueryCache constructor
QueryCache({
- required Duration cacheDuration,
Implementation
QueryCache({
required this.cacheDuration,
}) : _queries = Set<Query>(),
_infiniteQueries = Set<InfiniteQuery>(),
_mutations = Set<Mutation>(),
_eventController = StreamController<QueryCacheEvent>.broadcast() {
// Invalidate inactive queries and mutations every [cacheDuration]
Timer.periodic(cacheDuration, (timer) {
_queries.removeWhere((query) {
if (query.isInactive) {
_eventController.add(
QueryCacheEvent(QueryCacheEventType.removeQuery, query),
);
}
return query.isInactive;
});
_infiniteQueries.removeWhere((query) {
if (query.isInactive) {
_eventController.add(
QueryCacheEvent(QueryCacheEventType.removeInfiniteQuery, query),
);
}
return query.isInactive;
});
_mutations.removeWhere((mutation) {
if (mutation.isInactive) {
_eventController.add(
QueryCacheEvent(QueryCacheEventType.removeMutation, mutation),
);
}
return mutation.isInactive;
});
});
}