|  | ||
|---|---|---|
| .. | ||
| docs/types | ||
| lib | ||
| package.json | ||
| README.md | ||
stdin
Read data from
stdin.
Usage
var stdin = require( '@stdlib/process/read-stdin' );
stdin( [encoding,] clbk )
Reads data from stdin.
function onRead( error, data ) {
    if ( error ) {
        return console.error( 'Error: %s', error.message );
    }
    console.log( data.toString() );
    // => '...'
}
stdin( onRead );
By default, returned data is a Buffer. To return a string of a specified encoding, provide an encoding parameter.
function onRead( error, data ) {
    if ( error ) {
        return console.error( 'Error: %s', error.message );
    }
    console.log( data );
    // => '...'
}
stdin( 'utf8', onRead );
When a file's calling Node.js process is running in a TTY context (i.e., no stdin), data will either be an empty Buffer (no encoding provided) or an empty string (encoding provided).
var stream = require( '@stdlib/streams/node/stdin' );
function onRead( error, data ) {
    if ( error ) {
        return console.error( 'Error: %s', error.message );
    }
    console.log( data );
    // => ''
}
stream.isTTY = true;
stdin( 'utf8', onRead );
Examples
var string2buffer = require( '@stdlib/buffer/from-string' );
var stream = require( '@stdlib/streams/node/stdin' );
var stdin = require( '@stdlib/process/read-stdin' );
function onRead( error, data ) {
    if ( error ) {
        console.error( 'Error: %s', error.message );
    } else {
        console.log( data.toString() );
        // => 'beep boop'
    }
}
// Fake not being in a terminal context:
stream.isTTY = false;
// Provide a callback to consume all data from `stdin`:
stdin( onRead );
// Push some data to `stdin`:
stream.push( string2buffer( 'beep' ) );
stream.push( string2buffer( ' ' ) );
stream.push( string2buffer( 'boop' ) );
// End the stream:
stream.push( null );