1 | /**
|
2 | * The `os` module provides operating system-related utility methods and
|
3 | * properties. It can be accessed using:
|
4 | *
|
5 | * ```js
|
6 | * const os = require('os');
|
7 | * ```
|
8 | * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/os.js)
|
9 | */
|
10 | declare module 'os' {
|
11 | interface CpuInfo {
|
12 | model: string;
|
13 | speed: number;
|
14 | times: {
|
15 | user: number;
|
16 | nice: number;
|
17 | sys: number;
|
18 | idle: number;
|
19 | irq: number;
|
20 | };
|
21 | }
|
22 | interface NetworkInterfaceBase {
|
23 | address: string;
|
24 | netmask: string;
|
25 | mac: string;
|
26 | internal: boolean;
|
27 | cidr: string | null;
|
28 | }
|
29 | interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase {
|
30 | family: 'IPv4';
|
31 | }
|
32 | interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase {
|
33 | family: 'IPv6';
|
34 | scopeid: number;
|
35 | }
|
36 | interface UserInfo<T> {
|
37 | username: T;
|
38 | uid: number;
|
39 | gid: number;
|
40 | shell: T;
|
41 | homedir: T;
|
42 | }
|
43 | type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6;
|
44 | /**
|
45 | * Returns the host name of the operating system as a string.
|
46 | * @since v0.3.3
|
47 | */
|
48 | function hostname(): string;
|
49 | /**
|
50 | * Returns an array containing the 1, 5, and 15 minute load averages.
|
51 | *
|
52 | * The load average is a measure of system activity calculated by the operating
|
53 | * system and expressed as a fractional number.
|
54 | *
|
55 | * The load average is a Unix-specific concept. On Windows, the return value is
|
56 | * always `[0, 0, 0]`.
|
57 | * @since v0.3.3
|
58 | */
|
59 | function loadavg(): number[];
|
60 | /**
|
61 | * Returns the system uptime in number of seconds.
|
62 | * @since v0.3.3
|
63 | */
|
64 | function uptime(): number;
|
65 | /**
|
66 | * Returns the amount of free system memory in bytes as an integer.
|
67 | * @since v0.3.3
|
68 | */
|
69 | function freemem(): number;
|
70 | /**
|
71 | * Returns the total amount of system memory in bytes as an integer.
|
72 | * @since v0.3.3
|
73 | */
|
74 | function totalmem(): number;
|
75 | /**
|
76 | * Returns an array of objects containing information about each logical CPU core.
|
77 | *
|
78 | * The properties included on each object include:
|
79 | *
|
80 | * ```js
|
81 | * [
|
82 | * {
|
83 | * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
|
84 | * speed: 2926,
|
85 | * times: {
|
86 | * user: 252020,
|
87 | * nice: 0,
|
88 | * sys: 30340,
|
89 | * idle: 1070356870,
|
90 | * irq: 0
|
91 | * }
|
92 | * },
|
93 | * {
|
94 | * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
|
95 | * speed: 2926,
|
96 | * times: {
|
97 | * user: 306960,
|
98 | * nice: 0,
|
99 | * sys: 26980,
|
100 | * idle: 1071569080,
|
101 | * irq: 0
|
102 | * }
|
103 | * },
|
104 | * {
|
105 | * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
|
106 | * speed: 2926,
|
107 | * times: {
|
108 | * user: 248450,
|
109 | * nice: 0,
|
110 | * sys: 21750,
|
111 | * idle: 1070919370,
|
112 | * irq: 0
|
113 | * }
|
114 | * },
|
115 | * {
|
116 | * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
|
117 | * speed: 2926,
|
118 | * times: {
|
119 | * user: 256880,
|
120 | * nice: 0,
|
121 | * sys: 19430,
|
122 | * idle: 1070905480,
|
123 | * irq: 20
|
124 | * }
|
125 | * },
|
126 | * ]
|
127 | * ```
|
128 | *
|
129 | * `nice` values are POSIX-only. On Windows, the `nice` values of all processors
|
130 | * are always 0.
|
131 | * @since v0.3.3
|
132 | */
|
133 | function cpus(): CpuInfo[];
|
134 | /**
|
135 | * Returns the operating system name as returned by [`uname(3)`](https://linux.die.net/man/3/uname). For example, it
|
136 | * returns `'Linux'` on Linux, `'Darwin'` on macOS, and `'Windows_NT'` on Windows.
|
137 | *
|
138 | * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for additional information
|
139 | * about the output of running [`uname(3)`](https://linux.die.net/man/3/uname) on various operating systems.
|
140 | * @since v0.3.3
|
141 | */
|
142 | function type(): string;
|
143 | /**
|
144 | * Returns the operating system as a string.
|
145 | *
|
146 | * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `GetVersionExW()` is used. See
|
147 | * [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information.
|
148 | * @since v0.3.3
|
149 | */
|
150 | function release(): string;
|
151 | /**
|
152 | * Returns an object containing network interfaces that have been assigned a
|
153 | * network address.
|
154 | *
|
155 | * Each key on the returned object identifies a network interface. The associated
|
156 | * value is an array of objects that each describe an assigned network address.
|
157 | *
|
158 | * The properties available on the assigned network address object include:
|
159 | *
|
160 | * ```js
|
161 | * {
|
162 | * lo: [
|
163 | * {
|
164 | * address: '127.0.0.1',
|
165 | * netmask: '255.0.0.0',
|
166 | * family: 'IPv4',
|
167 | * mac: '00:00:00:00:00:00',
|
168 | * internal: true,
|
169 | * cidr: '127.0.0.1/8'
|
170 | * },
|
171 | * {
|
172 | * address: '::1',
|
173 | * netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
|
174 | * family: 'IPv6',
|
175 | * mac: '00:00:00:00:00:00',
|
176 | * scopeid: 0,
|
177 | * internal: true,
|
178 | * cidr: '::1/128'
|
179 | * }
|
180 | * ],
|
181 | * eth0: [
|
182 | * {
|
183 | * address: '192.168.1.108',
|
184 | * netmask: '255.255.255.0',
|
185 | * family: 'IPv4',
|
186 | * mac: '01:02:03:0a:0b:0c',
|
187 | * internal: false,
|
188 | * cidr: '192.168.1.108/24'
|
189 | * },
|
190 | * {
|
191 | * address: 'fe80::a00:27ff:fe4e:66a1',
|
192 | * netmask: 'ffff:ffff:ffff:ffff::',
|
193 | * family: 'IPv6',
|
194 | * mac: '01:02:03:0a:0b:0c',
|
195 | * scopeid: 1,
|
196 | * internal: false,
|
197 | * cidr: 'fe80::a00:27ff:fe4e:66a1/64'
|
198 | * }
|
199 | * ]
|
200 | * }
|
201 | * ```
|
202 | * @since v0.6.0
|
203 | */
|
204 | function networkInterfaces(): NodeJS.Dict<NetworkInterfaceInfo[]>;
|
205 | /**
|
206 | * Returns the string path of the current user's home directory.
|
207 | *
|
208 | * On POSIX, it uses the `$HOME` environment variable if defined. Otherwise it
|
209 | * uses the [effective UID](https://en.wikipedia.org/wiki/User_identifier#Effective_user_ID) to look up the user's home directory.
|
210 | *
|
211 | * On Windows, it uses the `USERPROFILE` environment variable if defined.
|
212 | * Otherwise it uses the path to the profile directory of the current user.
|
213 | * @since v2.3.0
|
214 | */
|
215 | function homedir(): string;
|
216 | /**
|
217 | * Returns information about the currently effective user. On POSIX platforms,
|
218 | * this is typically a subset of the password file. The returned object includes
|
219 | * the `username`, `uid`, `gid`, `shell`, and `homedir`. On Windows, the `uid` and`gid` fields are `-1`, and `shell` is `null`.
|
220 | *
|
221 | * The value of `homedir` returned by `os.userInfo()` is provided by the operating
|
222 | * system. This differs from the result of `os.homedir()`, which queries
|
223 | * environment variables for the home directory before falling back to the
|
224 | * operating system response.
|
225 | *
|
226 | * Throws a `SystemError` if a user has no `username` or `homedir`.
|
227 | * @since v6.0.0
|
228 | */
|
229 | function userInfo(options: { encoding: 'buffer' }): UserInfo<Buffer>;
|
230 | function userInfo(options?: { encoding: BufferEncoding }): UserInfo<string>;
|
231 | type SignalConstants = {
|
232 | [key in NodeJS.Signals]: number;
|
233 | };
|
234 | namespace constants {
|
235 | const UV_UDP_REUSEADDR: number;
|
236 | namespace signals {}
|
237 | const signals: SignalConstants;
|
238 | namespace errno {
|
239 | const E2BIG: number;
|
240 | const EACCES: number;
|
241 | const EADDRINUSE: number;
|
242 | const EADDRNOTAVAIL: number;
|
243 | const EAFNOSUPPORT: number;
|
244 | const EAGAIN: number;
|
245 | const EALREADY: number;
|
246 | const EBADF: number;
|
247 | const EBADMSG: number;
|
248 | const EBUSY: number;
|
249 | const ECANCELED: number;
|
250 | const ECHILD: number;
|
251 | const ECONNABORTED: number;
|
252 | const ECONNREFUSED: number;
|
253 | const ECONNRESET: number;
|
254 | const EDEADLK: number;
|
255 | const EDESTADDRREQ: number;
|
256 | const EDOM: number;
|
257 | const EDQUOT: number;
|
258 | const EEXIST: number;
|
259 | const EFAULT: number;
|
260 | const EFBIG: number;
|
261 | const EHOSTUNREACH: number;
|
262 | const EIDRM: number;
|
263 | const EILSEQ: number;
|
264 | const EINPROGRESS: number;
|
265 | const EINTR: number;
|
266 | const EINVAL: number;
|
267 | const EIO: number;
|
268 | const EISCONN: number;
|
269 | const EISDIR: number;
|
270 | const ELOOP: number;
|
271 | const EMFILE: number;
|
272 | const EMLINK: number;
|
273 | const EMSGSIZE: number;
|
274 | const EMULTIHOP: number;
|
275 | const ENAMETOOLONG: number;
|
276 | const ENETDOWN: number;
|
277 | const ENETRESET: number;
|
278 | const ENETUNREACH: number;
|
279 | const ENFILE: number;
|
280 | const ENOBUFS: number;
|
281 | const ENODATA: number;
|
282 | const ENODEV: number;
|
283 | const ENOENT: number;
|
284 | const ENOEXEC: number;
|
285 | const ENOLCK: number;
|
286 | const ENOLINK: number;
|
287 | const ENOMEM: number;
|
288 | const ENOMSG: number;
|
289 | const ENOPROTOOPT: number;
|
290 | const ENOSPC: number;
|
291 | const ENOSR: number;
|
292 | const ENOSTR: number;
|
293 | const ENOSYS: number;
|
294 | const ENOTCONN: number;
|
295 | const ENOTDIR: number;
|
296 | const ENOTEMPTY: number;
|
297 | const ENOTSOCK: number;
|
298 | const ENOTSUP: number;
|
299 | const ENOTTY: number;
|
300 | const ENXIO: number;
|
301 | const EOPNOTSUPP: number;
|
302 | const EOVERFLOW: number;
|
303 | const EPERM: number;
|
304 | const EPIPE: number;
|
305 | const EPROTO: number;
|
306 | const EPROTONOSUPPORT: number;
|
307 | const EPROTOTYPE: number;
|
308 | const ERANGE: number;
|
309 | const EROFS: number;
|
310 | const ESPIPE: number;
|
311 | const ESRCH: number;
|
312 | const ESTALE: number;
|
313 | const ETIME: number;
|
314 | const ETIMEDOUT: number;
|
315 | const ETXTBSY: number;
|
316 | const EWOULDBLOCK: number;
|
317 | const EXDEV: number;
|
318 | const WSAEINTR: number;
|
319 | const WSAEBADF: number;
|
320 | const WSAEACCES: number;
|
321 | const WSAEFAULT: number;
|
322 | const WSAEINVAL: number;
|
323 | const WSAEMFILE: number;
|
324 | const WSAEWOULDBLOCK: number;
|
325 | const WSAEINPROGRESS: number;
|
326 | const WSAEALREADY: number;
|
327 | const WSAENOTSOCK: number;
|
328 | const WSAEDESTADDRREQ: number;
|
329 | const WSAEMSGSIZE: number;
|
330 | const WSAEPROTOTYPE: number;
|
331 | const WSAENOPROTOOPT: number;
|
332 | const WSAEPROTONOSUPPORT: number;
|
333 | const WSAESOCKTNOSUPPORT: number;
|
334 | const WSAEOPNOTSUPP: number;
|
335 | const WSAEPFNOSUPPORT: number;
|
336 | const WSAEAFNOSUPPORT: number;
|
337 | const WSAEADDRINUSE: number;
|
338 | const WSAEADDRNOTAVAIL: number;
|
339 | const WSAENETDOWN: number;
|
340 | const WSAENETUNREACH: number;
|
341 | const WSAENETRESET: number;
|
342 | const WSAECONNABORTED: number;
|
343 | const WSAECONNRESET: number;
|
344 | const WSAENOBUFS: number;
|
345 | const WSAEISCONN: number;
|
346 | const WSAENOTCONN: number;
|
347 | const WSAESHUTDOWN: number;
|
348 | const WSAETOOMANYREFS: number;
|
349 | const WSAETIMEDOUT: number;
|
350 | const WSAECONNREFUSED: number;
|
351 | const WSAELOOP: number;
|
352 | const WSAENAMETOOLONG: number;
|
353 | const WSAEHOSTDOWN: number;
|
354 | const WSAEHOSTUNREACH: number;
|
355 | const WSAENOTEMPTY: number;
|
356 | const WSAEPROCLIM: number;
|
357 | const WSAEUSERS: number;
|
358 | const WSAEDQUOT: number;
|
359 | const WSAESTALE: number;
|
360 | const WSAEREMOTE: number;
|
361 | const WSASYSNOTREADY: number;
|
362 | const WSAVERNOTSUPPORTED: number;
|
363 | const WSANOTINITIALISED: number;
|
364 | const WSAEDISCON: number;
|
365 | const WSAENOMORE: number;
|
366 | const WSAECANCELLED: number;
|
367 | const WSAEINVALIDPROCTABLE: number;
|
368 | const WSAEINVALIDPROVIDER: number;
|
369 | const WSAEPROVIDERFAILEDINIT: number;
|
370 | const WSASYSCALLFAILURE: number;
|
371 | const WSASERVICE_NOT_FOUND: number;
|
372 | const WSATYPE_NOT_FOUND: number;
|
373 | const WSA_E_NO_MORE: number;
|
374 | const WSA_E_CANCELLED: number;
|
375 | const WSAEREFUSED: number;
|
376 | }
|
377 | namespace priority {
|
378 | const PRIORITY_LOW: number;
|
379 | const PRIORITY_BELOW_NORMAL: number;
|
380 | const PRIORITY_NORMAL: number;
|
381 | const PRIORITY_ABOVE_NORMAL: number;
|
382 | const PRIORITY_HIGH: number;
|
383 | const PRIORITY_HIGHEST: number;
|
384 | }
|
385 | }
|
386 | const devNull: string;
|
387 | const EOL: string;
|
388 | /**
|
389 | * Returns the operating system CPU architecture for which the Node.js binary was
|
390 | * compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`, `'ppc64'`, `'s390'`, `'s390x'`, `'x32'`, and `'x64'`.
|
391 | *
|
392 | * The return value is equivalent to `process.arch`.
|
393 | * @since v0.5.0
|
394 | */
|
395 | function arch(): string;
|
396 | /**
|
397 | * Returns a string identifying the kernel version.
|
398 | *
|
399 | * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `RtlGetVersion()` is used, and if it is not
|
400 | * available, `GetVersionExW()` will be used. See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information.
|
401 | * @since v13.11.0, v12.17.0
|
402 | */
|
403 | function version(): string;
|
404 | /**
|
405 | * Returns a string identifying the operating system platform. The value is set
|
406 | * at compile time. Possible values are `'aix'`, `'darwin'`, `'freebsd'`,`'linux'`, `'openbsd'`, `'sunos'`, and `'win32'`.
|
407 | *
|
408 | * The return value is equivalent to `process.platform`.
|
409 | *
|
410 | * The value `'android'` may also be returned if Node.js is built on the Android
|
411 | * operating system. [Android support is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os).
|
412 | * @since v0.5.0
|
413 | */
|
414 | function platform(): NodeJS.Platform;
|
415 | /**
|
416 | * Returns the operating system's default directory for temporary files as a
|
417 | * string.
|
418 | * @since v0.9.9
|
419 | */
|
420 | function tmpdir(): string;
|
421 | /**
|
422 | * Returns a string identifying the endianness of the CPU for which the Node.js
|
423 | * binary was compiled.
|
424 | *
|
425 | * Possible values are `'BE'` for big endian and `'LE'` for little endian.
|
426 | * @since v0.9.4
|
427 | */
|
428 | function endianness(): 'BE' | 'LE';
|
429 | /**
|
430 | * Returns the scheduling priority for the process specified by `pid`. If `pid` is
|
431 | * not provided or is `0`, the priority of the current process is returned.
|
432 | * @since v10.10.0
|
433 | * @param [pid=0] The process ID to retrieve scheduling priority for.
|
434 | */
|
435 | function getPriority(pid?: number): number;
|
436 | /**
|
437 | * Attempts to set the scheduling priority for the process specified by `pid`. If`pid` is not provided or is `0`, the process ID of the current process is used.
|
438 | *
|
439 | * The `priority` input must be an integer between `-20` (high priority) and `19`(low priority). Due to differences between Unix priority levels and Windows
|
440 | * priority classes, `priority` is mapped to one of six priority constants in`os.constants.priority`. When retrieving a process priority level, this range
|
441 | * mapping may cause the return value to be slightly different on Windows. To avoid
|
442 | * confusion, set `priority` to one of the priority constants.
|
443 | *
|
444 | * On Windows, setting priority to `PRIORITY_HIGHEST` requires elevated user
|
445 | * privileges. Otherwise the set priority will be silently reduced to`PRIORITY_HIGH`.
|
446 | * @since v10.10.0
|
447 | * @param [pid=0] The process ID to set scheduling priority for.
|
448 | * @param priority The scheduling priority to assign to the process.
|
449 | */
|
450 | function setPriority(priority: number): void;
|
451 | function setPriority(pid: number, priority: number): void;
|
452 | }
|
453 | declare module 'node:os' {
|
454 | export * from 'os';
|
455 | }
|