diff --git a/index.js b/index.js index 0242a43..7ffdafe 100644 --- a/index.js +++ b/index.js @@ -2,5 +2,7 @@ module.exports = { series: require('./lib/series'), - parallel: require('./lib/parallel') + parallel: require('./lib/parallel'), + settleSeries: require('./lib/settleSeries'), + settleParallel: require('./lib/settleParallel') }; diff --git a/lib/createParallel.js b/lib/createParallel.js deleted file mode 100644 index 1efa7ce..0000000 --- a/lib/createParallel.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var _ = require('lodash'); -var async = require('async'); -var verifyArguments = require('./verifyArguments'); - -function createParallel(mapFn){ - - function buildParallel(){ - var args = verifyArguments(_.flatten(arguments)); - - function parallel(done){ - async.map(args, mapFn, done); - } - - return parallel; - } - - return buildParallel; -} - -module.exports = createParallel; diff --git a/lib/createSeries.js b/lib/createSeries.js deleted file mode 100644 index 345c17d..0000000 --- a/lib/createSeries.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var _ = require('lodash'); -var async = require('async'); -var verifyArguments = require('./verifyArguments'); - -function createSeries(mapFn){ - - function buildSeries(){ - var args = verifyArguments(_.flatten(arguments)); - - function series(done){ - async.mapSeries(args, mapFn, done); - } - - return series; - } - - return buildSeries; -} - -module.exports = createSeries; diff --git a/lib/getExtensions.js b/lib/getExtensions.js new file mode 100644 index 0000000..022586b --- /dev/null +++ b/lib/getExtensions.js @@ -0,0 +1,11 @@ +'use strict'; + +function getExtensions(lastArg){ + if(typeof lastArg !== 'function'){ + return lastArg; + } + + return {}; +} + +module.exports = getExtensions; diff --git a/lib/parallel.js b/lib/parallel.js index 9d316a8..e35d1c3 100644 --- a/lib/parallel.js +++ b/lib/parallel.js @@ -4,15 +4,13 @@ var _ = require('lodash'); var asyncDone = require('async-done'); var nowAndLater = require('now-and-later'); +var getExtensions = require('./getExtensions'); var verifyArguments = require('./verifyArguments'); function buildParallel(){ var args = verifyArguments(arguments); - var extensions = {}; - if(typeof _.last(args) !== 'function'){ - extensions = _.last(args); - } + var extensions = getExtensions(_.last(args)); function parallel(done){ nowAndLater.parallel(args, asyncDone, extensions, done); diff --git a/lib/series.js b/lib/series.js index f0ab8eb..023938b 100644 --- a/lib/series.js +++ b/lib/series.js @@ -4,15 +4,13 @@ var _ = require('lodash'); var asyncDone = require('async-done'); var nowAndLater = require('now-and-later'); +var getExtensions = require('./getExtensions'); var verifyArguments = require('./verifyArguments'); function buildSeries(){ var args = verifyArguments(arguments); - var extensions = {}; - if(typeof _.last(args) !== 'function'){ - extensions = _.last(args); - } + var extensions = getExtensions(_.last(args)); function series(done){ nowAndLater.series(args, asyncDone, extensions, done); diff --git a/lib/settleParallel.js b/lib/settleParallel.js new file mode 100644 index 0000000..7d9a42a --- /dev/null +++ b/lib/settleParallel.js @@ -0,0 +1,23 @@ +'use strict'; + +var _ = require('lodash'); +var asyncSettle = require('async-settle'); +var nowAndLater = require('now-and-later'); + +var onSettled = require('./onSettled'); +var getExtensions = require('./getExtensions'); +var verifyArguments = require('./verifyArguments'); + +function buildParallel(){ + var args = verifyArguments(arguments); + + var extensions = getExtensions(_.last(args)); + + function settleParallel(done){ + nowAndLater.parallel(args, asyncSettle, extensions, onSettled(done)); + } + + return settleParallel; +} + +module.exports = buildParallel; diff --git a/lib/settleSeries.js b/lib/settleSeries.js new file mode 100644 index 0000000..746830d --- /dev/null +++ b/lib/settleSeries.js @@ -0,0 +1,23 @@ +'use strict'; + +var _ = require('lodash'); +var asyncSettle = require('async-settle'); +var nowAndLater = require('now-and-later'); + +var onSettled = require('./onSettled'); +var getExtensions = require('./getExtensions'); +var verifyArguments = require('./verifyArguments'); + +function buildSeries(){ + var args = verifyArguments(arguments); + + var extensions = getExtensions(_.last(args)); + + function settleSeries(done){ + nowAndLater.series(args, asyncSettle, extensions, onSettled(done)); + } + + return settleSeries; +} + +module.exports = buildSeries; diff --git a/settle.js b/settle.js deleted file mode 100644 index b0f0aa5..0000000 --- a/settle.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var series = require('./settle/series'); -var parallel = require('./settle/parallel'); - -module.exports = { - series: series, - parallel: parallel -}; diff --git a/settle/parallel.js b/settle/parallel.js deleted file mode 100644 index c2e0a6b..0000000 --- a/settle/parallel.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var _ = require('lodash'); -var async = require('async'); -var asyncSettle = require('async-settle'); - -var onSettled = require('../lib/onSettled'); - -function buildParallel(){ - var args = _.flatten(arguments); - - function settleParallel(done){ - async.map(args, asyncSettle, onSettled(done)); - } - - return settleParallel; -} - -module.exports = buildParallel; diff --git a/settle/series.js b/settle/series.js deleted file mode 100644 index abe2d89..0000000 --- a/settle/series.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var _ = require('lodash'); -var async = require('async'); -var asyncSettle = require('async-settle'); - -var onSettled = require('../lib/onSettled'); - -function buildSeries(){ - var args = _.flatten(arguments); - - function settleSeries(done){ - async.mapSeries(args, asyncSettle, onSettled(done)); - } - - return settleSeries; -} - -module.exports = buildSeries; diff --git a/test/settleParallel.js b/test/settleParallel.js index 8881b95..1d471b4 100644 --- a/test/settleParallel.js +++ b/test/settleParallel.js @@ -2,7 +2,7 @@ var test = require('tap').test; -var bach = require('../settle'); +var bach = require('../'); function fn1(done){ done(null, 1); @@ -23,7 +23,7 @@ function fnError(done){ } test('should execute functions in parallel and call callback with results on settled', function(t){ - bach.parallel(fn1, fn2, fn3)(function(errors, results){ + bach.settleParallel(fn1, fn2, fn3)(function(errors, results){ t.notOk(errors, 'errors should be undefined'); t.ok(results, 'results should be defined'); t.deepEqual(results, [1, 2, 3], 'results should be [1, 2, 3]'); @@ -38,7 +38,7 @@ test('should execute functions in parallel and call callback with errors on sett done(null, 2); }, 500); } - bach.parallel(fn1, slowFn, fn3, fnError)(function(errors, results){ + bach.settleParallel(fn1, slowFn, fn3, fnError)(function(errors, results){ t.ok(errors, 'errors should be defined'); t.ok(results, 'results should be defined'); t.ok(Array.isArray(errors), 'errors should be an array'); diff --git a/test/settleSeries.js b/test/settleSeries.js index 539248c..54fc6a1 100644 --- a/test/settleSeries.js +++ b/test/settleSeries.js @@ -2,7 +2,7 @@ var test = require('tap').test; -var bach = require('../settle'); +var bach = require('../'); function fn1(done){ done(null, 1); @@ -23,7 +23,7 @@ function fnError(done){ } test('should execute functions in series and call callback with results on settled', function(t){ - bach.series(fn1, fn2, fn3)(function(errors, results){ + bach.settleSeries(fn1, fn2, fn3)(function(errors, results){ t.notOk(errors, 'errors should be undefined'); t.ok(results, 'results should be defined'); t.deepEqual(results, [1, 2, 3], 'results should be [1, 2, 3]'); @@ -38,7 +38,7 @@ test('should execute functions in series and call callback with errors on settle done(null, 2); }, 500); } - bach.series(fn1, slowFn, fn3, fnError)(function(errors, results){ + bach.settleSeries(fn1, slowFn, fn3, fnError)(function(errors, results){ t.ok(errors, 'errors should be defined'); t.ok(results, 'results should be defined'); t.ok(Array.isArray(errors), 'errors should be an array');