summaryrefslogtreecommitdiff
path: root/lib/auto.js
diff options
context:
space:
mode:
authorAlex Early <alexander.early@gmail.com>2018-07-08 16:58:36 -0700
committerGitHub <noreply@github.com>2018-07-08 16:58:36 -0700
commite4751178540a3c6e64598b93977481ec599704d2 (patch)
treedce5731bdb1076971d2e4a0a42fbe0d95c720185 /lib/auto.js
parent6405b109fe60541ff42d7638ac891d321d6a7bb3 (diff)
downloadasync-e4751178540a3c6e64598b93977481ec599704d2.tar.gz
ES6-ify codebase (#1553)
* cancelable foreach * cancelable waterfall * cancellable auto * fix lint * fix tests * cancelable whilst/until/during/forever * fix waterfall test. It WILL get there * docs * use rest params instead of slice * clean up internals * remove property func * clarify uses of createTester * happy path async funtions in asyncify * stop using arguments * DLL to class * moar arrows * fix merge issues * remove forOwn * moar arrows * fix merge mistake * even more arrows, what can stop him * mo more fn.apply(null,...) * remove more spurious uses of apply * update lint config * just when you thought there couldn't possibly be more arrows * use eslint:recommended * even less uses or aguments * get rid of prototype cuteness * fix concat tests * fix more tests
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);
}