table static method
Log a table (list of maps)
Implementation
static void table(
List<Map<String, dynamic>> data, {
String tag = 'Reactiv',
}) {
if (!config.enabled || data.isEmpty) return;
final keys = data.first.keys.toList();
final columnWidths = <String, int>{};
// Calculate column widths
for (final key in keys) {
columnWidths[key] = key.length;
for (final row in data) {
final value = row[key]?.toString() ?? '';
if (value.length > columnWidths[key]!) {
columnWidths[key] = value.length;
}
}
}
// Print header
final header = keys.map((k) => k.padRight(columnWidths[k]!)).join(' │ ');
final separator = columnWidths.values.map((w) => '─' * w).join('─┼─');
_log(LogLevel.info, '┌─$separator─┐', tag: tag);
_log(LogLevel.info, '│ $header │', tag: tag);
_log(LogLevel.info, '├─$separator─┤', tag: tag);
// Print rows
for (final row in data) {
final rowStr = keys.map((k) {
final value = row[k]?.toString() ?? '';
return value.padRight(columnWidths[k]!);
}).join(' │ ');
_log(LogLevel.info, '│ $rowStr │', tag: tag);
}
_log(LogLevel.info, '└─$separator─┘', tag: tag);
}