selectRelationships<E> method

  1. @override
FutureOr<Map<dynamic, Iterable>> selectRelationships<E>(
  1. List<O>? os,
  2. String field, {
  3. List? oIds,
  4. TypeInfo? fieldType,
  5. Transaction? transaction,
})
override

Implementation

@override
FutureOr<Map<dynamic, Iterable<dynamic>>> selectRelationships<E>(
    List<O>? os, String field,
    {List<dynamic>? oIds, TypeInfo? fieldType, Transaction? transaction}) {
  oIds ??= os!
      .map((o) => getID(o, entityHandler: entityHandler)! as Object)
      .toList();

  if (oIds.isEmpty) {
    return <dynamic, Iterable<dynamic>>{};
  }

  var entries = oIds.map((oId) {
    var objs = selectRelationship(null, field,
        oId: oId, fieldType: fieldType, transaction: transaction);
    return MapEntry(oId, objs);
  }).toList();

  var results =
      Map<dynamic, FutureOr<Iterable<dynamic>>>.fromEntries(entries);
  return results.resolveAllValues();
}