registerLazy<T extends Object> method
Registers a lazy dependency that will be instantiated when first requested.
Implementation
void registerLazy<T extends Object>(final T Function() callback, {final String? name}) {
final dependencyKey = DependencyKey(type: T, name: name);
log('Registering object with $dependencyKey');
if (isRegistered<T>() && !allowReassignment) {
throw WeaverException(
'Cannot register object of $dependencyKey because there is an instance already registered',
);
}
if (_dependencyMap.containsKey(dependencyKey)) {
final dependency = (_dependencyMap.find(dependencyKey)! as Dependency<T>);
dependency.value = null;
dependency.lazyInstantiateCallback = callback;
} else {
_dependencyMap.set(dependencyKey, Dependency<T>.lazy(callback));
}
notifyObservers();
}