registerDependency<T extends Object> method

Result<Dependency<T>> registerDependency<T extends Object>({
  1. required Dependency<T> dependency,
  2. bool checkExisting = false,
})
inherited

Registers a Dependency object directly into the registry.

Implementation

Result<Dependency<T>> registerDependency<T extends Object>({
  required Dependency<T> dependency,
  bool checkExisting = false,
}) {
  assert(T != Object, 'T must be specified and cannot be Object.');
  final g = switch (dependency.metadata) {
    Some(value: final m) => m.groupEntity,
    None() => focusGroup,
  };
  if (checkExisting) {
    switch (getDependency<T>(groupEntity: g, traverse: false)) {
      case Some():
        return Err('Dependency already registered.');
      case None():
        break;
    }
  }
  registry.setDependency(dependency);
  return Ok(dependency);
}