Skip to content

dvonlehman/node-yexec

Repository files navigation

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

About

Yet another process execution wrapper that does what I need it to

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published