refetch method

Future<Object?> refetch(
  1. String key
)

Runs this query again whatever the cache holds. Fails when nothing tracks key, and while the cache is changing principal.

The value it completes with is the cache's own: live and unbounded, the same as the app's refetch. A caller that hands it to a panel passes it through bounded() first. A refetch started before a principal change can still complete, for the caller that started it, with the previous principal's value.

Implementation

Future<Object?> refetch(String key) async {
  _ready();

  final found = _find(key);

  if (found == null) throw StateError('[forge] nothing is tracking $key');

  _record(ActionKind.refetch, key);

  // The cache's own refetch: a REST response never writes an owned record,
  // so this cannot move a sync source's replica.
  return _cache.cache.refetch(found.meta, found.args);
}