setQueryData<T> static method

void setQueryData<T>(
  1. List key,
  2. T? updater(
    1. T? oldData
    )
)

Sets cache data directly for a given key using an updater transformation function.

Example:

BloomData.setQueryData<User>(['user', 1], (old) => old?.copyWith(name: 'Bob'));

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