Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    spawn-to-readstreampublic

    spawn-to-readstream

    Description

    Make child process spawn behave like a read stream (buffer the error, don't emit end if error emitted).

    Installation

    npm install spawn-to-readstream

    Examples

    var toReadStream = require('spawn-to-readstream'),
        spawn        = require('child_process').spawn;
     
    toReadStream(spawn('ls', ['-lah'])).on('error', function(err) {
      throw err;
    }).on('end', function() {
      console.log('~~~ DONE ~~~');
    }).on('data', function(data) {
      console.log('ls data :::', data.toString());
    });

    Limiting the output of the steam

    var toReadStream = require('../index'),
        spawn        = require('child_process').spawn,
        limit, buf;
     
    buf   = 0;
    limit = 100 * 1024; // 100 Kb 
     
    // Note that it's a 'soft' limit, meaning the data you 
    // receive might be > 100 Kb, because the child process 
    // was stopped after receiving more than <LIMIT> bytes 
    toReadStream(spawn('cat', ['/dev/urandom']), limit)
      .on('error', function(err) {
        throw err;
      }).on('end', function(isLimited) {
        console.log('done, ' + buf + ' bytes received');
        if (isLimited) {
          console.log('child process was cut');
        }
      }).on('data', function(data) {
        buf += data.length;
      });

    Tests

    npm test

    License

    MIT

    install

    npm i spawn-to-readstream

    Downloadslast 7 days

    1,997

    version

    0.1.3

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar