refresh method

Future<void> refresh()

Fetches the node list from the Hub, updating the cache on success and retaining prior data on failure.

Implementation

Future<void> refresh() async {
  final prev = state.value.data;
  state.value = AsyncState.loading(data: prev, stale: prev != null);
  try {
    final nodes = await _service.listNodes();
    _cache.write(nodes);
    state.value = AsyncState.ready(nodes);
  } on AppError catch (e) {
    state.value = AsyncState.error(e, data: prev);
  }
}