class internal.Duplex
implements WritableBase
extends ReadableBase
Duplex streams are streams that implement both the Readable
and Writable
interfaces.
Examples of Duplex
streams include:
TCP sockets
zlib streams
crypto streams
Constructors #
new
#Duplex(opts?: DuplexOptions)
Properties #
#allowHalfOpen: boolean
If false
then the stream will automatically end the writable side when the
readable side ends. Set initially by the allowHalfOpen
constructor option,
which defaults to true
.
This can be changed manually to change the half-open behavior of an existing
Duplex
stream instance, but must be changed before the 'end'
event is emitted.
readonly
#writableCorked: number
readonly
#writableEnded: boolean
readonly
#writableFinished: boolean
readonly
#writableHighWaterMark: number
readonly
#writableLength: number
readonly
#writableNeedDrain: boolean
readonly
#writableObjectMode: boolean
Methods #
#addListener(event: "close",listener: () => void,): this
Event emitter The defined events on documents including:
- close
- data
- drain
- end
- error
- finish
- pause
- pipe
- readable
- resume
- unpipe
#addListener(event: "data",listener: (chunk: any) => void,): this
#addListener(event: "drain",listener: () => void,): this
#addListener(event: "end",listener: () => void,): this
#addListener(event: "error",listener: (err: Error) => void,): this
#addListener(event: "finish",listener: () => void,): this
#addListener(event: "pause",listener: () => void,): this
#addListener(event: "pipe",listener: (src: Readable) => void,): this
#addListener(event: "readable",listener: () => void,): this
#addListener(event: "resume",listener: () => void,): this
#addListener(event: "unpipe",listener: (src: Readable) => void,): this
#addListener(event: string | symbol,listener: (...args: any[]) => void,): this
#prependListener(event: "close",listener: () => void,): this
#prependListener(event: "data",listener: (chunk: any) => void,): this
#prependListener(event: "drain",listener: () => void,): this
#prependListener(event: "end",listener: () => void,): this
#prependListener(event: "error",listener: (err: Error) => void,): this
#prependListener(event: "finish",listener: () => void,): this
#prependListener(event: "pause",listener: () => void,): this
#prependListener(event: "pipe",listener: (src: Readable) => void,): this
#prependListener(event: "readable",listener: () => void,): this
#prependListener(event: "resume",listener: () => void,): this
#prependListener(event: "unpipe",listener: (src: Readable) => void,): this
#prependListener(event: string | symbol,listener: (...args: any[]) => void,): this
#prependOnceListener(event: "close",listener: () => void,): this
#prependOnceListener(event: "data",listener: (chunk: any) => void,): this
#prependOnceListener(event: "drain",listener: () => void,): this
#prependOnceListener(event: "end",listener: () => void,): this
#prependOnceListener(event: "error",listener: (err: Error) => void,): this
#prependOnceListener(event: "finish",listener: () => void,): this
#prependOnceListener(event: "pause",listener: () => void,): this
#prependOnceListener(event: "pipe",listener: (src: Readable) => void,): this
#prependOnceListener(event: "readable",listener: () => void,): this
#prependOnceListener(event: "resume",listener: () => void,): this
#prependOnceListener(event: "unpipe",listener: (src: Readable) => void,): this
#prependOnceListener(event: string | symbol,listener: (...args: any[]) => void,): this
#removeListener(event: "close",listener: () => void,): this
#removeListener(event: "data",listener: (chunk: any) => void,): this
#removeListener(event: "drain",listener: () => void,): this
#removeListener(event: "end",listener: () => void,): this
#removeListener(event: "error",listener: (err: Error) => void,): this
#removeListener(event: "finish",listener: () => void,): this
#removeListener(event: "pause",listener: () => void,): this
#removeListener(event: "pipe",listener: (src: Readable) => void,): this
#removeListener(event: "readable",listener: () => void,): this
#removeListener(event: "resume",listener: () => void,): this
#removeListener(event: "unpipe",listener: (src: Readable) => void,): this
#removeListener(event: string | symbol,listener: (...args: any[]) => void,): this
#setDefaultEncoding(encoding: BufferEncoding): this
Static Methods #
A utility method for creating duplex streams.
Stream
converts writable stream into writableDuplex
and readable stream toDuplex
.Blob
converts into readableDuplex
.string
converts into readableDuplex
.ArrayBuffer
converts into readableDuplex
.AsyncIterable
converts into a readableDuplex
. Cannot yieldnull
.AsyncGeneratorFunction
converts into a readable/writable transformDuplex
. Must take a sourceAsyncIterable
as first parameter. Cannot yieldnull
.AsyncFunction
converts into a writableDuplex
. Must return eithernull
orundefined
Object ({ writable, readable })
convertsreadable
andwritable
intoStream
and then combines them intoDuplex
where theDuplex
will write to thewritable
and read from thereadable
.Promise
converts into readableDuplex
. Valuenull
is ignored.
#fromWeb(duplexStream: { readable: streamWeb.ReadableStream; writable: streamWeb.WritableStream; },options?: Pick<DuplexOptions, "allowHalfOpen"
| "decodeStrings"
| "encoding"
| "highWaterMark"
| "objectMode"
| "signal">,): Duplex
A utility method for creating a Duplex
from a web ReadableStream
and WritableStream
.