DriverCapabilities.fromJson constructor

DriverCapabilities.fromJson(
  1. Map<String, Object?> json
)

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,
  );
}