loadIfAny_<T extends Entity> function

Future<T?> loadIfAny_<T extends Entity>(
  1. Access access,
  2. String? oid,
  3. T newInstance(
    1. String oid
    ),
  4. FutureOr<Map?> loader(
    1. T entity,
    2. Iterable<String>? fields,
    3. AccessOption? option
    ),
  5. Iterable<String>? fields, [
  6. AccessOption? option,
])

A utility to implement loadIfAny and custom load functions.

  • loader - a function to load the data back. It must return Future<Map<String, dynamic>> or Map<String, dynamic>

Implementation

Future<T?> loadIfAny_<T extends Entity>(Access access, String? oid,
    T newInstance(String oid),
    FutureOr<Map?> loader(T entity, Iterable<String>? fields, AccessOption? option),
    Iterable<String>? fields, [AccessOption? option]) async {
  if (oid == null) return null;

  final (entity, done, fds)
      = _fetch<T>(access, newInstance(oid), fields, option);
  if (done) return entity;

  final data = await loader(entity, fds, option);
  return data == null ? null: read_(access, entity, data, fds);
}