6.0.0 • Published 4 years ago

get-stdin-with-tty v6.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

get-stdin-with-tty

NPM version Build Status

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

      ```bash
      (win) c:\> node example.js
      foobar
      ^z
      # => foobar
      ```
      ```bash
      $ 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