removeDependency<T extends Object> method
Option<Dependency<T> >
removeDependency<T extends Object>({
- Entity groupEntity = const DefaultEntity(),
Removes the dependency keyed under exact type T in groupEntity, using
the same key construction as setDependency (Sync<T> / Async<T>).
If the group becomes empty after removal, the group itself is removed.
This is strict by design: a Lazy<T> registration is keyed under
Sync<Lazy<T>> and is NOT matched here — callers wanting to remove a
lazy must call removeDependency<Lazy<T>>() (or unregisterLazy<T>()
at the DIBase layer). Keeping the key space identical on insert and
remove avoids the silent "register-a-lazy-and-fail-to-find-it" trap.
Implementation
@pragma('vm:prefer-inline')
Option<Dependency<T>> removeDependency<T extends Object>({
Entity groupEntity = const DefaultEntity(),
}) {
return removeDependencyK(
TypeEntity(T),
groupEntity: groupEntity,
).map((e) => e.transf<T>());
}