load method

  1. @override
FutureOr<SimpleInfo<T>>? load(
  1. Object? params
)
override

Implementation

@override
FutureOr<SimpleInfo<T>>? load(Object? params) {
  final loaders = $actions.whereType<SimpleLoader<T>>().toList();

  assert(
    loaders.isEmpty || loaders.length == 1,
    'You can not have more than 1 loaders',
  );

  if (loaders.isEmpty) {
    return null;
  }

  final loader = loaders.first;
  final loaded = loader.load(this);

  if (loaded case Future<T> future) {
    return future.then((state) {
      return SimpleInfo<T>(state);
    });
  }

  return SimpleInfo<T>(loaded);
}