validateDuplicateDependencies function

void validateDuplicateDependencies(
  1. List<DependencyConfig> deps
)

Implementation

void validateDuplicateDependencies(List<DependencyConfig> deps) {
  final validatedDeps = <DependencyConfig>[];
  for (var dep in deps) {
    var registered = validatedDeps.where(
      (elm) =>
          elm.type == dep.type &&
          elm.instanceName == dep.instanceName &&
          elm.scope == dep.scope,
    );

    if (registered.isEmpty) {
      validatedDeps.add(dep);
    } else {
      Set<String> registeredEnvironments = registered.fold(
        <String>{},
        (prev, elm) => prev..addAll(elm.environments),
      );

      if (registeredEnvironments.isEmpty ||
          dep.environments.any(
            (env) => registeredEnvironments.contains(env),
          )) {
        throwBoxed(
          '${dep.typeImpl} [${dep.type}] envs: ${dep.environments}  scope: ${dep.scope} \nis registered more than once under the same environment or in the same scope',
        );
      }
    }
  }
}