UNPKG

6.41 kBTypeScriptView Raw
1// Type definitions for Async 0.1.23
2// Project: https://github.com/caolan/async
3// Definitions by: Boris Yankov <https://github.com/borisyankov/>
4// Definitions: https://github.com/borisyankov/DefinitelyTyped
5
6interface ErrorCallback { (err?: Error): void; }
7interface AsyncResultsCallback<T> { (err: Error, results: T[]): void; }
8interface AsyncResultCallback<T> { (err: Error, result: T): void; }
9interface AsyncTimesCallback<T> { (n: number, callback: AsyncResultsCallback<T>): void; }
10
11interface AsyncIterator<T> { (item: T, callback: ErrorCallback): void; }
12interface AsyncResultIterator<T, R> { (item: T, callback: AsyncResultCallback<R>): void; }
13interface AsyncMemoIterator<T, R> { (memo: R, item: T, callback: AsyncResultCallback<R>): void; }
14
15interface AsyncWorker<T> { (task: T, callback: Function): void; }
16
17interface AsyncQueue<T> {
18 length(): number;
19 concurrency: number;
20 started: boolean;
21 paused: boolean;
22 push(task: T, callback?: AsyncResultsCallback<T>): void;
23 push(task: T[], callback?: AsyncResultsCallback<T>): void;
24 unshift(task: T, callback?: AsyncResultsCallback<T>): void;
25 unshift(task: T[], callback?: AsyncResultsCallback<T>): void;
26 saturated: () => any;
27 empty: () => any;
28 drain: () => any;
29 running(): number;
30 idle(): boolean;
31 pause(): void;
32 resume(): void;
33 kill(): void;
34}
35
36interface AsyncPriorityQueue<T> {
37 length(): number;
38 concurrency: number;
39 started: boolean;
40 paused: boolean;
41 push(task: T, priority: number, callback?: AsyncResultsCallback<T>): void;
42 push(task: T[], priority: number, callback?: AsyncResultsCallback<T>): void;
43 saturated: () => any;
44 empty: () => any;
45 drain: () => any;
46 running(): number;
47 idle(): boolean;
48 pause(): void;
49 resume(): void;
50 kill(): void;
51}
52
53interface Async {
54
55 // Collections
56 each<T>(arr: T[], iterator: AsyncIterator<T>, callback: ErrorCallback): void;
57 eachSeries<T>(arr: T[], iterator: AsyncIterator<T>, callback: ErrorCallback): void;
58 eachLimit<T>(arr: T[], limit: number, iterator: AsyncIterator<T>, callback: ErrorCallback): void;
59 map<T, R>(arr: T[], iterator: AsyncResultIterator<T, R>, callback: AsyncResultsCallback<R>): any;
60 mapSeries<T, R>(arr: T[], iterator: AsyncResultIterator<T, R>, callback: AsyncResultsCallback<R>): any;
61 mapLimit<T, R>(arr: T[], limit: number, iterator: AsyncResultIterator<T, R>, callback: AsyncResultsCallback<R>): any;
62 filter<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (results: T[]) => any): any;
63 select<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (results: T[]) => any): any;
64 filterSeries<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (results: T[]) => any): any;
65 selectSeries<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (results: T[]) => any): any;
66 reject<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (results: T[]) => any): any;
67 rejectSeries<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (results: T[]) => any): any;
68 reduce<T, R>(arr: T[], memo: R, iterator: AsyncMemoIterator<T, R>, callback: AsyncResultCallback<R>): any;
69 inject<T, R>(arr: T[], memo: R, iterator: AsyncMemoIterator<T, R>, callback: AsyncResultCallback<R>): any;
70 foldl<T, R>(arr: T[], memo: R, iterator: AsyncMemoIterator<T, R>, callback: AsyncResultCallback<R>): any;
71 reduceRight<T, R>(arr: T[], memo: R, iterator: AsyncMemoIterator<T, R>, callback: AsyncResultCallback<R>): any;
72 foldr<T, R>(arr: T[], memo: R, iterator: AsyncMemoIterator<T, R>, callback: AsyncResultCallback<R>): any;
73 detect<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: AsyncResultsCallback<T>): any;
74 detectSeries<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: AsyncResultsCallback<T>): any;
75 sortBy<T, V>(arr: T[], iterator: AsyncResultIterator<T, V>, callback: AsyncResultsCallback<T>): any;
76 some<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: AsyncResultsCallback<T>): any;
77 any<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: AsyncResultsCallback<T>): any;
78 every<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (result: boolean) => any): any;
79 all<T>(arr: T[], iterator: AsyncResultIterator<T, boolean>, callback: (result: boolean) => any): any;
80 concat<T, R>(arr: T[], iterator: AsyncResultIterator<T, R[]>, callback: AsyncResultsCallback<R>): any;
81 concatSeries<T, R>(arr: T[], iterator: AsyncResultIterator<T, R[]>, callback: AsyncResultsCallback<R>): any;
82
83 // Control Flow
84 series<T>(tasks: T[], callback?: AsyncResultsCallback<T>): void;
85 series<T>(tasks: T, callback?: AsyncResultsCallback<T>): void;
86 parallel<T>(tasks: T[], callback?: AsyncResultsCallback<T>): void;
87 parallel<T>(tasks: T, callback?: AsyncResultsCallback<T>): void;
88 parallelLimit<T>(tasks: T[], limit: number, callback?: AsyncResultsCallback<T>): void;
89 parallelLimit<T>(tasks: T, limit: number, callback?: AsyncResultsCallback<T>): void;
90 whilst(test: Function, fn: Function, callback: Function): void;
91 until(test: Function, fn: Function, callback: Function): void;
92 waterfall<T>(tasks: T[], callback?: AsyncResultsCallback<T>): void;
93 waterfall<T>(tasks: T, callback?: AsyncResultsCallback<T>): void;
94 queue<T>(worker: AsyncWorker<T>, concurrency: number): AsyncQueue<T>;
95 priorityQueue<T>(worker: AsyncWorker<T>, concurrency: number): AsyncPriorityQueue<T>;
96 // auto(tasks: any[], callback?: AsyncResultsCallback<T>): void;
97 auto(tasks: any, callback?: AsyncResultsCallback<any>): void;
98 iterator(tasks: Function[]): Function;
99 apply(fn: Function, ...arguments: any[]): void;
100 nextTick<T>(callback: Function): void;
101
102 times<T> (n: number, callback: AsyncTimesCallback<T>): void;
103 timesSeries<T> (n: number, callback: AsyncTimesCallback<T>): void;
104
105 // Utils
106 memoize(fn: Function, hasher?: Function): Function;
107 unmemoize(fn: Function): Function;
108 log(fn: Function, ...arguments: any[]): void;
109 dir(fn: Function, ...arguments: any[]): void;
110 noConflict(): Async;
111}
112
113declare var async: Async;
114
115declare module "async" {
116 export = async;
117}
118
\No newline at end of file