WritableIO

TWritableIO
Bun

Symbol

SpawnOptions.WritableIO

type WritableIO = FileSink | number | undefined

Referenced types

interface FileSink

Fast incremental writer for files and pipes.

This uses the same interface as ArrayBufferSink, but writes to a file or pipe.

  • end(error?: Error): number | Promise<number>

    Close the file descriptor. This also flushes the internal buffer.

    @param error

    Optional error to associate with the close operation

    @returns

    Number of bytes written or a Promise resolving to the number of bytes

  • flush(): number | Promise<number>

    Flush the internal buffer, committing the data to disk or the pipe.

    @returns

    Number of bytes flushed or a Promise resolving to the number of bytes

  • ref(): void

    For FIFOs & pipes, this lets you decide whether Bun's process should remain alive until the pipe is closed.

    By default, it is automatically managed. While the stream is open, the process remains alive and once the other end hangs up or the stream closes, the process exits.

    If you previously called unref, you can call this again to re-enable automatic management.

    Internally, it will reference count the number of times this is called. By default, that number is 1

    If the file is not a FIFO or pipe, ref and unref do nothing. If the pipe is already closed, this does nothing.

  • start(options?: { highWaterMark: number }): void

    Start the file sink with provided options.

    @param options

    Configuration options for the file sink

  • unref(): void

    For FIFOs & pipes, this lets you decide whether Bun's process should remain alive until the pipe is closed.

    If you want to allow Bun's process to terminate while the stream is open, call this.

    If the file is not a FIFO or pipe, ref and unref do nothing. If the pipe is already closed, this does nothing.

  • write(chunk: string | ArrayBuffer | SharedArrayBuffer | ArrayBufferView<ArrayBufferLike>): number

    Write a chunk of data to the file.

    If the file descriptor is not writable yet, the data is buffered.

    @param chunk

    The data to write

    @returns

    Number of bytes written