Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 26 additions & 19 deletions types/readable-stream/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -277,11 +277,18 @@ declare namespace _Readable {
type _IDuplex = _IReadable & _IWritable;

class Duplex extends _Writable implements _IDuplex, /*extends*/ _Readable, Duplex {
/**
* This is a dummy function required to retain type compatibility to node.
* @deprecated DO NOT USE
*/
static from(source: any): any;
static from(
src:
| Stream
| Blob
| ArrayBuffer
| string
| Iterable<any>
| AsyncIterable<any>
| AsyncGeneratorFunction
| Promise<any>
| { writable?: Writable; readable?: _Readable },
): Duplex;
allowHalfOpen: boolean;
destroyed: boolean;
// Readable
Expand All @@ -294,11 +301,11 @@ declare namespace _Readable {
readonly readableObjectMode: boolean;
readonly writableObjectMode: boolean;

readonly readableAborted: never;
readonly readableDidRead: never;
readonly writableEnded: never;
readonly writableFinished: never;
readonly writableCorked: never;
readonly readableAborted: boolean;
readonly readableDidRead: boolean;
readonly writableEnded: boolean;
readonly writableFinished: boolean;
readonly writableCorked: number;

_readableState: ReadableState;

Expand Down Expand Up @@ -410,11 +417,11 @@ declare namespace _Readable {
};

class Readable extends _Readable {
readonly readableAborted: never;
readonly readableDidRead: never;
readonly readableEncoding: never;
readonly readableEnded: never;
readonly readableObjectMode: never;
readonly readableAborted: boolean;
readonly readableDidRead: boolean;
readonly readableEncoding: BufferEncoding | null;
readonly readableEnded: boolean;
readonly readableObjectMode: boolean;

constructor(options?: ReadableOptions);
pipe<T extends _IWritable>(destination: T, options?: { end?: boolean | undefined }): T;
Expand Down Expand Up @@ -645,10 +652,10 @@ declare namespace _Readable {
}

class Writable extends _Writable {
readonly writableEnded: never;
readonly writableFinished: never;
readonly writableObjectMode: never;
readonly writableCorked: never;
readonly writableEnded: boolean;
readonly writableFinished: boolean;
readonly writableObjectMode: boolean;
readonly writableCorked: number;

constructor(opts?: WritableOptions);
}
Expand Down
8 changes: 7 additions & 1 deletion types/readable-stream/readable-stream-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ function test() {
streamT.unpipe(streamW);
streamT._transformState.afterTransform = (err, data) => {};

const streamD = new RS_Duplex({
let streamD = new RS_Duplex({
read(size: number) {
assertType<number>(size);
},
Expand All @@ -112,6 +112,12 @@ function test() {
},
writableObjectMode: false,
});
streamD = RS_Duplex.from(streamR);
streamD = RS_Duplex.from([streamR, streamW]);
streamD = RS_Duplex.from({
readable: streamR,
writable: streamW,
});
assertType<boolean>(streamD.allowHalfOpen);
assertType<boolean>(streamD.readable);
assertType<boolean>(streamD.writable);
Expand Down