node/doc/api/tty.markdown
Robert Jefe Lindstaedt e436272897 doc: fenced all code blocks, typo fixes
This changes the code blocks from 4-space indentation to ``` fences for
better syntax highlighting and future linting support. Minor On-the-fly
changes for typos and highlight breaking markdown have been made.

JSON-Style objects have been changed so their closing bracket is
on the same line as the opening one.

Known issues:
* Not every JSON / object notation has been improved. Should
  make another run for this.
* Some example functions break hightlighting due to various
  combinations of brackets. However changing them means leaving
  the code style.

Fixes: https://github.com/nodejs/node/issues/4726
PR-URL: https://github.com/nodejs/node/pull/4733
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-21 20:55:09 +01:00

73 lines
2.0 KiB
Markdown

# TTY
Stability: 2 - Stable
The `tty` module houses the `tty.ReadStream` and `tty.WriteStream` classes. In
most cases, you will not need to use this module directly.
When Node.js detects that it is being run inside a TTY context, then `process.stdin`
will be a `tty.ReadStream` instance and `process.stdout` will be
a `tty.WriteStream` instance. The preferred way to check if Node.js is being run
in a TTY context is to check `process.stdout.isTTY`:
```
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
```
## Class: ReadStream
A `net.Socket` subclass that represents the readable portion of a tty. In normal
circumstances, `process.stdin` will be the only `tty.ReadStream` instance in any
Node.js program (only when `isatty(0)` is true).
### rs.isRaw
A `Boolean` that is initialized to `false`. It represents the current "raw" state
of the `tty.ReadStream` instance.
### rs.setRawMode(mode)
`mode` should be `true` or `false`. This sets the properties of the
`tty.ReadStream` to act either as a raw device or default. `isRaw` will be set
to the resulting mode.
## Class: WriteStream
A `net.Socket` subclass that represents the writable portion of a tty. In normal
circumstances, `process.stdout` will be the only `tty.WriteStream` instance
ever created (and only when `isatty(1)` is true).
### Event: 'resize'
`function () {}`
Emitted by `refreshSize()` when either of the `columns` or `rows` properties
has changed.
```js
process.stdout.on('resize', () => {
console.log('screen size has changed!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
```
### ws.columns
A `Number` that gives the number of columns the TTY currently has. This property
gets updated on `'resize'` events.
### ws.rows
A `Number` that gives the number of rows the TTY currently has. This property
gets updated on `'resize'` events.
## tty.isatty(fd)
Returns `true` or `false` depending on if the `fd` is associated with a
terminal.
[tty.ReadStream#setRawMode]: #tty_rs_setrawmode_mode