summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/libcipm/node_modules/worker-farm/index.d.ts
blob: 682c21f410c5136aa61f820c702115ccde36f8e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
interface Workers {
  (callback: WorkerCallback): void;
  (arg1: any, callback: WorkerCallback): void;
  (arg1: any, arg2: any, callback: WorkerCallback): void;
  (arg1: any, arg2: any, arg3: any, callback: WorkerCallback): void;
  (arg1: any, arg2: any, arg3: any, arg4: any, callback: WorkerCallback): void;
}

type WorkerCallback =
  | WorkerCallback0
  | WorkerCallback1
  | WorkerCallback2
  | WorkerCallback3
  | WorkerCallback4;

type WorkerCallback0 = () => void;
type WorkerCallback1 = (arg1: any) => void;
type WorkerCallback2 = (arg1: any, arg2: any) => void;
type WorkerCallback3 = (arg1: any, arg2: any, arg3: any) => void;
type WorkerCallback4 = (arg1: any, arg2: any, arg3: any, arg4: any) => void;

interface FarmOptions {
  maxCallsPerWorker?: number
  maxConcurrentWorkers?: number
  maxConcurrentCallsPerWorker?: number
  maxConcurrentCalls?: number
  maxCallTime?: number
  maxRetries?: number
  autoStart?: boolean
}

interface WorkerFarm {
  (name: string): Workers;
  (name: string, exportedMethods: string[]): Workers;
  (options: FarmOptions, name: string): Workers;
  (options: FarmOptions, name: string, exportedMethods: string[]): Workers;

  end: (workers: Workers) => void;
}

declare module "worker-farm" {
  const workerFarm: WorkerFarm;
  export = workerFarm;
}