buildUpsertRows method

List<Map<String, dynamic>> buildUpsertRows(
  1. List<T> items
)

Build upsert rows with optional scope injection. Exposed for tests.

Implementation

List<Map<String, dynamic>> buildUpsertRows(List<T> items) {
  final rows = <Map<String, dynamic>>[];
  for (final item in items) {
    Map<String, dynamic> scopeCols = const {};
    if (config.injectScopeOnWrite) {
      final s = config.scopeForUpsert?.call(item) ?? config.defaultScope;
      if (s != null) scopeCols = _scopeColsFor(s);
    }
    rows.add({
      ...config.toJson(item),
      config.idColumn: config.idToString(config.idOf(item)),
      ...scopeCols,
    });
  }
  return rows;
}