getSyncOrNoneK<T extends Object> method

Option<T> getSyncOrNoneK<T extends Object>(
  1. Entity typeEntity, {
  2. Entity groupEntity = const DefaultEntity(),
  3. bool traverse = true,
})
inherited

Retrieves the synchronous dependency or None if not found or async.

Implementation

Option<T> getSyncOrNoneK<T extends Object>(
  Entity typeEntity, {
  Entity groupEntity = const DefaultEntity(),
  bool traverse = true,
}) {
  final option = getK<T>(
    typeEntity,
    groupEntity: groupEntity,
    traverse: traverse,
  );
  if (option.isNone()) {
    return const None();
  }
  UNSAFE:
  {
    final resolvable = option.unwrap();
    if (resolvable.isAsync()) {
      return const None();
    }
    final result = resolvable.sync().unwrap().value;
    if (result.isErr()) {
      return const None();
    }
    final value = result.transf<T>().unwrap();
    return Some(value);
  }
}