Asynchronously iterate over permutations of function arguments
npm install permutronAsynchronously iterate permutations of function arguments
```
var permutron = require('permutron');
`
permutron('static', ['permutable'], 'static', generator, ['permutable'], function (a, b, c, d, next) { }, done);
function generator(n, context, next) {
next(null, {value: n, done: n > 1});
};
`
``
permutron.raw(['static', ['permutable'], 'static', ['permutable']], function(row, next) { }, done);
``
permutron.object({static: "static", permute: ['permutable']}, function (obj, next) { }, done);
Permutron simply iterates over each argument, giving one permutation each time.
Arguments that are arrays are used as sources of permutations, other arguments are passed along statically.
`
var permutron = require('permutron');
permutron('static1', ['dynamic1', 'dynamic2'], ['dynamic3', 'dynamic4'], generator, 'static2', function (a, b, c, d, e, next()) {
console.log(a, b, c, d, e);
next();
}, function (err) {
console.log('done!');
});
function generator(n, context, next) {
next(null, {value: n, done: n > 1});
};
`
Will output:
```
static1 dynamic1 dynamic3 0 static2
static1 dynamic1 dynamic4 1 static2
static1 dynamic1 dynamic3 0 static2
static1 dynamic1 dynamic4 1 static2
static1 dynamic2 dynamic3 0 static2
static1 dynamic2 dynamic4 1 static2
static1 dynamic2 dynamic3 0 static2
static1 dynamic2 dynamic4 1 static2
done!