singletonAsync<T extends Object> method
a conditional wrapper method for getIt.registerSingletonAsync
it only registers if _canRegister
returns true
Implementation
Future<void> singletonAsync<T extends Object>(
FactoryFuncAsync<T> factoryFunc, {
String? instanceName,
bool? signalsReady,
bool preResolve = false,
Iterable<Type>? dependsOn,
Set<String>? registerFor,
DisposingFunc<T>? dispose,
}) {
if (_canRegister(registerFor)) {
if (preResolve) {
return factoryFunc().then(
(instance) => getIt.registerSingleton<T>(
instance,
instanceName: instanceName,
signalsReady: signalsReady,
),
);
} else {
getIt.registerSingletonAsync<T>(
factoryFunc,
instanceName: instanceName,
dependsOn: dependsOn,
signalsReady: signalsReady,
dispose: dispose,
);
}
}
return Future.value(null);
}