taskStatus<T> method

LxStatus<T> taskStatus<T>(
  1. String id
)

Returns the latest status for id, or an idle status when absent.

Implementation

LxStatus<T> taskStatus<T>(String id) {
  final status = tasks[id]?.status;
  if (status == null) return LxIdle<T>();
  final lastValue = status.lastValue as T?;
  return switch (status) {
    LxIdle() => LxIdle<T>(lastValue),
    LxWaiting() => LxWaiting<T>(lastValue),
    LxSuccess(:final value) => LxSuccess<T>(value as T),
    LxError(:final error, :final stackTrace) =>
      LxError<T>(error, stackTrace, lastValue),
  };
}