getIfUnique method

Future<ObjectHolder<T>?> getIfUnique([
  1. Supplier<ObjectHolder<T>>? supplier
])

Retrieves the object only if exactly one instance exists, or returns null.

Implementation

Future<ObjectHolder<T>?> getIfUnique([Supplier<ObjectHolder<T>>? supplier]) async {
  ObjectHolder<T>? result;

  try {
    result = await get();
  } on NoUniquePodDefinitionException catch(_) {
    rethrow;
  } on NoSuchPodDefinitionException catch(_) {
    result = null;
  }

  return result ?? supplier?.call();
}