Package Exports
- execon
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 (execon) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Execon

Patterns of function calls.
Install
npm i execon --save
# or
bower i execon --save
Api
var exec = require('execon');
exec
Check is parameter is function, if it's - executes it with given parameters
Was:
function(callback, p1, p2, pN) {
if (typeof callback === 'function')
callback(p1, p2, pN);
}
Now
function(callback, p1, p2, pN) {
exec(callback, p1, p2, pN);
}
or just
exec.ret(callback, p1, p2, pN);
exec.if
Conditional execution one of two functions
Preconditions:
function one() {
console.log(1);
}
function two(callback) {
setTimeout(callback, 1000);
}
Before:
if (2 > 3)
one();
else
two(one);
After:
exec.if(2 > 3, one, two);
exec.parallel
if a you need a couple async operation do same work, and then call callback, this function for you.
Node.js example.
var fs = require('fs'),
Util = require('execon');
exec.parallel([
function(callback) {
fs.readFile('file1', callback);
},
function(callback) {
fs.readFile('file2', callback);
}
], function(error, data1, data2) {
if (error)
console.log(error)
else
console.log(data1, data2);
});
Vanilla js example.
var ONE_SECOND = 1000,
TWO_SECONDS = 2000,
func = function(time, str, callback) {
setTimeout(function() {
console.log(str);
callback(null, str);
}, time);
},
func1 = func.bind(null, TWO_SECONDS, 'first'),
func2 = func.bind(null, ONE_SECOND, 'second');
exec.parallel([func1, func2], function(error, str1, str2) {
console.log(str1, str2);
});
exec.series
executes functions one-by-one
function one(callback){
setTimeout(function() {
console.log(1)
callback();
}, 1000);
}
function two(callback) {
console.log(2);
callback();
}
exec.series([one, two], function(error) {
console.log(error || 'done');
});
License
MIT