get-stdin-with-tty
Get stdin as a string or buffer
Install
$ npm install get-stdin-with-tty
Usage
// example.js
const getStdin = require('get-stdin-with-tty');
(async () => {
console.log(await getStdin());
})();
$ echo unicorns | node example.js
unicorns
API
Both methods returns a promise that is resolved when the end
event fires on the stdin
stream, indicating that there is no more data to be read.
getStdin(options) ← Promise<String>
Get stdin
as a string
.
In a TTY context, a promise that resolves to an empty string is returned, unless options.tty
or getStdin.tty
is true.
getStdin.buffer() ← Promise<Buffer>
Get stdin
as a Buffer
.
In a TTY context, a promise that resolves to an empty Buffer
is returned.
Options / Settings
-
tty
| getStdin.tty
(Boolean) -
Set global TTY handling. When true, accepts input from TTY until a new line beginning with Ctrl-d or Ctrl-z is entered. Double Ctrl-d anywhere in the line also ends the stream. (Default = true
)
When enabled for the example above:
$ node example.js
foobar
barfoo
^d
// =>
foobar
barfoo
-
EOF
| getStdin.EOF
(String) - The end-of-file (aka EOT) character to use to signal end of stream. Defaults to Ctrl-d on *nix and cygwin, and Ctrl-z on Windows. Acceptable values:
getStdin.CTRL_D
- Ctrl-d (ASCII 04)
getStdin.CTRL_Z
- Ctrl-z (ASCII 26)
'*'
- Use both Ctrl-d and Ctrl-z
(win) c:\> node example.js
foobar
^z
# => foobar
$ node example.js
foobar^d^d
# => foobar
Moos Fork
The moos fork includes support for reading stdin from TTY by default.
Related
Change log
- 6.0.0 -
tty
option is now defaulted to true
. Double Ctrl-d in middle of line also ends stream.
- 5.0.2 - Initial fork.
License
MIT © Sindre Sorhus
© Moos