yexec
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

yexec

Build Status Coverage Status

Yet another process execution wrapper. Uses child_process.spawn to execute an external process and capture stdout and stderr.

  • Logs stdout and stderr to a logger implementation of your choice as long as it supports the standard level functions like info, warn, and error.
  • Supports optional log filter
  • Protects against double callbacks from error and exit events.
  • Throws an Error if process exits with non-zero code
  • Specify an optional timeout. If the process has not exited within the interval the process is force killed and a TIMEOUT error is thrown.

Usage

npm install yexec
var yexec = require('yexec');
var winston = require('winston');
 
var params = {
  executable: 'git',
  args: ['clone', 'https://github.com/nodejs/node.git'],
  logger: winston,
  timeout: 5000, // 5 seconds
  logFilter: function(level, msg) {
    return level !== 'info';
  }
};
 
try {
  await yexec(params);
} catch (err) {
  // If timeout occurred, err.code will be 'TIMEOUT'
  winston.error('Oops, git failed with code %s', err.code);
}

Readme

Keywords

none

Package Sidebar

Install

npm i yexec

Weekly Downloads

0

Version

2.0.2

License

ISC

Unpacked Size

7.11 kB

Total Files

7

Last publish

Collaborators

  • dvonlehman