Package Exports
- async-exec-cmd
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (async-exec-cmd) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
async-exec-cmd

Simple, fast, flexible and cross-platform async executing commands (with node-cross-spawn).
Install
npm i async-exec-cmd --save
npm testAPI
For more use-cases see the tests
asyncExecCmd
Async execute command via spawn. All arguments are rebuilt, merged, structured, normalized and after all passed to cross-spawn, which actually is Node's
spawn.
<cmd>{String} Command/program to execute. You can pass subcommands, flags and arguments separated with space[args]{Array} arguments that will be arr-union with the given incmd. You can giveoptsobject here instead ofargs[opts]{Object} pass options to spawn and github-short-url-regex. You can givecbfunction here instead ofopts<cb>{Function} node-style callback function that will handleerr{Error} error if exists (instanceof Error), ornull. It have some extra props:command{String} thecmdplusargswhich was tried to executemessage{String} some useful messagebuffer{Buffer} representation of the errorstatus{Number|String}stackusual ... stack trace
res{String} representation of response for the executed command/program- notice when
opts.stdio: 'inherit', res is empty string'' - notice when
err, it isundefined
- notice when
code{Number|String} e.g.0,1,-2,128,'ENOENT', etc.. Process exit status code of the executionbuffer{Buffer} buffer equivalent of response, e.g.<Buffer 74 75 6e 6e...>- notice when
err, it isundefined - but notice you can find it again in
err.buffer
- notice when
returns{Stream} child_process.spawn
Example:
var asyncExecCmd = require('async-exec-cmd')
var child = asyncExecCmd('npm install', [
'--save-dev', 'bluebird'
], function __cb (err, res, code, buffer) {
if (err) {
console.error(err, code)
return
}
console.log(res, code, buffer)
})Possible signatures (will work)
these examples should work without problems
var cmd = require('async-exec-cmd')
function __cb (err, res, code, buffer) {
if (err) {
console.error(err, code)
return
}
console.log(res, code, buffer)
}
/**
* Try all these commands separatly or run the tests
* they cover all situations
*/
cmd('npm', __cb)
//=> res and buffer are undefined
cmd('npm', {stdio: [null, null, null]}, __cb)
//=> err Error object, res and buffer are undefined,
cmd('npm', ['install', '--save', 'bluebird'], __cb)
//=> err undefined, code 0, res === 'unbuild bluebird@2.9.3'
cmd('npm', ['uninstall', '--save', 'bluebird'], {stdio: [null, null, null]}, __cb)
//=> err undefined, code 0, res === 'unbuild bluebird@2.9.3'
cmd('npm -v', __cb)
//=> err undefined, code 0, res === '2.9.0'
cmd('npm install', ['--save', 'bluebird'], __cb)
//=> err undefined, code 0, res === 'bluebird@2.9.3 node_modules/bluebird'
cmd('npm uninstall', ['--save', 'bluebird'], {stdio: [null, null, null]}, __cb)
//=> err undefined, code 0, res === 'unbuild bluebird@2.9.3'
cmd('npm -v', {stdio: 'inherit'}, __cb)
//=> will directly outputs: 2.9.0
//=> err undefined, code 0, res === ''Impossible signatures (will throws/errors)
these examples should not work
cmd(__cb)
//=> first argument cant be function
cmd({ok:true})
//=> should have `callback` (non empty callback)
cmd(['--save-dev', 'bluebird'])
//=> should have `callback` (non empty callback)
cmd(['--save-dev', 'bluebird'], {ok: true})
//=> should have `callback` (non empty callback)
cmd({ok:true}, __cb)
//=> expect `cmd` be string
cmd(['--save-dev', 'bluebird'], __cb)
//=> expect `cmd` be string
cmd(['--save-dev', 'bluebird'], {ok: true}, __cb)
//=> expect `cmd` be stringContributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.