autoDispose<D> method

D autoDispose<D>(
  1. D resource
)

Registers resource (RxInterface, ListNotifier, Computed, StreamSubscription, Timer, or Disposer callback) to be automatically closed/disposed when onClose runs.

Implementation

D autoDispose<D>(D resource) {
  if (resource is RxInterface) {
    _syncDisposers.add(resource.close);
  } else if (resource is ListNotifier) {
    _syncDisposers.add(resource.dispose);
  } else if (resource is StreamSubscription) {
    _workers.add(resource);
  } else if (resource is Timer) {
    _timers.add(resource);
  } else if (resource is Disposer) {
    _syncDisposers.add(resource);
  } else {
    throw ArgumentError.value(
      resource,
      'resource',
      'Expected RxInterface, ListNotifier, StreamSubscription, Timer, or Disposer.',
    );
  }
  return resource;
}