Terminal constructor

Terminal({
  1. Stream<List<int>>? input,
  2. IOSink? output,
  3. List<String>? env,
})

Implementation

Terminal({Stream<List<int>>? input, IOSink? output, List<String>? env})
  : _input = input ?? stdin,
    _output = output ?? stdout,
    _env =
        env ??
        Platform.environment.entries
            .map((e) => '${e.key}=${e.value}')
            .toList(),
    _buf = Buffer.create(0, 0),
    capabilities = TerminalCapabilities(
      env:
          env ??
          Platform.environment.entries
              .map((e) => '${e.key}=${e.value}')
              .toList(),
    ) {
  final isTty = _output is Stdout && (_output).hasTerminal;
  _renderer = UvTerminalRenderer(_output, env: _env, isTty: isTty);
  _reader = TerminalReader(
    CancelReader(_input),
    term: Environ(_env).getenv('TERM'),
  );
  _winch = SizeNotifier();
}