summaryrefslogtreecommitdiff
path: root/lib/auto.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/auto.js')
-rw-r--r--lib/auto.js32
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);
}