Comparing version
24
index.js
@@ -0,1 +1,3 @@ | ||
var dezalgo = require('dezalgo') | ||
var _setImmediate | ||
@@ -14,3 +16,6 @@ if (typeof setImmediate === 'function') { | ||
module.exports = function (tasks, cb) { | ||
cb = cb || function () {} | ||
if (cb) cb = dezalgo(cb) | ||
var results = {} | ||
var listeners = [] | ||
var keys = Object.keys(tasks) | ||
@@ -20,13 +25,10 @@ var remainingTasks = keys.length | ||
if (!remainingTasks) { | ||
return cb() | ||
return cb && cb(null, results) | ||
} | ||
var results = {} | ||
var listeners = [] | ||
var addListener = function (fn) { | ||
function addListener (fn) { | ||
listeners.unshift(fn) | ||
} | ||
var removeListener = function (fn) { | ||
function removeListener (fn) { | ||
for (var i = 0; i < listeners.length; i += 1) { | ||
@@ -40,3 +42,3 @@ if (listeners[i] === fn) { | ||
var taskComplete = function () { | ||
function taskComplete () { | ||
remainingTasks -= 1 | ||
@@ -52,3 +54,3 @@ listeners.slice(0).forEach(function (fn) { | ||
// prevent final cb from calling itself if it errors | ||
cb = function () {} | ||
cb = null | ||
thecb(null, results) | ||
@@ -76,5 +78,5 @@ } | ||
safeResults[key] = args | ||
cb(err, safeResults) | ||
if (cb) cb(err, safeResults) | ||
// stop subsequent errors hitting cb multiple times | ||
cb = function () {} | ||
cb = null | ||
} else { | ||
@@ -81,0 +83,0 @@ results[key] = args |
{ | ||
"name": "run-auto", | ||
"description": "Determine the best order for running async functions, and run them", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"author": { | ||
@@ -13,5 +13,8 @@ "name": "Feross Aboukhadijeh", | ||
}, | ||
"dependencies": {}, | ||
"dependencies": { | ||
"dezalgo": "^1.0.1" | ||
}, | ||
"devDependencies": { | ||
"tape": "^2.12.3" | ||
"standard": "^3.2.0", | ||
"tape": "^3.5.0" | ||
}, | ||
@@ -38,3 +41,3 @@ "homepage": "https://github.com/feross/run-auto", | ||
"scripts": { | ||
"test": "tape test/*.js" | ||
"test": "standard && tape test/*.js" | ||
}, | ||
@@ -41,0 +44,0 @@ "testling": { |
@@ -1,2 +0,2 @@ | ||
# run-auto [](https://travis-ci.org/feross/run-auto) [](https://npmjs.org/package/run-auto) | ||
# run-auto [](https://travis-ci.org/feross/run-auto) [](https://npmjs.org/package/run-auto) [](https://npmjs.org/package/run-auto) | ||
@@ -46,3 +46,3 @@ #### Determine the best order for running async functions, ***LIKE MAGIC!*** | ||
async.auto({ | ||
auto({ | ||
getData: function (callback) { | ||
@@ -49,0 +49,0 @@ console.log('in getData') |
@@ -11,3 +11,3 @@ var auto = require('../') | ||
callOrder.push('task1') | ||
cb() | ||
cb(null, 'res1') | ||
}, 25) | ||
@@ -18,3 +18,3 @@ }], | ||
callOrder.push('task2') | ||
cb() | ||
cb(null, 'res2') | ||
}, 50) | ||
@@ -24,7 +24,7 @@ }, | ||
callOrder.push('task3') | ||
cb() | ||
cb(null, 'res3') | ||
}], | ||
task4: ['task1', 'task2', function (cb) { | ||
callOrder.push('task4') | ||
cb() | ||
cb(null, 'res4') | ||
}], | ||
@@ -34,3 +34,3 @@ task5: ['task2', function (cb) { | ||
callOrder.push('task5') | ||
cb() | ||
cb(null, 'res5') | ||
}, 0) | ||
@@ -40,10 +40,19 @@ }], | ||
callOrder.push('task6') | ||
cb() | ||
cb(null, 'res6') | ||
}] | ||
} | ||
auto(tasks, function (err) { | ||
t.deepEqual(callOrder, ['task2','task6','task3','task5','task1','task4']) | ||
auto(tasks, function (err, results) { | ||
t.error(err) | ||
t.deepEqual(callOrder, ['task2', 'task6', 'task3', 'task5', 'task1', 'task4']) | ||
t.deepEqual(results, { | ||
task1: 'res1', | ||
task2: 'res2', | ||
task3: 'res3', | ||
task4: 'res4', | ||
task5: 'res5', | ||
task6: 'res6' | ||
}) | ||
t.end() | ||
}) | ||
}) |
@@ -16,2 +16,2 @@ var auto = require('../') | ||
t.end() | ||
}) | ||
}) |
@@ -36,7 +36,7 @@ var auto = require('../') | ||
auto(tasks, function (err, results) { | ||
t.ok(err instanceof Error) | ||
t.equals(results.task1, 'result1') | ||
t.equals(results.task2, 'result2') | ||
t.end() | ||
t.ok(err instanceof Error) | ||
t.equals(results.task1, 'result1') | ||
t.equals(results.task2, 'result2') | ||
t.end() | ||
}) | ||
}) |
@@ -17,2 +17,2 @@ var auto = require('../') | ||
auto(tasks) | ||
}) | ||
}) |
Sorry, the diff of this file is not supported yet
16644
2.59%201
6.35%1
Infinity%2
100%+ Added
+ Added
+ Added
+ Added