JSPM

read-input

0.3.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 50144
  • Score
    100M100P100Q140054F
  • License MIT

Easily read from stdin or files.

Package Exports

  • read-input

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (read-input) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

read-input

Write CLI utilities that take a stream of data either stdin from one of more files. To be able to handle this:

$ yourutil file.txt
$ yourutil file1.txt file2.txt
$ yourutil < file.txt
$ cat file.txt | yourutil

Just do this:

#!/usr/bin/env node
var read = require('read-input');
var fnames = process.argv.slice(2);

read(fnames, function (err, res) {
  // `err` will be given if at least one of the files fail.
  if (err) {
    console.error(err.message);
    process.exit(8);
  }

  res.data /* => "..." */
});

read()

read(files, function(err, res) { ... })

Reads from files. If no files are given, read from stdin. The result res is a result object. If any of the files can't be read, err will be an error object.

var read = require('read-input');
var fnames = process.argv.slice(2); //=> ['readme.txt']

read(fnames).then(function (res) {
  res.data       // '...'
  res.error      // undefined or Error()
  res.stdin      // true or false
  res.files      // [...]
  res.successes  // [...]
  res.failures   // [...]
}).catch(function (err) {
  // stdin error
});

To support older versions of Node.js without Promises, you can use callbacks:

read(fname, function (err, res) {
});

You can also iterate through res.files.

read(fnames).then(function(res) {
  res.files.forEach(function (f) {
    f.data    // ...
    f.error   // undefined or Error(...)
    f.stdin   // true or false
    f.name    // 'readme.txt'
  }
});

If files is a blank array (or null), data will be read from stdin. The resulting data will have a similar schema.

read([]).then(fucntion (res) {
  ...
});

read.stdin()

read.stdin(fn)

Read data from standard input. This will not throw errors.

read.stdin().then(function (data) {
  console.log(data); // string
});

read.stdin(function (err, data) {
  ...
});

res

The results value is an object passed to the callback of read().

  • data (String) a concatenation of all data in all the files.
  • error (Error) The first error in all files. undefined if successful.
  • stdin (Boolean) is true if the file is read from stdin
  • files (Array) A list of files.
  • failures (Array) A list of files that failed.
  • successes (Array) A list of files that succeeded.

The files, failures and successes are lists of files. Each of the items in these lists has a similar list of values:

  • data (String) File data
  • error (Error) the first error encountered, if applicable
  • stdin (Boolean) is true if the file is read from stdin
  • name (String) File name

There's also error.result which refers to the result object.

See read() for an example.

Thanks

read-input © 2014+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors.

ricostacruz.com  ·  GitHub @rstacruz  ·  Twitter @rstacruz