DriverCapabilities.fromJson constructor
Implementation
factory DriverCapabilities.fromJson(Map<String, Object?> json) {
final driverName = json['driver_name'] as String? ?? 'Unknown';
final engineId = json['engine'] as String? ?? DatabaseEngineIds.unknown;
// Prefer canonical id from the native layer; fall back to
// driver-name heuristic when the field is missing/unknown.
final databaseType = engineId == DatabaseEngineIds.unknown
? DatabaseType.fromDriverName(driverName)
: DatabaseType.fromEngineId(engineId);
return DriverCapabilities(
supportsPreparedStatements:
json['supports_prepared_statements'] as bool? ?? true,
supportsBatchOperations:
json['supports_batch_operations'] as bool? ?? true,
supportsStreaming: json['supports_streaming'] as bool? ?? true,
maxRowArraySize: (json['max_row_array_size'] as num?)?.toInt() ?? 1000,
driverName: driverName,
driverVersion: json['driver_version'] as String? ?? 'Unknown',
databaseType: databaseType,
engineId: engineId,
);
}