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}) {
  allRepositories ??= <Type, EntityRepository>{};
  traversedProviders ??= <EntityRepositoryProvider>{};

  if (traversedProviders.contains(this)) {
    return allRepositories;
  }

  traversedProviders.add(this);

  for (var e in _entityRepositories.entries) {
    allRepositories.putIfAbsent(e.key, () => e.value);
  }

  for (var e in _knownEntityRepositoryProviders) {
    e.allRepositories(allRepositories: allRepositories);
  }

  return allRepositories;
}