Skip to content

bendrucker/spawn-error-forwarder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spawn-error-forwarder Build Status Greenkeeper badge

Emit errors on stdout stream for a spawned child process. Useful for capturing errors from a spawned process when you want the output from stdout.

Setup

$ npm install spawn-error-forwarder

API

fwd(child [, errFactory] -> child

Buffers child.stderr output. If the spawned process exits with a code > 0, the buffered output of child.stderr is used to generate an error which is emitted on child.stdout. By default, the error message is the output of child.stderr. If you provide an errFactory function, it will be called with code, stderr where code is the child's exit code and stderr is a string that contains the output of child.stderr. errFactory should return an Error to be emitted on child.stdout.

Example

var fwd   = require('spawn-error-forwarder');
var spawn = require('child_process').spawn;
var child = spawn('git', ['log', 'non-existent-path']);

fwd(child, function (code, stderr) {
  return new Error('git log exited with ' + code + ':\n\n' + stderr);
});

child.stdout
  .on('error', console.error.bind(console))
  .pipe(process.stdout);

We want to pipe the output of git log to process.stdout but since we're providing a path that doesn't exist git will exit with a non-zero code and we'll log its output with console.error.

About

Emit errors on stdout stream for a spawned child process

Resources

License

Stars

Watchers

Forks

Packages

No packages published