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) => singleton(
instance,
instanceName: instanceName,
signalsReady: signalsReady,
dispose: dispose,
),
);
} else {
getIt.registerSingletonAsync<T>(
factoryfunc,
instanceName: instanceName,
dependsOn: dependsOn,
signalsReady: signalsReady,
dispose: dispose,
);
}
}
return Future.value(null);
}