export type ShellFunction = (input: Uint8Array) => Uint8Arrayexport type ShellExpression = | { toString(): string } | Array<ShellExpression> | string | { raw: string } | ReadableStreamexport interface BunShell { (strings: TemplateStringsArray, ...expressions: ShellExpression[]): BunShellPromise /** * Perform bash-like brace expansion on the given pattern. * @param pattern - Brace pattern to expand */ braces(pattern: string): string[] /** * Escape strings for input into shell commands. */ escape(input: string): string /** * Change the default environment variables for shells created by this instance. */ env(newEnv?: Record<string, string | undefined>): BunShell /** * Default working directory to use for shells created by this instance. */ cwd(newCwd?: string): BunShell /** * Configure the shell to not throw an exception on non-zero exit codes. */ nothrow(): BunShell /** * Configure whether or not the shell should throw an exception on non-zero exit codes. */ throws(shouldThrow: boolean): BunShell}export interface BunShellPromise extends Promise<BunShellOutput> { readonly stdin: WritableStream /** * Change the current working directory of the shell. */ cwd(newCwd: string): this /** * Set environment variables for the shell. */ env(newEnv: Record<string, string> | undefined): this /** * By default, the shell will write to the current process's stdout and stderr, as well as buffering that output. * This configures the shell to only buffer the output. */ quiet(): this /** * Read from stdout as a string, line by line * Automatically calls quiet() to disable echoing to stdout. */ lines(): AsyncIterable<string> /** * Read from stdout as a string. * Automatically calls quiet() to disable echoing to stdout. */ text(encoding?: BufferEncoding): Promise<string> /** * Read from stdout as a JSON object * Automatically calls quiet() */ json(): Promise<any> /** * Read from stdout as an ArrayBuffer * Automatically calls quiet() */ arrayBuffer(): Promise<ArrayBuffer> /** * Read from stdout as a Blob * Automatically calls quiet() */ blob(): Promise<Blob> /** * Configure the shell to not throw an exception on non-zero exit codes. */ nothrow(): this /** * Configure whether or not the shell should throw an exception on non-zero exit codes. */ throws(shouldThrow: boolean): this}export interface BunShellOutput { readonly stdout: Buffer readonly stderr: Buffer readonly exitCode: number /** * Read from stdout as a string */ text(encoding?: BufferEncoding): string /** * Read from stdout as a JSON object */ json(): any /** * Read from stdout as an ArrayBuffer */ arrayBuffer(): ArrayBuffer /** * Read from stdout as an Uint8Array */ bytes(): Uint8Array /** * Read from stdout as a Blob */ blob(): Blob}export type BunShellError = Error & BunShellOutput
export type ShellFunction = (input: Uint8Array) => Uint8Array
export type ShellExpression =
| { toString(): string }
| Array<ShellExpression>
| string
| { raw: string }
| ReadableStream
export interface BunShell {
(strings: TemplateStringsArray, ...expressions: ShellExpression[]): BunShellPromise
/**
* Perform bash-like brace expansion on the given pattern.
* @param pattern - Brace pattern to expand
*/
braces(pattern: string): string[]
/**
* Escape strings for input into shell commands.
*/
escape(input: string): string
/**
* Change the default environment variables for shells created by this instance.
*/
env(newEnv?: Record<string, string | undefined>): BunShell
/**
* Default working directory to use for shells created by this instance.
*/
cwd(newCwd?: string): BunShell
/**
* Configure the shell to not throw an exception on non-zero exit codes.
*/
nothrow(): BunShell
/**
* Configure whether or not the shell should throw an exception on non-zero exit codes.
*/
throws(shouldThrow: boolean): BunShell
}
export interface BunShellPromise extends Promise<BunShellOutput> {
readonly stdin: WritableStream
/**
* Change the current working directory of the shell.
*/
cwd(newCwd: string): this
/**
* Set environment variables for the shell.
*/
env(newEnv: Record<string, string> | undefined): this
/**
* By default, the shell will write to the current process's stdout and stderr, as well as buffering that output.
* This configures the shell to only buffer the output.
*/
quiet(): this
/**
* Read from stdout as a string, line by line
* Automatically calls quiet() to disable echoing to stdout.
*/
lines(): AsyncIterable<string>
/**
* Read from stdout as a string.
* Automatically calls quiet() to disable echoing to stdout.
*/
text(encoding?: BufferEncoding): Promise<string>
/**
* Read from stdout as a JSON object
* Automatically calls quiet()
*/
json(): Promise<any>
/**
* Read from stdout as an ArrayBuffer
* Automatically calls quiet()
*/
arrayBuffer(): Promise<ArrayBuffer>
/**
* Read from stdout as a Blob
* Automatically calls quiet()
*/
blob(): Promise<Blob>
/**
* Configure the shell to not throw an exception on non-zero exit codes.
*/
nothrow(): this
/**
* Configure whether or not the shell should throw an exception on non-zero exit codes.
*/
throws(shouldThrow: boolean): this
}
export interface BunShellOutput {
readonly stdout: Buffer
readonly stderr: Buffer
readonly exitCode: number
/**
* Read from stdout as a string
*/
text(encoding?: BufferEncoding): string
/**
* Read from stdout as a JSON object
*/
json(): any
/**
* Read from stdout as an ArrayBuffer
*/
arrayBuffer(): ArrayBuffer
/**
* Read from stdout as an Uint8Array
*/
bytes(): Uint8Array
/**
* Read from stdout as a Blob
*/
blob(): Blob
}
export type BunShellError = Error & BunShellOutput