UNPKG

posix-node

Version:

Missing Posix Functions for Node.js (via a native module written in Zig)

197 lines (196 loc) 6.6 kB
/// <reference types="node" /> export interface Hostent { h_name: string; h_length: number; h_addrtype: number; h_addr_list: string[]; h_aliases: string[]; } export interface Sockaddr { sa_len: number; sa_family: number; sa_data: Buffer; } export interface Addrinfo extends Sockaddr { ai_flags: number; ai_family: number; ai_socktype: number; ai_protocol: number; ai_addrlen: number; ai_canonname?: string; } interface StatsVFS { f_bsize: number; f_frsize: number; f_blocks: number; f_bfree: number; f_bavail: number; f_files: number; f_ffree: number; f_favail: number; f_fsid: number; f_flag: number; f_namemax: number; } interface Termios { c_iflag: number; c_oflag: number; c_cflag: number; c_lflag: number; } declare type PosixSpawnFileActions = any[]; interface PosixSpawnAttributes { sched_priority?: number; schedpolicy?: number; flags?: number; pgroup?: number; sigmask?: Set<number> | number[]; sigdefault?: Set<number> | number[]; } interface PosixFunctions { getpid: () => number; constants: { [name: string]: number; }; alarm: (seconds: number) => number; chroot: (path: string) => void; getegid: () => number; geteuid: () => number; gethostname: () => string; getpgid: (number: any) => number; getpgrp: () => number; getppid: () => number; setpgid: (pid: number, pgid: number) => void; setregid: (rgid: number, egid: number) => void; setreuid: (ruid: number, euid: number) => void; setsid: () => number; setegid: (gid: number) => void; seteuid: (uid: number) => void; sethostname: (name: string) => void; sleep: (seconds: number) => number; usleep: (microseconds: number) => number; ttyname: (fd: number) => string; dup: (oldfd: number) => number; dup2: (oldfd: number, newfd: number) => number; chdir: (path: string) => void; getcwd: () => string; fork: () => number; close_event_loop: () => void; pipe: () => { readfd: number; writefd: number; }; pipe2: (flags: number) => { readfd: number; writefd: number; }; getresuid: () => { ruid: number; euid: number; suid: number; }; getresgid: () => { rgid: number; egid: number; sgid: number; }; setresgid: (rgid: number, egid: number, sgid: number) => void; setresuid: (ruid: number, euid: number, suid: number) => void; fcntlSetFlags: (fd: number, flags: number) => void; fcntlGetFlags: (fd: number) => number; execv: (pathname: string, argv: string[]) => number; execvp: (file: string, argv: string[]) => number; execve: (pathname: string, argv: string[], env: { [key: string]: string; }) => number; _execve: (pathname: string, argv: string[], envp: string[]) => number; fexecve: (fd: number, argv: string[], env: { [key: string]: string; }) => number; _fexecve: (fd: number, argv: string[], envp: string[]) => number; fork_exec: (args: { exec_array: string[]; argv: string[]; envp: string[]; cwd: string; p2cread: number; p2cwrite: number; c2pread: number; c2pwrite: number; errread: number; errwrite: number; errpipe_read: number; errpipe_write: number; fds_to_keep: number[]; err_map: number[]; WASI_FD_INFO: string; }) => number; set_inheritable: (fd: number, inheritable: boolean) => void; is_inheritable: (fd: number) => boolean; lockf: (fd: number, cmd: number, size: BigInt) => void; pause: () => number; if_indextoname: (ifindex: number) => string; if_nametoindex: (ifname: string) => number; if_nameindex: () => [number, string][]; _posix_spawn: (path: string, fileActions: any, attrs: any, argv: string[], envp: string[], // same format at system call p_version: boolean) => number; posix_spawn: (path: string, fileActions: PosixSpawnFileActions | undefined | null, attrs: PosixSpawnAttributes | undefined | null, argv: string[], envp: { [key: string]: string; } | string[]) => number; posix_spawnp: (path: string, fileActions: PosixSpawnFileActions | undefined | null, attrs: PosixSpawnAttributes | undefined | null, argv: string[], envp: { [key: string]: string; } | string[]) => number; wait: () => { wstatus: number; ret: number; }; wait3: (options: number) => { wstatus: number; ret: number; }; waitpid: (pid: number, options: number) => { wstatus: number; ret: number; }; login_tty: (fd: number) => void; statvfs: (path: string) => StatsVFS; fstatvfs: (fd: number) => StatsVFS; ctermid: () => string; gai_strerror: (errcode: number) => string; hstrerror: (errcode: number) => string; gethostbyname: (name: string) => Hostent; gethostbyaddr: (addr: string) => Hostent; getaddrinfo: (node: string, service: string, hints?: { flags?: number; family?: number; socktype?: number; protocol?: number; }) => Addrinfo[]; accept: (socket: number) => { fd: number; sockaddr: Sockaddr; }; bind: (socket: number, sockaddr: Sockaddr) => void; connect: (socket: number, sockaddr: Sockaddr) => void; getsockname: (socket: number) => Sockaddr; getpeername: (socket: number) => Sockaddr; listen: (socket: number, backlog: number) => void; recv: (socket: number, buffer: Buffer, flags: number) => number; send: (socket: number, buffer: Buffer, flags: number) => number; shutdown: (socket: number, how: number) => void; socket: (family: number, socktype: number, protocol: number) => number; getsockopt: (socket: number, level: number, option_name: number, max_len: number) => Buffer; setsockopt: (socket: number, level: number, option_name: number, option_value: Buffer) => void; getChar: () => string; enableRawInput: () => void; setEcho: (enabled: boolean) => void; makeStdinBlocking: () => void; tcgetattr: (fd: number) => Termios; tcsetattr: (fd: number, optional_actions: number, tio: Termios) => void; watchForSignal: (signal: number) => void; getSignalState: (signal: number) => boolean; pollSocket: (fd: number, events: number, timeout_ms: number) => void; } export declare type Posix = Partial<PosixFunctions>; declare let mod1: Posix; export default mod1;