UNPKG

11.9 kBTypeScriptView Raw
1declare module "net" {
2 import * as stream from "stream";
3 import * as events from "events";
4 import * as dns from "dns";
5
6 type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void;
7
8 interface AddressInfo {
9 address: string;
10 family: string;
11 port: number;
12 }
13
14 interface SocketConstructorOpts {
15 fd?: number;
16 allowHalfOpen?: boolean;
17 readable?: boolean;
18 writable?: boolean;
19 }
20
21 interface TcpSocketConnectOpts {
22 port: number;
23 host?: string;
24 localAddress?: string;
25 localPort?: number;
26 hints?: number;
27 family?: number;
28 lookup?: LookupFunction;
29 }
30
31 interface IpcSocketConnectOpts {
32 path: string;
33 }
34
35 type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts;
36
37 class Socket extends stream.Duplex {
38 constructor(options?: SocketConstructorOpts);
39
40 // Extended base methods
41 write(buffer: Buffer | Uint8Array | string, cb?: (err?: Error) => void): boolean;
42 write(str: Buffer | Uint8Array | string, encoding?: string, cb?: (err?: Error) => void): boolean;
43
44 connect(options: SocketConnectOpts, connectionListener?: () => void): this;
45 connect(port: number, host: string, connectionListener?: () => void): this;
46 connect(port: number, connectionListener?: () => void): this;
47 connect(path: string, connectionListener?: () => void): this;
48
49 setEncoding(encoding?: string): this;
50 pause(): this;
51 resume(): this;
52 setTimeout(timeout: number, callback?: () => void): this;
53 setNoDelay(noDelay?: boolean): this;
54 setKeepAlive(enable?: boolean, initialDelay?: number): this;
55 address(): AddressInfo | string;
56 unref(): void;
57 ref(): void;
58
59 readonly bufferSize: number;
60 readonly bytesRead: number;
61 readonly bytesWritten: number;
62 readonly connecting: boolean;
63 readonly destroyed: boolean;
64 readonly localAddress: string;
65 readonly localPort: number;
66 readonly remoteAddress?: string;
67 readonly remoteFamily?: string;
68 readonly remotePort?: number;
69
70 // Extended base methods
71 end(cb?: () => void): void;
72 end(buffer: Buffer | Uint8Array | string, cb?: () => void): void;
73 end(str: Buffer | Uint8Array | string, encoding?: string, cb?: () => void): void;
74
75 /**
76 * events.EventEmitter
77 * 1. close
78 * 2. connect
79 * 3. data
80 * 4. drain
81 * 5. end
82 * 6. error
83 * 7. lookup
84 * 8. timeout
85 */
86 addListener(event: string, listener: (...args: any[]) => void): this;
87 addListener(event: "close", listener: (had_error: boolean) => void): this;
88 addListener(event: "connect", listener: () => void): this;
89 addListener(event: "data", listener: (data: Buffer) => void): this;
90 addListener(event: "drain", listener: () => void): this;
91 addListener(event: "end", listener: () => void): this;
92 addListener(event: "error", listener: (err: Error) => void): this;
93 addListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
94 addListener(event: "timeout", listener: () => void): this;
95
96 emit(event: string | symbol, ...args: any[]): boolean;
97 emit(event: "close", had_error: boolean): boolean;
98 emit(event: "connect"): boolean;
99 emit(event: "data", data: Buffer): boolean;
100 emit(event: "drain"): boolean;
101 emit(event: "end"): boolean;
102 emit(event: "error", err: Error): boolean;
103 emit(event: "lookup", err: Error, address: string, family: string | number, host: string): boolean;
104 emit(event: "timeout"): boolean;
105
106 on(event: string, listener: (...args: any[]) => void): this;
107 on(event: "close", listener: (had_error: boolean) => void): this;
108 on(event: "connect", listener: () => void): this;
109 on(event: "data", listener: (data: Buffer) => void): this;
110 on(event: "drain", listener: () => void): this;
111 on(event: "end", listener: () => void): this;
112 on(event: "error", listener: (err: Error) => void): this;
113 on(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
114 on(event: "timeout", listener: () => void): this;
115
116 once(event: string, listener: (...args: any[]) => void): this;
117 once(event: "close", listener: (had_error: boolean) => void): this;
118 once(event: "connect", listener: () => void): this;
119 once(event: "data", listener: (data: Buffer) => void): this;
120 once(event: "drain", listener: () => void): this;
121 once(event: "end", listener: () => void): this;
122 once(event: "error", listener: (err: Error) => void): this;
123 once(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
124 once(event: "timeout", listener: () => void): this;
125
126 prependListener(event: string, listener: (...args: any[]) => void): this;
127 prependListener(event: "close", listener: (had_error: boolean) => void): this;
128 prependListener(event: "connect", listener: () => void): this;
129 prependListener(event: "data", listener: (data: Buffer) => void): this;
130 prependListener(event: "drain", listener: () => void): this;
131 prependListener(event: "end", listener: () => void): this;
132 prependListener(event: "error", listener: (err: Error) => void): this;
133 prependListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
134 prependListener(event: "timeout", listener: () => void): this;
135
136 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
137 prependOnceListener(event: "close", listener: (had_error: boolean) => void): this;
138 prependOnceListener(event: "connect", listener: () => void): this;
139 prependOnceListener(event: "data", listener: (data: Buffer) => void): this;
140 prependOnceListener(event: "drain", listener: () => void): this;
141 prependOnceListener(event: "end", listener: () => void): this;
142 prependOnceListener(event: "error", listener: (err: Error) => void): this;
143 prependOnceListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
144 prependOnceListener(event: "timeout", listener: () => void): this;
145 }
146
147 interface ListenOptions {
148 port?: number;
149 host?: string;
150 backlog?: number;
151 path?: string;
152 exclusive?: boolean;
153 readableAll?: boolean;
154 writableAll?: boolean;
155 /**
156 * @default false
157 */
158 ipv6Only?: boolean;
159 }
160
161 // https://github.com/nodejs/node/blob/master/lib/net.js
162 class Server extends events.EventEmitter {
163 constructor(connectionListener?: (socket: Socket) => void);
164 constructor(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void);
165
166 listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this;
167 listen(port?: number, hostname?: string, listeningListener?: () => void): this;
168 listen(port?: number, backlog?: number, listeningListener?: () => void): this;
169 listen(port?: number, listeningListener?: () => void): this;
170 listen(path: string, backlog?: number, listeningListener?: () => void): this;
171 listen(path: string, listeningListener?: () => void): this;
172 listen(options: ListenOptions, listeningListener?: () => void): this;
173 listen(handle: any, backlog?: number, listeningListener?: () => void): this;
174 listen(handle: any, listeningListener?: () => void): this;
175 close(callback?: (err?: Error) => void): this;
176 address(): AddressInfo | string | null;
177 getConnections(cb: (error: Error | null, count: number) => void): void;
178 ref(): this;
179 unref(): this;
180 maxConnections: number;
181 connections: number;
182 listening: boolean;
183
184 /**
185 * events.EventEmitter
186 * 1. close
187 * 2. connection
188 * 3. error
189 * 4. listening
190 */
191 addListener(event: string, listener: (...args: any[]) => void): this;
192 addListener(event: "close", listener: () => void): this;
193 addListener(event: "connection", listener: (socket: Socket) => void): this;
194 addListener(event: "error", listener: (err: Error) => void): this;
195 addListener(event: "listening", listener: () => void): this;
196
197 emit(event: string | symbol, ...args: any[]): boolean;
198 emit(event: "close"): boolean;
199 emit(event: "connection", socket: Socket): boolean;
200 emit(event: "error", err: Error): boolean;
201 emit(event: "listening"): boolean;
202
203 on(event: string, listener: (...args: any[]) => void): this;
204 on(event: "close", listener: () => void): this;
205 on(event: "connection", listener: (socket: Socket) => void): this;
206 on(event: "error", listener: (err: Error) => void): this;
207 on(event: "listening", listener: () => void): this;
208
209 once(event: string, listener: (...args: any[]) => void): this;
210 once(event: "close", listener: () => void): this;
211 once(event: "connection", listener: (socket: Socket) => void): this;
212 once(event: "error", listener: (err: Error) => void): this;
213 once(event: "listening", listener: () => void): this;
214
215 prependListener(event: string, listener: (...args: any[]) => void): this;
216 prependListener(event: "close", listener: () => void): this;
217 prependListener(event: "connection", listener: (socket: Socket) => void): this;
218 prependListener(event: "error", listener: (err: Error) => void): this;
219 prependListener(event: "listening", listener: () => void): this;
220
221 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
222 prependOnceListener(event: "close", listener: () => void): this;
223 prependOnceListener(event: "connection", listener: (socket: Socket) => void): this;
224 prependOnceListener(event: "error", listener: (err: Error) => void): this;
225 prependOnceListener(event: "listening", listener: () => void): this;
226 }
227
228 interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts {
229 timeout?: number;
230 }
231
232 interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts {
233 timeout?: number;
234 }
235
236 type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts;
237
238 function createServer(connectionListener?: (socket: Socket) => void): Server;
239 function createServer(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void): Server;
240 function connect(options: NetConnectOpts, connectionListener?: () => void): Socket;
241 function connect(port: number, host?: string, connectionListener?: () => void): Socket;
242 function connect(path: string, connectionListener?: () => void): Socket;
243 function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket;
244 function createConnection(port: number, host?: string, connectionListener?: () => void): Socket;
245 function createConnection(path: string, connectionListener?: () => void): Socket;
246 function isIP(input: string): number;
247 function isIPv4(input: string): boolean;
248 function isIPv6(input: string): boolean;
249}