unregisterK method
Resolvable<Option<Object> >
unregisterK(
- Entity typeEntity, {
- Entity groupEntity = const DefaultEntity(),
- bool traverse = true,
- bool removeAll = true,
- bool triggerOnUnregisterCallbacks = true,
inherited
Unregisters a dependency.
Implementation
Resolvable<Option> unregisterK(
Entity typeEntity, {
Entity groupEntity = const DefaultEntity(),
bool traverse = true,
bool removeAll = true,
bool triggerOnUnregisterCallbacks = true,
}) {
final g = groupEntity.preferOverDefault(focusGroup);
for (final di in [this as DI, ...parents]) {
final dependencyOption = di.removeDependencyK(typeEntity, groupEntity: g);
if (dependencyOption.isNone()) {
continue;
}
UNSAFE:
if (triggerOnUnregisterCallbacks) {
final dependency = dependencyOption.unwrap();
final metadataOption = dependency.metadata;
if (metadataOption.isSome()) {
final metadata = metadataOption.unwrap();
final onUnregisterOption = metadata.onUnregister;
if (onUnregisterOption.isSome()) {
final onUnregister = onUnregisterOption.unwrap();
return dependency.value.map((e) {
return Resolvable(() {
return consec(
onUnregister(Ok(e)),
(_) => Some(e).transf().unwrap(),
);
});
}).flatten();
}
}
}
if (!removeAll) {
break;
}
}
return syncNone();
}