MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1type ProcessEnv = {
2 [key: string]: string | undefined;
3} & {
4 toObject(): Record<string, string>;
5 toString(): string;
6};
7
8interface Features {
9 uv: boolean;
10 tls: string;
11 typescript: 'transform' | 'none';
12}
13
14interface Versions {
15 ant: string;
16 node: string;
17 brotli: string;
18 llhttp: string;
19 nghttp2: string;
20 simdjson: string;
21 pcre2: string;
22 libffi: string;
23 lmdb: string;
24 utf8proc: string;
25 zlib: string;
26 v8: string;
27 uv: string;
28 modules: string;
29 napi: string;
30 wamr: string;
31 boringssl: string;
32}
33
34interface Release {
35 name: string;
36}
37
38interface MemoryUsage {
39 rss: number;
40 heapTotal: number;
41 heapUsed: number;
42 external: number;
43 arrayBuffers: number;
44}
45
46interface CpuUsage {
47 user: number;
48 system: number;
49}
50
51interface ReadStream {
52 isTTY: boolean;
53 setRawMode(enable?: boolean): boolean;
54 setEncoding(encoding?: string): this;
55 resume(): this;
56 pause(): this;
57 on(event: string, listener: EventListener): this;
58 off(event: string, listener: EventListener): this;
59 removeListener(event: string, listener: EventListener): this;
60 removeAllListeners(event?: string): this;
61}
62
63interface WriteStream {
64 isTTY: boolean;
65 rows: number;
66 columns: number;
67 readableEncoding?: string;
68 setEncoding(encoding?: string): this;
69 write(data: string): boolean;
70 on(event: string, listener: EventListener): this;
71 once(event: string, listener: EventListener): this;
72 off(event: string, listener: EventListener): this;
73 removeListener(event: string, listener: EventListener): this;
74 removeAllListeners(event?: string): this;
75 getWindowSize(): [number, number];
76}
77
78interface StderrStream extends Omit<WriteStream, 'rows' | 'columns' | 'getWindowSize'> {}
79
80interface HrTime {
81 (time?: [number, number]): [number, number];
82 bigint(): bigint;
83}
84
85interface MemoryUsageFn {
86 (): MemoryUsage;
87 rss(): number;
88}
89
90interface Process {
91 env: ProcessEnv;
92 argv: string[];
93 execArgv: string[];
94 argv0: string;
95 execPath: string;
96 pid: number;
97 ppid: number;
98 platform: string;
99 arch: string;
100 version: string;
101 versions: Versions;
102 release: Release;
103 features: Features;
104
105 stdin: ReadStream;
106 stdout: WriteStream;
107 stderr: StderrStream;
108
109 exit(code?: number): never;
110 abort(): never;
111 cwd(): string;
112 chdir(directory: string): void;
113 uptime(): number;
114 hrtime: HrTime;
115 memoryUsage: MemoryUsageFn;
116 cpuUsage(previousValue?: CpuUsage): CpuUsage;
117 kill(pid: number, signal?: number | string): true;
118 umask(mask?: number): number;
119 dlopen(module: { exports?: unknown }, filename: string): void;
120
121 on(event: string, listener: EventListener): this;
122 addListener(event: string, listener: EventListener): this;
123 once(event: string, listener: EventListener): this;
124 off(event: string, listener: EventListener): this;
125 removeListener(event: string, listener: EventListener): this;
126 removeAllListeners(event?: string): this;
127 emit(event: string, ...args: unknown[]): boolean;
128 listenerCount(event: string): number;
129 setMaxListeners(n: number): this;
130 getMaxListeners(): number;
131
132 getuid(): number;
133 geteuid(): number;
134 getgid(): number;
135 getegid(): number;
136 getgroups(): number[];
137 setuid(id: number | string): void;
138 setgid(id: number | string): void;
139 seteuid(id: number | string): void;
140 setegid(id: number | string): void;
141 setgroups(groups: Array<number | string>): void;
142 initgroups(user: string, extraGroup: number | string): void;
143}
144
145declare const process: Process;