setQueryData<T> static method
Directly updates cached query data for key using a transformation updater callback.
Creates a new QueryCacheEntry or updates an existing one, marks it fresh (isStale = false),
and notifies invalidation listeners.
BloomData.setQueryData<List<Task>>(['tasks'], (oldTasks) => [...?oldTasks, newTask]);
Implementation
static void setQueryData<T>(List<dynamic> key, T Function(T? oldData) updater) {
final keyStr = normalizeKey(key);
final existing = _cache[keyStr] as QueryCacheEntry<T>?;
final newData = updater(existing?.data);
_cache[keyStr] = QueryCacheEntry<T>(
key: key,
data: newData,
updatedAt: DateTime.now(),
staleTime: existing?.staleTime ?? const Duration(minutes: 5),
cacheTime: existing?.cacheTime ?? const Duration(minutes: 30),
isStale: false,
);
_invalidationControllers[keyStr]?.add(null);
}