@adviser/cement - v0.0.0
    Preparing search index...

    Class FanoutWriteStream

    WritableStreamDefaultWriter that multiplexes writes to multiple underlying writers.

    FanoutWriteStream broadcasts all write operations to an array of writers simultaneously. All operations (write, close, abort, releaseLock) are applied to all underlying writers. Useful for scenarios like logging to multiple destinations, streaming to multiple consumers, or maintaining redundant copies of stream data.

    // Write to both file and console simultaneously
    const fileStream = new WritableStream({ ... });
    const consoleStream = new ConsoleWriterStream();

    const fanout = new FanoutWriteStream([
    fileStream.getWriter(),
    consoleStream.getWriter()
    ]);

    // This writes to both destinations
    await fanout.write(new TextEncoder().encode('Log message'));

    // Close all writers
    await fanout.close();
    // Mirror stream data to multiple endpoints
    const backupWriter = backupStream.getWriter();
    const primaryWriter = primaryStream.getWriter();
    const metricsWriter = metricsStream.getWriter();

    const fanout = new FanoutWriteStream([
    primaryWriter,
    backupWriter,
    metricsWriter
    ]);

    // All three streams receive the data
    for (const chunk of dataChunks) {
    await fanout.write(chunk);
    }

    Implements

    • WritableStreamDefaultWriter<Uint8Array>
    Index

    Constructors

    Properties

    _writers: WritableStreamDefaultWriter<Uint8Array<ArrayBufferLike>>[]
    ready: Promise<never>

    The ready read-only property of the WritableStreamDefaultWriter interface returns a Promise that resolves when the desired size of the stream's internal queue transitions from non-positive to positive, signaling that it is no longer applying backpressure.

    MDN Reference

    closed: Promise<never>

    The closed read-only property of the WritableStreamDefaultWriter interface returns a Promise that fulfills if the stream becomes closed, or rejects if the stream errors or the writer's lock is released.

    MDN Reference

    desiredSize: number | null = null

    The desiredSize read-only property of the WritableStreamDefaultWriter interface returns the desired size required to fill the stream's internal queue.

    MDN Reference

    Methods

    • The abort() method of the WritableStreamDefaultWriter interface aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be immediately moved to an error state, with any queued writes discarded.

      MDN Reference

      Parameters

      • Optionalreason: unknown

      Returns Promise<void>

    • The close() method of the WritableStreamDefaultWriter interface closes the associated writable stream.

      MDN Reference

      Returns Promise<void>

    • The releaseLock() method of the WritableStreamDefaultWriter interface releases the writer's lock on the corresponding stream. After the lock is released, the writer is no longer active. If the associated stream is errored when the lock is released, the writer will appear errored in the same way from now on; otherwise, the writer will appear closed.

      MDN Reference

      Returns void

    • The write() method of the WritableStreamDefaultWriter interface writes a passed chunk of data to a WritableStream and its underlying sink, then returns a Promise that resolves to indicate the success or failure of the write operation.

      MDN Reference

      Parameters

      • Optionalchunk: Uint8Array<ArrayBufferLike>

      Returns Promise<void>