Node SDK

Interface WritableStream<T>

Legend

  • Namespace
  • Variable
  • Function
  • Function with type parameter
  • Type alias
  • Type alias with type parameter
  • Interface
  • Interface with type parameter
  • Method
  • Enumeration
  • Class

A WriteableStream consume events as the last step of the pipeline, ending the pipe. It is an RStreams-specific wrapper interface that inherits from the Node library's fundament Writable stream interface, the most abstract sink pipeline step definition in Node. You will see this type in various type signatures. For example, the last pipeline step in a StreamUtil.pipe is always a WriteableStream, since the pipe needs a sink or nothing will flow in the pipe (sinks pull from previous pipe steps, causing flow in the pipe).

Type parameters

  • T

    The type of data being pushed into the WriteableStream sink to be consumed

Hierarchy

  • Writable
    • WritableStream

Index

Properties

destroyed: boolean

Is true after writable.destroy() has been called.

since

v8.0.0

writable: boolean

Is true if it is safe to call writable.write(), which means the stream has not been destroyed, errored or ended.

since

v11.4.0

writableCorked: number

Number of times writable.uncork() needs to be called in order to fully uncork the stream.

since

v13.2.0, v12.16.0

writableEnded: boolean

Is true after writable.end() has been called. This property does not indicate whether the data has been flushed, for this use writable.writableFinished instead.

since

v12.9.0

writableFinished: boolean

Is set to true immediately before the 'finish' event is emitted.

since

v12.6.0

writableHighWaterMark: number

Return the value of highWaterMark passed when creating this Writable.

since

v9.3.0

writableLength: number

This property contains the number of bytes (or objects) in the queue ready to be written. The value provides introspection data regarding the status of the highWaterMark.

since

v9.4.0

writableObjectMode: boolean

Getter for the property objectMode of a given Writable stream.

since

v12.3.0

