insertOrUpdateList method
Implementation
@override
Future<List<TModel>?> insertOrUpdateList(
Iterable<TModel> items, {
bool? useIsolate,
}) async {
final db = await dbContext.database;
List<TModel>? result;
final updatedItems = <TModel>[];
final spawnIsolate = useIsolate ?? useIsolateDefault;
final response = !spawnIsolate
? wInsertOrUpdateList(items)
: await compute(wInsertOrUpdateList, items);
await db.transaction((txn) async {
final batch = txn.batch();
for (final element in response) {
updatedItems.add(element.model as TModel);
batch.insert(
element.model.meta.tableName,
element.map,
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
result = await _finishBatch(batch, updatedItems);
});
return result;
}