{ } qjs-modules

stream

Source: quickjs-stream.c — WHATWG Streams implementation.

Module exports: ReadableStream, ReadableStreamDefaultReader, ReadableStreamBYOBReader, ReadableStreamDefaultController, ReadableByteStreamController, WritableStream, WritableStreamDefaultWriter, WritableStreamDefaultController, TransformStream.

ReadableStream

new ReadableStream(underlyingSource[, strategy])   // length 1
MemberArgsKindDescription
cancel(reason)0methodCancels the stream.
getReader([options])0methodAcquires a reader (default or BYOB).
closed—getterPromise settling on close (enumerable).
locked—getterWhether a reader holds the stream (enumerable).

Readers (ReadableStreamDefaultReader, ReadableStreamBYOBReader)

new ReadableStreamDefaultReader(stream)   // length 1
MemberArgsKindDescription
read([view])0methodReads the next chunk; resolves {value, done}.
cancel(reason)0methodCancels and releases.
releaseLock()0methodReleases the reader's lock.
closed—getterClosed promise.

Controllers

ReadableStreamDefaultController / ReadableByteStreamController (passed to the source): close(), enqueue(chunk), error(e), and getter desiredSize. ReadableStreamBYOBRequest: respond(n), respondWithNewView(view).

WritableStream

new WritableStream(underlyingSink[, strategy])   // length 1
MemberArgsKindDescription
abort(reason)1methodAborts the stream.
close()0methodCloses the stream.
getWriter()0methodAcquires a writer.
locked—getterWhether a writer holds the stream (enumerable).

WritableStreamDefaultWriter

new WritableStreamDefaultWriter(stream)   // length 1

write(chunk), abort(reason), close(), releaseLock(); getters closed, ready.

WritableStreamDefaultController

error(e) (and the controller passed to the sink).

TransformStream

new TransformStream(transformer[, writableStrategy, readableStrategy])   // length 1

Getters readable and writable (both enumerable) expose the paired streams. Its controller offers terminate(), enqueue(chunk), error(e) and a desiredSize getter.