JsonTerminalBackend constructor

JsonTerminalBackend({
  1. required void sendMessage(
    1. String message
    ),
  2. required Stream<Object?> inboundMessages,
  3. Future<void> flushMessages()?,
  4. Future<void> closeTransport()?,
  5. TerminalDimensions initialSize = (width: 80, height: 24),
  6. bool supportsAnsi = true,
  7. bool isTerminal = true,
  8. ColorProfile colorProfile = ColorProfile.trueColor,
  9. ({bool useBackspace, bool useTabs}) movementCaps = (useTabs: false, useBackspace: true),
})

Creates a JSON protocol backend.

Implementation

JsonTerminalBackend({
  required void Function(String message) sendMessage,
  required Stream<Object?> inboundMessages,
  Future<void> Function()? flushMessages,
  Future<void> Function()? closeTransport,
  TerminalDimensions initialSize = const (width: 80, height: 24),
  this.supportsAnsi = true,
  this.isTerminal = true,
  this.colorProfile = ColorProfile.trueColor,
  this.movementCaps = const (useTabs: false, useBackspace: true),
}) : _flushMessages = flushMessages,
     _closeTransport = closeTransport,
     _delegate = EmbeddedTerminalBackend(
       output: (data) {
         _trySendBridgeMessage(
           sendMessage,
           TerminalBridgeMessage.output(data).encodeJson(),
         );
       },
       initialSize: initialSize,
       supportsAnsi: supportsAnsi,
       isTerminal: isTerminal,
       colorProfile: colorProfile,
       movementCaps: movementCaps,
     ) {
  _inboundSubscription = inboundMessages.listen(
    _handleInboundMessage,
    onError: _delegate.addInputError,
    onDone: _delegate.requestShutdown,
    cancelOnError: false,
  );
}