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 );