collectImplicitManyToManyStorages function
List<ImplicitManyToManyStorageDefinition>
collectImplicitManyToManyStorages(
- SchemaDocument schema
Collects all implicit many-to-many storages declared by schema.
Implementation
List<ImplicitManyToManyStorageDefinition> collectImplicitManyToManyStorages(
SchemaDocument schema,
) {
final storages = <ImplicitManyToManyStorageDefinition>[];
final seenTableNames = <String>{};
for (final model in schema.models) {
for (final field in model.fields) {
final storage = resolveImplicitManyToManyStorage(
schema: schema,
sourceModelName: model.name,
relationFieldName: field.name,
);
if (storage == null || !seenTableNames.add(storage.tableName)) {
continue;
}
storages.add(storage);
}
}
storages.sort((left, right) => left.tableName.compareTo(right.tableName));
return List<ImplicitManyToManyStorageDefinition>.unmodifiable(storages);
}