Methods

  • _construct(callback: (error?: Error) => void): void
  • Parameters

    • callback: (error?: Error) => void
        • (error?: Error): void
        • Parameters

          • Optional error: Error

          Returns void

    Returns void

  • _destroy(error: Error, callback: (error?: Error) => void): void
  • Parameters

    • error: Error
    • callback: (error?: Error) => void
        • (error?: Error): void
        • Parameters

          • Optional error: Error

          Returns void

    Returns void

  • _final(callback: (error?: Error) => void): void
  • Parameters

    • callback: (error?: Error) => void
        • (error?: Error): void
        • Parameters

          • Optional error: Error

          Returns void

    Returns void

  • _write(chunk: T, encoding: BufferEncoding, callback?: ErrorCallback): void
  • Internal write method for stream buffer. Don't use.

    Parameters

    • chunk: T

      The object to push into the stream

    • encoding: BufferEncoding

      Not needed due to object mode

    • Optional callback: ErrorCallback

      Will call callback if there's an error

    Returns void

  • _writev(chunks: { chunk: any; encoding: BufferEncoding }[], callback: (error?: Error) => void): void
  • Parameters

    • chunks: { chunk: any; encoding: BufferEncoding }[]
    • callback: (error?: Error) => void
        • (error?: Error): void
        • Parameters

          • Optional error: Error

          Returns void

    Returns void

  • addListener(event: "close", listener: () => void): WritableStream<T>
  • addListener(event: "drain", listener: () => void): WritableStream<T>
  • addListener(event: "error", listener: (err: Error) => void): WritableStream<T>
  • addListener(event: "finish", listener: () => void): WritableStream<T>
  • addListener(event: "pipe", listener: (src: Readable) => void): WritableStream<T>
  • addListener(event: "unpipe", listener: (src: Readable) => void): WritableStream<T>
  • addListener(event: string | symbol, listener: (...args: any[]) => void): WritableStream<T>
  • Event emitter The defined events on documents including:

    1. close
    2. drain
    3. error
    4. finish
    5. pipe
    6. unpipe

    Parameters

    • event: "close"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "drain"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "error"
    • listener: (err: Error) => void
        • (err: Error): void
        • Parameters

          • err: Error

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "finish"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "pipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "unpipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • cork(): void
  • The writable.cork() method forces all written data to be buffered in memory. The buffered data will be flushed when either the uncork or end methods are called.

    The primary intent of writable.cork() is to accommodate a situation in which several small chunks are written to the stream in rapid succession. Instead of immediately forwarding them to the underlying destination, writable.cork()buffers all the chunks until writable.uncork() is called, which will pass them all to writable._writev(), if present. This prevents a head-of-line blocking situation where data is being buffered while waiting for the first small chunk to be processed. However, use of writable.cork() without implementingwritable._writev() may have an adverse effect on throughput.

    See also: writable.uncork(), writable._writev().

    since

    v0.11.2

    Returns void

  • Destroy the stream. Optionally emit an 'error' event, and emit a 'close'event (unless emitClose is set to false). After this call, the writable stream has ended and subsequent calls to write() or end() will result in an ERR_STREAM_DESTROYED error. This is a destructive and immediate way to destroy a stream. Previous calls towrite() may not have drained, and may trigger an ERR_STREAM_DESTROYED error. Use end() instead of destroy if data should flush before close, or wait for the 'drain' event before destroying the stream.

    Once destroy() has been called any further calls will be a no-op and no further errors except from _destroy() may be emitted as 'error'.

    Implementors should not override this method, but instead implement writable._destroy().

    since

    v8.0.0

    Parameters

    • Optional error: Error

      Optional, an error to emit with 'error' event.

    Returns WritableStream<T>

  • emit(event: "close"): boolean
  • emit(event: "drain"): boolean
  • emit(event: "error", err: Error): boolean
  • emit(event: "finish"): boolean
  • emit(event: "pipe", src: Readable): boolean
  • emit(event: "unpipe", src: Readable): boolean
  • emit(event: string | symbol, ...args: any[]): boolean
  • Parameters

    • event: "close"

    Returns boolean

  • Parameters

    • event: "drain"

    Returns boolean

  • Parameters

    • event: "error"
    • err: Error

    Returns boolean

  • Parameters

    • event: "finish"

    Returns boolean

  • Parameters

    • event: "pipe"
    • src: Readable

    Returns boolean

  • Parameters

    • event: "unpipe"
    • src: Readable

    Returns boolean

  • Parameters

    • event: string | symbol
    • Rest ...args: any[]

    Returns boolean

  • Call this to end the stream and a callback is called when the stream is flushed, meaning everything has finished clearing out of the pipe.

    Parameters

    • Optional cb: () => void

      The function to call when the pipe has been flushed

        • (): void
        • Returns void

    Returns WritableStream<T>

  • This allows a developer to write one final chunk to the stream and then immediately close the pipe, causing the pipe to flush with this last event in it, meaning everything has finished traveling through and out the pipe.

    Parameters

    • chunk: T

      The object to push into the stream

    • Optional cb: () => void

      The function to call when the pipe has been flushed

        • (): void
        • Returns void

    Returns WritableStream<T>

  • This allows a developer to write one final chunk to the stream and then immediately close the pipe, causing the pipe to flush with this last event in it, meaning everything has finished traveling through and out the pipe.

    Parameters

    • chunk: T

      The object to push into the stream

    • encoding: BufferEncoding

      Not needed due to object mode of stream

    • Optional cb: () => void

      The function to call when the pipe has been flushed

        • (): void
        • Returns void

    Returns WritableStream<T>

  • eventNames(): (string | symbol)[]
  • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

    const EventEmitter = require('events');
    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ]
    since

    v6.0.0

    Returns (string | symbol)[]

  • getMaxListeners(): number
  • Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to {@link defaultMaxListeners}.

    since

    v1.0.0

    Returns number

  • listenerCount(eventName: string | symbol): number
  • Returns the number of listeners listening to the event named eventName.

    since

    v3.2.0

    Parameters

    • eventName: string | symbol

      The name of the event being listened for

    Returns number

  • listeners(eventName: string | symbol): Function[]
  • Returns a copy of the array of listeners for the event named eventName.

    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ]
    since

    v0.1.26

    Parameters

    • eventName: string | symbol

    Returns Function[]

  • off(eventName: string | symbol, listener: (...args: any[]) => void): WritableStream<T>
  • Alias for emitter.removeListener().

    since

    v10.0.0

    Parameters

    • eventName: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "close"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "drain"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "error"
    • listener: (err: Error) => void
        • (err: Error): void
        • Parameters

          • err: Error

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "finish"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "pipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "unpipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "close"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "drain"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "error"
    • listener: (err: Error) => void
        • (err: Error): void
        • Parameters

          • err: Error

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "finish"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "pipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "unpipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • pipe<T>(destination: T, options?: { end?: boolean }): T
  • Type parameters

    • T: WritableStream<T>

    Parameters

    • destination: T
    • Optional options: { end?: boolean }
      • Optional end?: boolean

    Returns T

  • prependListener(event: "close", listener: () => void): WritableStream<T>
  • prependListener(event: "drain", listener: () => void): WritableStream<T>
  • prependListener(event: "error", listener: (err: Error) => void): WritableStream<T>
  • prependListener(event: "finish", listener: () => void): WritableStream<T>
  • prependListener(event: "pipe", listener: (src: Readable) => void): WritableStream<T>
  • prependListener(event: "unpipe", listener: (src: Readable) => void): WritableStream<T>
  • prependListener(event: string | symbol, listener: (...args: any[]) => void): WritableStream<T>
  • Parameters

    • event: "close"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "drain"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "error"
    • listener: (err: Error) => void
        • (err: Error): void
        • Parameters

          • err: Error

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "finish"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "pipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "unpipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • prependOnceListener(event: "close", listener: () => void): WritableStream<T>
  • prependOnceListener(event: "drain", listener: () => void): WritableStream<T>
  • prependOnceListener(event: "error", listener: (err: Error) => void): WritableStream<T>
  • prependOnceListener(event: "finish", listener: () => void): WritableStream<T>
  • prependOnceListener(event: "pipe", listener: (src: Readable) => void): WritableStream<T>
  • prependOnceListener(event: "unpipe", listener: (src: Readable) => void): WritableStream<T>
  • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): WritableStream<T>
  • Parameters

    • event: "close"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "drain"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "error"
    • listener: (err: Error) => void
        • (err: Error): void
        • Parameters

          • err: Error

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "finish"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "pipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "unpipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • rawListeners(eventName: string | symbol): Function[]
  • Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log');
    since

    v9.4.0

    Parameters

    • eventName: string | symbol

    Returns Function[]

  • Removes all listeners, or those of the specified eventName.

    It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

    Returns a reference to the EventEmitter, so that calls can be chained.

    since

    v0.1.26

    Parameters

    • Optional event: string | symbol

    Returns WritableStream<T>

  • removeListener(event: "close", listener: () => void): WritableStream<T>
  • removeListener(event: "drain", listener: () => void): WritableStream<T>
  • removeListener(event: "error", listener: (err: Error) => void): WritableStream<T>
  • removeListener(event: "finish", listener: () => void): WritableStream<T>
  • removeListener(event: "pipe", listener: (src: Readable) => void): WritableStream<T>
  • removeListener(event: "unpipe", listener: (src: Readable) => void): WritableStream<T>
  • removeListener(event: string | symbol, listener: (...args: any[]) => void): WritableStream<T>
  • Parameters

    • event: "close"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "drain"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "error"
    • listener: (err: Error) => void
        • (err: Error): void
        • Parameters

          • err: Error

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "finish"
    • listener: () => void
        • (): void
        • Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "pipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: "unpipe"
    • listener: (src: Readable) => void
        • (src: Readable): void
        • Parameters

          • src: Readable

          Returns void

    Returns WritableStream<T>

  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns WritableStream<T>

  • The writable.setDefaultEncoding() method sets the default encoding for a Writable stream.

    since

    v0.11.15

    Parameters

    • encoding: BufferEncoding

      The new default encoding

    Returns WritableStream<T>

  • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    Returns a reference to the EventEmitter, so that calls can be chained.

    since

    v0.3.5

    Parameters

    • n: number

    Returns WritableStream<T>

  • uncork(): void
  • The writable.uncork() method flushes all data buffered since cork was called.

    When using writable.cork() and writable.uncork() to manage the buffering of writes to a stream, it is recommended that calls to writable.uncork() be deferred using process.nextTick(). Doing so allows batching of allwritable.write() calls that occur within a given Node.js event loop phase.

    stream.cork();
    stream.write('some ');
    stream.write('data ');
    process.nextTick(() => stream.uncork());

    If the writable.cork() method is called multiple times on a stream, the same number of calls to writable.uncork() must be called to flush the buffered data.

    stream.cork();
    stream.write('some ');
    stream.cork();
    stream.write('data ');
    process.nextTick(() => {
    stream.uncork();
    // The data will not be flushed until uncork() is called a second time.
    stream.uncork();
    });

    See also: writable.cork().

    since

    v0.11.2

    Returns void

  • write(chunk: T, callback?: (error: Error) => void): boolean
  • write(chunk: T, encoding: BufferEncoding, callback?: (error: Error) => void): boolean
  • Writes data to the stream.

    Parameters

    • chunk: T

      The object to push into the stream

    • Optional callback: (error: Error) => void

      Will call callback if there's an error

        • (error: Error): void
        • Parameters

          • error: Error

          Returns void

    Returns boolean

    true if more events can be written and false if you need to back off sending events

  • Writes data to the stream.

    Parameters

    • chunk: T

      The object to push into the stream

    • encoding: BufferEncoding

      Not needed due to object mode of stream

    • Optional callback: (error: Error) => void

      Optional for RStreams, will call callback if there's an error.

        • (error: Error): void
        • Parameters

          • error: Error

          Returns void

    Returns boolean

    true if more events can be written and false if you need to back off sending events

Generated using TypeDoc