diff --git a/async/async.d.ts b/async/async.d.ts
index 1efa5046bb..5f558c3846 100644
--- a/async/async.d.ts
+++ b/async/async.d.ts
@@ -3,12 +3,14 @@
// Definitions by: Boris Yankov
// Definitions: https://github.com/borisyankov/DefinitelyTyped
-interface AsyncMultipleResultsCallback { (err: Error, results: T[]): any; }
-interface AsyncSingleResultCallback { (err: Error, result: T): void; }
-interface AsyncTimesCallback { (n: number, callback: AsyncMultipleResultsCallback): void; }
+interface ErrorCallback { (err?: Error): void; }
+interface AsyncResultsCallback { (err: Error, results: T[]): void; }
+interface AsyncResultCallback { (err: Error, result: T): void; }
+interface AsyncTimesCallback { (n: number, callback: AsyncResultsCallback): void; }
-interface AsyncIterator { (item: T, callback: AsyncSingleResultCallback): void; }
-interface AsyncMemoIterator { (memo: R, item: T, callback: AsyncSingleResultCallback): void; }
+interface AsyncIterator { (item: T, callback: ErrorCallback): void; }
+interface AsyncResultIterator { (item: T, callback: AsyncResultCallback): void; }
+interface AsyncMemoIterator { (memo: R, item: T, callback: AsyncResultCallback): void; }
interface AsyncWorker { (task: T, callback: Function): void; }
@@ -17,10 +19,10 @@ interface AsyncQueue {
concurrency: number;
started: boolean;
paused: boolean;
- push(task: T, callback?: AsyncMultipleResultsCallback): void;
- push(task: T[], callback?: AsyncMultipleResultsCallback): void;
- unshift(task: T, callback?: AsyncMultipleResultsCallback): void;
- unshift(task: T[], callback?: AsyncMultipleResultsCallback): void;
+ push(task: T, callback?: AsyncResultsCallback): void;
+ push(task: T[], callback?: AsyncResultsCallback): void;
+ unshift(task: T, callback?: AsyncResultsCallback): void;
+ unshift(task: T[], callback?: AsyncResultsCallback): void;
saturated: () => any;
empty: () => any;
drain: () => any;
@@ -36,8 +38,8 @@ interface AsyncPriorityQueue {
concurrency: number;
started: boolean;
paused: boolean;
- push(task: T, priority: number, callback?: AsyncMultipleResultsCallback): void;
- push(task: T[], priority: number, callback?: AsyncMultipleResultsCallback): void;
+ push(task: T, priority: number, callback?: AsyncResultsCallback): void;
+ push(task: T[], priority: number, callback?: AsyncResultsCallback): void;
saturated: () => any;
empty: () => any;
drain: () => any;
@@ -51,47 +53,48 @@ interface AsyncPriorityQueue {
interface Async {
// Collections
- each(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): void;
- eachSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): void;
- eachLimit(arr: T[], limit: number, iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): void;
- map(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- mapSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- filter(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- select(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- filterSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- selectSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- reject(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- rejectSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- reduce(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback): any;
- inject(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback): any;
- foldl(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback): any;
- reduceRight(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback): any;
- foldr(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback): any;
- detect(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- detectSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- sortBy(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- some(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- any(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- every(arr: T[], iterator: AsyncIterator, callback: (result: boolean) => any): any;
- all(arr: T[], iterator: AsyncIterator, callback: (result: boolean) => any): any;
- concat(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
- concatSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): any;
+ each(arr: T[], iterator: AsyncIterator, callback: ErrorCallback): void;
+ eachSeries(arr: T[], iterator: AsyncIterator, callback: ErrorCallback): void;
+ eachLimit(arr: T[], limit: number, iterator: AsyncIterator, callback: ErrorCallback): void;
+ map(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ mapSeries(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ mapLimit(arr: T[], limit: number, iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ filter(arr: T[], iterator: AsyncResultIterator, callback: (results: T[]) => any): any;
+ select(arr: T[], iterator: AsyncResultIterator, callback: (results: T[]) => any): any;
+ filterSeries(arr: T[], iterator: AsyncResultIterator, callback: (results: T[]) => any): any;
+ selectSeries(arr: T[], iterator: AsyncResultIterator, callback: (results: T[]) => any): any;
+ reject(arr: T[], iterator: AsyncResultIterator, callback: (results: T[]) => any): any;
+ rejectSeries(arr: T[], iterator: AsyncResultIterator, callback: (results: T[]) => any): any;
+ reduce(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncResultCallback): any;
+ inject(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncResultCallback): any;
+ foldl(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncResultCallback): any;
+ reduceRight(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncResultCallback): any;
+ foldr(arr: T[], memo: R, iterator: AsyncMemoIterator, callback: AsyncResultCallback): any;
+ detect(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ detectSeries(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ sortBy(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ some(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ any(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ every(arr: T[], iterator: AsyncResultIterator, callback: (result: boolean) => any): any;
+ all(arr: T[], iterator: AsyncResultIterator, callback: (result: boolean) => any): any;
+ concat(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
+ concatSeries(arr: T[], iterator: AsyncResultIterator, callback: AsyncResultsCallback): any;
// Control Flow
- series(tasks: T[], callback?: AsyncMultipleResultsCallback): void;
- series(tasks: T, callback?: AsyncMultipleResultsCallback): void;
- parallel(tasks: T[], callback?: AsyncMultipleResultsCallback): void;
- parallel(tasks: T, callback?: AsyncMultipleResultsCallback): void;
- parallelLimit(tasks: T[], limit: number, callback?: AsyncMultipleResultsCallback): void;
- parallelLimit(tasks: T, limit: number, callback?: AsyncMultipleResultsCallback): void;
+ series(tasks: T[], callback?: AsyncResultsCallback): void;
+ series(tasks: T, callback?: AsyncResultsCallback): void;
+ parallel(tasks: T[], callback?: AsyncResultsCallback): void;
+ parallel(tasks: T, callback?: AsyncResultsCallback): void;
+ parallelLimit(tasks: T[], limit: number, callback?: AsyncResultsCallback): void;
+ parallelLimit(tasks: T, limit: number, callback?: AsyncResultsCallback): void;
whilst(test: Function, fn: Function, callback: Function): void;
until(test: Function, fn: Function, callback: Function): void;
- waterfall(tasks: T[], callback?: AsyncMultipleResultsCallback): void;
- waterfall(tasks: T, callback?: AsyncMultipleResultsCallback): void;
+ waterfall(tasks: T[], callback?: AsyncResultsCallback): void;
+ waterfall(tasks: T, callback?: AsyncResultsCallback): void;
queue(worker: AsyncWorker, concurrency: number): AsyncQueue;
priorityQueue(worker: AsyncWorker, concurrency: number): AsyncPriorityQueue;
- // auto(tasks: any[], callback?: AsyncMultipleResultsCallback): void;
- auto(tasks: any, callback?: AsyncMultipleResultsCallback): void;
+ // auto(tasks: any[], callback?: AsyncResultsCallback): void;
+ auto(tasks: any, callback?: AsyncResultsCallback): void;
iterator(tasks: Function[]): Function;
apply(fn: Function, ...arguments: any[]): void;
nextTick(callback: Function): void;