TerminalBridgeMessage.fromJson constructor

TerminalBridgeMessage.fromJson(
  1. Map<String, dynamic> json
)

Decodes a bridge message from JSON.

Implementation

factory TerminalBridgeMessage.fromJson(Map<String, dynamic> json) {
  final rawType = (json['type'] as String? ?? '').trim();
  final type = switch (rawType) {
    'output' => TerminalBridgeMessageType.output,
    'input.text' => TerminalBridgeMessageType.inputText,
    'input.bytes' => TerminalBridgeMessageType.inputBytes,
    'resize' => TerminalBridgeMessageType.resize,
    'shutdown' => TerminalBridgeMessageType.shutdown,
    _ => throw FormatException(
      'Unknown terminal bridge message type: $rawType',
    ),
  };

  return TerminalBridgeMessage._(
    type: type,
    data: json['data'] as String?,
    bytesBase64: json['bytesBase64'] as String?,
    width: json['width'] as int?,
    height: json['height'] as int?,
  );
}