blob: 31e7b7980f6711a6074d56734fc09e19ac625b25 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001declare function fastq<C, T = any, R = any>(context: C, worker: fastq.worker<C, T, R>, concurrency: number): fastq.queue<T, R>
2declare function fastq<C, T = any, R = any>(worker: fastq.worker<C, T, R>, concurrency: number): fastq.queue<T, R>
3
4declare namespace fastq {
5 type worker<C, T = any, R = any> = (this: C, task: T, cb: fastq.done<R>) => void
6 type done<R = any> = (err: Error | null, result?: R) => void
7 type errorHandler<T = any> = (err: Error, task: T) => void
8
9 interface queue<T = any, R = any> {
10 push(task: T, done: done<R>): void
11 unshift(task: T, done: done<R>): void
12 pause(): any
13 resume(): any
14 idle(): boolean
15 length(): number
16 getQueue(): T[]
17 kill(): any
18 killAndDrain(): any
19 error(handler: errorHandler): void
20 concurrency: number
21 drain(): any
22 empty: () => void
23 saturated: () => void
24 }
25}
26
27export = fastq