Merge pull request #16499 from rictic/stream-pause-this

[node] pause() and resume() return `this`
This commit is contained in:
Nathan Shively-Sanders
2017-06-01 14:21:03 -07:00
committed by GitHub
2 changed files with 33 additions and 12 deletions

View File

@@ -281,8 +281,8 @@ declare namespace NodeJS {
readable: boolean;
read(size?: number): string | Buffer;
setEncoding(encoding: string | null): void;
pause(): ReadableStream;
resume(): ReadableStream;
pause(): this;
resume(): this;
isPaused(): boolean;
pipe<T extends WritableStream>(destination: T, options?: { end?: boolean; }): T;
unpipe<T extends WritableStream>(destination?: T): void;
@@ -301,10 +301,7 @@ declare namespace NodeJS {
end(str: string, encoding?: string, cb?: Function): void;
}
export interface ReadWriteStream extends ReadableStream, WritableStream {
pause(): ReadWriteStream;
resume(): ReadWriteStream;
}
export interface ReadWriteStream extends ReadableStream, WritableStream {}
export interface Events extends EventEmitter { }
@@ -1431,8 +1428,8 @@ declare module "readline" {
setPrompt(prompt: string): void;
prompt(preserveCursor?: boolean): void;
question(query: string, callback: (answer: string) => void): void;
pause(): ReadLine;
resume(): ReadLine;
pause(): this;
resume(): this;
close(): void;
write(data: string | Buffer, key?: Key): void;
@@ -1952,8 +1949,6 @@ declare module "net" {
setEncoding(encoding?: string): void;
write(data: any, encoding?: string, callback?: Function): void;
destroy(): void;
pause(): Socket;
resume(): Socket;
setTimeout(timeout: number, callback?: Function): void;
setNoDelay(noDelay?: boolean): void;
setKeepAlive(enable?: boolean, initialDelay?: number): void;
@@ -3446,8 +3441,8 @@ declare module "stream" {
_read(size: number): void;
read(size?: number): any;
setEncoding(encoding: string): void;
pause(): Readable;
resume(): Readable;
pause(): this;
resume(): this;
isPaused(): boolean;
pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean; }): T;
unpipe<T extends NodeJS.WritableStream>(destination?: T): void;

View File

@@ -542,6 +542,32 @@ function simplified_stream_ctor_test() {
})
}
// Subclassing stream classes
{
class SubclassedReadable extends stream.Readable {};
let subclassedReadable: SubclassedReadable = new SubclassedReadable();
subclassedReadable = subclassedReadable.pause();
subclassedReadable = subclassedReadable.resume();
class SubclassedTransform extends stream.Transform {};
let subclassedTransform: SubclassedTransform = new SubclassedTransform();
subclassedTransform = subclassedTransform.pause();
subclassedTransform = subclassedTransform.resume();
class SubclassedDuplex extends stream.Duplex {};
let subclassedDuplex: SubclassedDuplex = new SubclassedDuplex();
subclassedDuplex = subclassedDuplex.pause();
subclassedDuplex = subclassedDuplex.resume();
// assignability
let readable: stream.Readable = subclassedDuplex;
readable = subclassedTransform;
let duplex: stream.Duplex = subclassedTransform;
}
////////////////////////////////////////////////////////
/// Crypto tests : http://nodejs.org/api/crypto.html ///
////////////////////////////////////////////////////////