UNPKG

1.59 kBTypeScriptView Raw
1import { ForkOptions } from "child_process";
2
3export = Farm;
4
5declare function Farm(name: string): Farm.Workers;
6declare function Farm(name: string, exportedMethods: string[]): Farm.Workers;
7declare function Farm(options: Farm.FarmOptions, name: string): Farm.Workers;
8declare function Farm(
9 options: Farm.FarmOptions,
10 name: string,
11 exportedMethods: string[],
12): Farm.Workers;
13
14type WorkerCallback0 = () => void;
15type WorkerCallback1 = (arg1: any) => void;
16type WorkerCallback2 = (arg1: any, arg2: any) => void;
17type WorkerCallback3 = (arg1: any, arg2: any, arg3: any) => void;
18type WorkerCallback4 = (arg1: any, arg2: any, arg3: any, arg4: any) => void;
19
20declare namespace Farm {
21 export function end(workers: Workers, callback?: Function): void;
22
23 export interface Workers {
24 [x: string]: Workers,
25 (callback: WorkerCallback): void;
26 (arg1: any, callback: WorkerCallback): void;
27 (arg1: any, arg2: any, callback: WorkerCallback): void;
28 (arg1: any, arg2: any, arg3: any, callback: WorkerCallback): void;
29 (
30 arg1: any,
31 arg2: any,
32 arg3: any,
33 arg4: any,
34 callback: WorkerCallback,
35 ): void;
36 }
37
38 export interface FarmOptions {
39 maxCallsPerWorker?: number;
40 maxConcurrentWorkers?: number;
41 maxConcurrentCallsPerWorker?: number;
42 maxConcurrentCalls?: number;
43 maxCallTime?: number;
44 maxRetries?: number;
45 autoStart?: boolean;
46 workerOptions?: ForkOptions;
47 }
48
49 export type WorkerCallback =
50 | WorkerCallback0
51 | WorkerCallback1
52 | WorkerCallback2
53 | WorkerCallback3
54 | WorkerCallback4;
55}