You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
679 B
32 lines
679 B
2 years ago
|
'use strict';
|
||
|
|
||
|
var initial = require('array-initial');
|
||
|
var last = require('array-last');
|
||
|
var asyncSettle = require('async-settle');
|
||
|
var nowAndLater = require('now-and-later');
|
||
|
|
||
|
var helpers = require('./helpers');
|
||
|
|
||
|
function iterator(fn, key, cb) {
|
||
|
return asyncSettle(fn, cb);
|
||
|
}
|
||
|
|
||
|
function buildSettleParallel() {
|
||
|
var args = helpers.verifyArguments(arguments);
|
||
|
|
||
|
var extensions = helpers.getExtensions(last(args));
|
||
|
|
||
|
if (extensions) {
|
||
|
args = initial(args);
|
||
|
}
|
||
|
|
||
|
function settleParallel(done) {
|
||
|
var onSettled = helpers.onSettled(done);
|
||
|
nowAndLater.map(args, iterator, extensions, onSettled);
|
||
|
}
|
||
|
|
||
|
return settleParallel;
|
||
|
}
|
||
|
|
||
|
module.exports = buildSettleParallel;
|