NetworkSink

Bun

Symbol

NetworkSink

interface NetworkSink

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>

    Finish the upload. This also flushes the internal buffer.

    @param error

    Optional error to associate with the end 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 the network.

    @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

  • stat(): Promise<Stats>

    Get the stat of the file.

    @returns

    Promise resolving to the file stats

  • 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 network.

    If the network is not writable yet, the data is buffered.

    @param chunk

    The data to write

    @returns

    Number of bytes written