spawn-please

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

Usage no npm install needed!

<script type="module">
  import spawnPlease from 'https://cdn.skypack.dev/spawn-please';
</script>

README

spawn-please

npm version

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

Install

$ npm install --save spawn-please

Usage

await spawn(command, [arguments], [stdin], [options])

options are passed directly to child_process.spawn.

const spawn = require('spawn-please')

const output = await spawn('printf', ['please?'])
assert.equal(output, 'please?')

How is this different than other child_process libraries?

  • Allows you to pass a string to stdin:
const output = await spawn('cat', [], 'test')
assert.equal(output, 'test')

  • Rejects on any stderr:
try {
  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