upsertEntities method

void upsertEntities(
  1. String type,
  2. List<({Map<String, Object?> data, String id})> entries
)

Batch upsert — single notification pass.

Implementation

void upsertEntities(
  String type,
  List<({String id, Map<String, Object?> data})> entries,
) {
  _write(() {
    _entities.putIfAbsent(type, () => {});
    for (final e in entries) {
      final prev = _entities[type]![e.id] ?? {};
      _entities[type]![e.id] = {...prev, ...e.data};
      _syncMetadata.putIfAbsent(
        _ek(type, e.id),
        () => const EntitySyncMetadata(),
      );
    }
    for (final e in entries) {
      _notifyEntity(type, e.id);
    }
  });
}