bun-types
Version:
Type definitions and documentation for Bun, an incredibly fast JavaScript runtime
207 lines (196 loc) • 6.98 kB
TypeScript
export {};
declare global {
namespace NodeJS {
interface ProcessEnv extends Bun.Env, ImportMetaEnv {}
interface Process {
readonly version: string;
browser: boolean;
/**
* Whether you are using Bun
*/
isBun: true;
/**
* The current git sha of Bun
*/
revision: string;
reallyExit(code?: number): never;
dlopen(module: { exports: any }, filename: string, flags?: number): void;
_exiting: boolean;
noDeprecation: boolean;
binding(m: "constants"): {
os: typeof import("node:os").constants;
fs: typeof import("node:fs").constants;
crypto: typeof import("node:crypto").constants;
zlib: typeof import("node:zlib").constants;
trace: {
TRACE_EVENT_PHASE_BEGIN: number;
TRACE_EVENT_PHASE_END: number;
TRACE_EVENT_PHASE_COMPLETE: number;
TRACE_EVENT_PHASE_INSTANT: number;
TRACE_EVENT_PHASE_ASYNC_BEGIN: number;
TRACE_EVENT_PHASE_ASYNC_STEP_INTO: number;
TRACE_EVENT_PHASE_ASYNC_STEP_PAST: number;
TRACE_EVENT_PHASE_ASYNC_END: number;
TRACE_EVENT_PHASE_NESTABLE_ASYNC_BEGIN: number;
TRACE_EVENT_PHASE_NESTABLE_ASYNC_END: number;
TRACE_EVENT_PHASE_NESTABLE_ASYNC_INSTANT: number;
TRACE_EVENT_PHASE_FLOW_BEGIN: number;
TRACE_EVENT_PHASE_FLOW_STEP: number;
TRACE_EVENT_PHASE_FLOW_END: number;
TRACE_EVENT_PHASE_METADATA: number;
TRACE_EVENT_PHASE_COUNTER: number;
TRACE_EVENT_PHASE_SAMPLE: number;
TRACE_EVENT_PHASE_CREATE_OBJECT: number;
TRACE_EVENT_PHASE_SNAPSHOT_OBJECT: number;
TRACE_EVENT_PHASE_DELETE_OBJECT: number;
TRACE_EVENT_PHASE_MEMORY_DUMP: number;
TRACE_EVENT_PHASE_MARK: number;
TRACE_EVENT_PHASE_CLOCK_SYNC: number;
TRACE_EVENT_PHASE_ENTER_CONTEXT: number;
TRACE_EVENT_PHASE_LEAVE_CONTEXT: number;
TRACE_EVENT_PHASE_LINK_IDS: number;
};
};
binding(m: "uv"): {
errname(code: number): string;
UV_E2BIG: number;
UV_EACCES: number;
UV_EADDRINUSE: number;
UV_EADDRNOTAVAIL: number;
UV_EAFNOSUPPORT: number;
UV_EAGAIN: number;
UV_EAI_ADDRFAMILY: number;
UV_EAI_AGAIN: number;
UV_EAI_BADFLAGS: number;
UV_EAI_BADHINTS: number;
UV_EAI_CANCELED: number;
UV_EAI_FAIL: number;
UV_EAI_FAMILY: number;
UV_EAI_MEMORY: number;
UV_EAI_NODATA: number;
UV_EAI_NONAME: number;
UV_EAI_OVERFLOW: number;
UV_EAI_PROTOCOL: number;
UV_EAI_SERVICE: number;
UV_EAI_SOCKTYPE: number;
UV_EALREADY: number;
UV_EBADF: number;
UV_EBUSY: number;
UV_ECANCELED: number;
UV_ECHARSET: number;
UV_ECONNABORTED: number;
UV_ECONNREFUSED: number;
UV_ECONNRESET: number;
UV_EDESTADDRREQ: number;
UV_EEXIST: number;
UV_EFAULT: number;
UV_EFBIG: number;
UV_EHOSTUNREACH: number;
UV_EINTR: number;
UV_EINVAL: number;
UV_EIO: number;
UV_EISCONN: number;
UV_EISDIR: number;
UV_ELOOP: number;
UV_EMFILE: number;
UV_EMSGSIZE: number;
UV_ENAMETOOLONG: number;
UV_ENETDOWN: number;
UV_ENETUNREACH: number;
UV_ENFILE: number;
UV_ENOBUFS: number;
UV_ENODEV: number;
UV_ENOENT: number;
UV_ENOMEM: number;
UV_ENONET: number;
UV_ENOPROTOOPT: number;
UV_ENOSPC: number;
UV_ENOSYS: number;
UV_ENOTCONN: number;
UV_ENOTDIR: number;
UV_ENOTEMPTY: number;
UV_ENOTSOCK: number;
UV_ENOTSUP: number;
UV_EOVERFLOW: number;
UV_EPERM: number;
UV_EPIPE: number;
UV_EPROTO: number;
UV_EPROTONOSUPPORT: number;
UV_EPROTOTYPE: number;
UV_ERANGE: number;
UV_EROFS: number;
UV_ESHUTDOWN: number;
UV_ESPIPE: number;
UV_ESRCH: number;
UV_ETIMEDOUT: number;
UV_ETXTBSY: number;
UV_EXDEV: number;
UV_UNKNOWN: number;
UV_EOF: number;
UV_ENXIO: number;
UV_EMLINK: number;
UV_EHOSTDOWN: number;
UV_EREMOTEIO: number;
UV_ENOTTY: number;
UV_EFTYPE: number;
UV_EILSEQ: number;
UV_ESOCKTNOSUPPORT: number;
UV_ENODATA: number;
UV_EUNATCH: number;
};
binding(m: string): object;
}
interface ProcessVersions extends Dict<string> {
bun: string;
}
}
}
declare module "fs/promises" {
function exists(path: Bun.PathLike): Promise<boolean>;
}
declare module "tls" {
interface BunConnectionOptions extends Omit<ConnectionOptions, "key" | "ca" | "tls" | "cert"> {
/**
* Optionally override the trusted CA certificates. Default is to trust
* the well-known CAs curated by Mozilla. Mozilla's CAs are completely
* replaced when CAs are explicitly specified using this option.
*/
ca?: string | Buffer | NodeJS.TypedArray | Bun.BunFile | Array<string | Buffer | Bun.BunFile> | undefined;
/**
* Cert chains in PEM format. One cert chain should be provided per
* private key. Each cert chain should consist of the PEM formatted
* certificate for a provided private key, followed by the PEM
* formatted intermediate certificates (if any), in order, and not
* including the root CA (the root CA must be pre-known to the peer,
* see ca). When providing multiple cert chains, they do not have to
* be in the same order as their private keys in key. If the
* intermediate certificates are not provided, the peer will not be
* able to validate the certificate, and the handshake will fail.
*/
cert?:
| string
| Buffer
| NodeJS.TypedArray
| Bun.BunFile
| Array<string | Buffer | NodeJS.TypedArray | Bun.BunFile>
| undefined;
/**
* Private keys in PEM format. PEM allows the option of private keys
* being encrypted. Encrypted keys will be decrypted with
* options.passphrase. Multiple keys using different algorithms can be
* provided either as an array of unencrypted key strings or buffers,
* or an array of objects in the form {pem: <string|buffer>[,
* passphrase: <string>]}. The object form can only occur in an array.
* object.passphrase is optional. Encrypted keys will be decrypted with
* object.passphrase if provided, or options.passphrase if it is not.
*/
key?:
| string
| Buffer
| Bun.BunFile
| NodeJS.TypedArray
| Array<string | Buffer | Bun.BunFile | NodeJS.TypedArray | KeyObject>
| undefined;
}
function connect(options: BunConnectionOptions, secureConnectListener?: () => void): TLSSocket;
}