allRepositories method

Map<Type, EntityRepository<Object>> allRepositories({
  1. Map<Type, EntityRepository<Object>>? allRepositories,
  2. Set<EntityRepositoryProvider>? traversedProviders,
})

Implementation

Map<Type, EntityRepository> allRepositories(
    {Map<Type, EntityRepository>? allRepositories,
    Set<EntityRepositoryProvider>? traversedProviders}) {
  var self = this;
  if (self is! List<EntityRepositoryProvider> &&
      self is! Set<EntityRepositoryProvider>) {
    self = self.toList(growable: false);
  }

  var length = self.length;
  if (length == 0) {
    return <Type, EntityRepository>{};
  } else if (length == 1) {
    return self.first.allRepositories(
        allRepositories: allRepositories,
        traversedProviders: traversedProviders);
  }

  allRepositories ??= <Type, EntityRepository>{};
  traversedProviders ??= <EntityRepositoryProvider>{};

  for (var e in self) {
    e.allRepositories(
        allRepositories: allRepositories,
        traversedProviders: traversedProviders);
  }

  return allRepositories;
}