node package manager

spawn-please

spawn-please

npm version

Promisified child_process.spawn. *Supports stdin* *Rejects on stderr*

Install

$ npm install --save spawn-please

Usage

promise = spawn(command, [arguments], [stdin], [options])

options are passed directly through to child_process.spawn.

const spawn = require('spawn-please')
 
spawn('printf', ['please?'])
  .then(output => {
    assert.equal(output, 'please?')
  })

How is this different than other child_process libraries?

  • Allows you to pass a string to stdin:
spawn('cat', [], 'test')
  .then(output => {
    assert.equal(output, 'test')
  })
 
  • Rejects on any stderr:
spawn('some-command-with-stderr')
  .catch(stderr => {
    // do something with stderr 
  })

Using your own Promise library

spawn-please uses the global Promise object by default. You may use your own Promise library by overriding the Promise property:

const spawn = require('spawn-please')
spawn.Promise = require('bluebird')

License

ISC © Raine Revere