lazySingletonAsync<T extends Object> method

Future<void> lazySingletonAsync<T extends Object>(
  1. FactoryFuncAsync<T> factoryFunc, {
  2. String? instanceName,
  3. bool preResolve = false,
  4. Set<String>? registerFor,
  5. DisposingFunc<T>? dispose,
})

a conditional wrapper method for getIt.registerLazySingletonAsync it only registers if _canRegister returns true

Implementation

Future<void> lazySingletonAsync<T extends Object>(
  FactoryFuncAsync<T> factoryFunc, {
  String? instanceName,
  bool preResolve = false,
  Set<String>? registerFor,
  DisposingFunc<T>? dispose,
}) {
  if (_canRegister(registerFor)) {
    if (preResolve) {
      return factoryFunc().then(
        (instance) => lazySingleton(
          () => instance,
          instanceName: instanceName,
          registerFor: registerFor,
          dispose: dispose,
        ),
      );
    } else {
      getIt.registerLazySingletonAsync<T>(
        factoryFunc,
        instanceName: instanceName,
        dispose: dispose,
      );
    }
  }
  return Future.value(null);
}