diff options
Diffstat (limited to 'lib/auto.js')
-rw-r--r-- | lib/auto.js | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/lib/auto.js b/lib/auto.js index 500620a..adfdfa1 100644 --- a/lib/auto.js +++ b/lib/auto.js @@ -1,7 +1,5 @@ import noop from './internal/noop'; -import forOwn from './internal/forOwn'; -import slice from './internal/slice'; import once from './internal/once'; import onlyOnce from './internal/onlyOnce'; import wrapAsync from './internal/wrapAsync'; @@ -114,7 +112,8 @@ export default function (tasks, concurrency, callback) { // without the possibility of returning to an ancestor task var uncheckedDependencies = {}; - forOwn(tasks, function (task, key) { + Object.keys(tasks).forEach(key => { + var task = tasks[key] if (!Array.isArray(task)) { // no dependencies enqueueTask(key, [task]); @@ -131,14 +130,14 @@ export default function (tasks, concurrency, callback) { } uncheckedDependencies[key] = remainingDependencies; - dependencies.forEach(function (dependencyName) { + dependencies.forEach(dependencyName => { if (!tasks[dependencyName]) { throw new Error('async.auto task `' + key + '` has a non-existent dependency `' + dependencyName + '` in ' + dependencies.join(', ')); } - addListener(dependencyName, function () { + addListener(dependencyName, () => { remainingDependencies--; if (remainingDependencies === 0) { enqueueTask(key, task); @@ -151,9 +150,7 @@ export default function (tasks, concurrency, callback) { processQueue(); function enqueueTask(key, task) { - readyTasks.push(function () { - runTask(key, task); - }); + readyTasks.push(() => runTask(key, task)); } function processQueue() { @@ -179,9 +176,7 @@ export default function (tasks, concurrency, callback) { function taskComplete(taskName) { var taskListeners = listeners[taskName] || []; - taskListeners.forEach(function (fn) { - fn(); - }); + taskListeners.forEach(fn => fn()); processQueue(); } @@ -189,19 +184,19 @@ export default function (tasks, concurrency, callback) { function runTask(key, task) { if (hasError) return; - var taskCallback = onlyOnce(function(err, result) { + var taskCallback = onlyOnce((err, ...result) => { runningTasks--; if (err === false) { canceled = true return } - if (arguments.length > 2) { - result = slice(arguments, 1); + if (result.length < 2) { + result = result[0]; } if (err) { var safeResults = {}; - forOwn(results, function(val, rkey) { - safeResults[rkey] = val; + Object.keys(results).forEach(rkey => { + safeResults[rkey] = results[rkey]; }); safeResults[key] = result; hasError = true; @@ -232,7 +227,7 @@ export default function (tasks, concurrency, callback) { while (readyToCheck.length) { currentTask = readyToCheck.pop(); counter++; - getDependents(currentTask).forEach(function (dependent) { + getDependents(currentTask).forEach(dependent => { if (--uncheckedDependencies[dependent] === 0) { readyToCheck.push(dependent); } @@ -248,7 +243,8 @@ export default function (tasks, concurrency, callback) { function getDependents(taskName) { var result = []; - forOwn(tasks, function (task, key) { + Object.keys(tasks).forEach(key => { + const task = tasks[key] if (Array.isArray(task) && task.indexOf(taskName) >= 0) { result.push(key); } |