UNPKG

10.9 kBTypeScriptView Raw
1// Requires `esModuleInterop: true`
2declare module 'cluster' {
3 import * as child from 'child_process';
4 import EventEmitter = require('events');
5 import * as net from 'net';
6
7 export interface ClusterSettings {
8 execArgv?: string[] | undefined; // default: process.execArgv
9 exec?: string | undefined;
10 args?: string[] | undefined;
11 silent?: boolean | undefined;
12 stdio?: any[] | undefined;
13 uid?: number | undefined;
14 gid?: number | undefined;
15 inspectPort?: number | (() => number) | undefined;
16 }
17
18 export interface Address {
19 address: string;
20 port: number;
21 addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6"
22 }
23
24 export class Worker extends EventEmitter {
25 id: number;
26 process: child.ChildProcess;
27 send(message: child.Serializable, sendHandle?: child.SendHandle, callback?: (error: Error | null) => void): boolean;
28 kill(signal?: string): void;
29 destroy(signal?: string): void;
30 disconnect(): void;
31 isConnected(): boolean;
32 isDead(): boolean;
33 exitedAfterDisconnect: boolean;
34
35 /**
36 * events.EventEmitter
37 * 1. disconnect
38 * 2. error
39 * 3. exit
40 * 4. listening
41 * 5. message
42 * 6. online
43 */
44 addListener(event: string, listener: (...args: any[]) => void): this;
45 addListener(event: "disconnect", listener: () => void): this;
46 addListener(event: "error", listener: (error: Error) => void): this;
47 addListener(event: "exit", listener: (code: number, signal: string) => void): this;
48 addListener(event: "listening", listener: (address: Address) => void): this;
49 addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
50 addListener(event: "online", listener: () => void): this;
51
52 emit(event: string | symbol, ...args: any[]): boolean;
53 emit(event: "disconnect"): boolean;
54 emit(event: "error", error: Error): boolean;
55 emit(event: "exit", code: number, signal: string): boolean;
56 emit(event: "listening", address: Address): boolean;
57 emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
58 emit(event: "online"): boolean;
59
60 on(event: string, listener: (...args: any[]) => void): this;
61 on(event: "disconnect", listener: () => void): this;
62 on(event: "error", listener: (error: Error) => void): this;
63 on(event: "exit", listener: (code: number, signal: string) => void): this;
64 on(event: "listening", listener: (address: Address) => void): this;
65 on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
66 on(event: "online", listener: () => void): this;
67
68 once(event: string, listener: (...args: any[]) => void): this;
69 once(event: "disconnect", listener: () => void): this;
70 once(event: "error", listener: (error: Error) => void): this;
71 once(event: "exit", listener: (code: number, signal: string) => void): this;
72 once(event: "listening", listener: (address: Address) => void): this;
73 once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
74 once(event: "online", listener: () => void): this;
75
76 prependListener(event: string, listener: (...args: any[]) => void): this;
77 prependListener(event: "disconnect", listener: () => void): this;
78 prependListener(event: "error", listener: (error: Error) => void): this;
79 prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
80 prependListener(event: "listening", listener: (address: Address) => void): this;
81 prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
82 prependListener(event: "online", listener: () => void): this;
83
84 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
85 prependOnceListener(event: "disconnect", listener: () => void): this;
86 prependOnceListener(event: "error", listener: (error: Error) => void): this;
87 prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
88 prependOnceListener(event: "listening", listener: (address: Address) => void): this;
89 prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
90 prependOnceListener(event: "online", listener: () => void): this;
91 }
92
93 export interface Cluster extends EventEmitter {
94 disconnect(callback?: () => void): void;
95 fork(env?: any): Worker;
96 /** @deprecated since v16.0.0 - use setupPrimary. */
97 readonly isMaster: boolean;
98 readonly isPrimary: boolean;
99 readonly isWorker: boolean;
100 schedulingPolicy: number;
101 readonly settings: ClusterSettings;
102 /** @deprecated since v16.0.0 - use setupPrimary. */
103 setupMaster(settings?: ClusterSettings): void;
104 /**
105 * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in cluster.settings.
106 */
107 setupPrimary(settings?: ClusterSettings): void;
108 readonly worker?: Worker | undefined;
109 readonly workers?: NodeJS.Dict<Worker> | undefined;
110
111 readonly SCHED_NONE: number;
112 readonly SCHED_RR: number;
113
114 /**
115 * events.EventEmitter
116 * 1. disconnect
117 * 2. exit
118 * 3. fork
119 * 4. listening
120 * 5. message
121 * 6. online
122 * 7. setup
123 */
124 addListener(event: string, listener: (...args: any[]) => void): this;
125 addListener(event: "disconnect", listener: (worker: Worker) => void): this;
126 addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
127 addListener(event: "fork", listener: (worker: Worker) => void): this;
128 addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
129 addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
130 addListener(event: "online", listener: (worker: Worker) => void): this;
131 addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
132
133 emit(event: string | symbol, ...args: any[]): boolean;
134 emit(event: "disconnect", worker: Worker): boolean;
135 emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
136 emit(event: "fork", worker: Worker): boolean;
137 emit(event: "listening", worker: Worker, address: Address): boolean;
138 emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
139 emit(event: "online", worker: Worker): boolean;
140 emit(event: "setup", settings: ClusterSettings): boolean;
141
142 on(event: string, listener: (...args: any[]) => void): this;
143 on(event: "disconnect", listener: (worker: Worker) => void): this;
144 on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
145 on(event: "fork", listener: (worker: Worker) => void): this;
146 on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
147 on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
148 on(event: "online", listener: (worker: Worker) => void): this;
149 on(event: "setup", listener: (settings: ClusterSettings) => void): this;
150
151 once(event: string, listener: (...args: any[]) => void): this;
152 once(event: "disconnect", listener: (worker: Worker) => void): this;
153 once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
154 once(event: "fork", listener: (worker: Worker) => void): this;
155 once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
156 once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
157 once(event: "online", listener: (worker: Worker) => void): this;
158 once(event: "setup", listener: (settings: ClusterSettings) => void): this;
159
160 prependListener(event: string, listener: (...args: any[]) => void): this;
161 prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
162 prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
163 prependListener(event: "fork", listener: (worker: Worker) => void): this;
164 prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
165 // the handle is a net.Socket or net.Server object, or undefined.
166 prependListener(event: "message", listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void): this;
167 prependListener(event: "online", listener: (worker: Worker) => void): this;
168 prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
169
170 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
171 prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
172 prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
173 prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
174 prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
175 // the handle is a net.Socket or net.Server object, or undefined.
176 prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;
177 prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
178 prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
179 }
180
181 const cluster: Cluster;
182 export default cluster;
183}
184
185declare module 'node:cluster' {
186 export * from 'cluster';
187}
188
\No newline at end of file