From f4b9e5acaab715e2ac3e47b7bdcb7c0b9554695a Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Wed, 12 Sep 2018 15:17:18 +0200 Subject: [PATCH 1/2] node: stream.finished function --- types/node/index.d.ts | 5 +++++ types/node/node-tests.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index d0ebd2124f..7ad7ca3049 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -6415,6 +6415,11 @@ declare module "stream" { export class PassThrough extends Transform { } + export function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback?: (err: NodeJS.ErrnoException) => void): () => void; + export namespace finished { + export function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream): Promise; + } + export function pipeline(stream1: NodeJS.ReadableStream, stream2: T, callback?: (err: NodeJS.ErrnoException) => void): T; export function pipeline(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: T, callback?: (err: NodeJS.ErrnoException) => void): T; export function pipeline(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.ReadWriteStream, stream4: T, callback?: (err: NodeJS.ErrnoException) => void): T; diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index b9a02f8dbd..731db242e8 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -1123,6 +1123,21 @@ function simplified_stream_ctor_test() { }); } +function streamPipelineFinished() { + const cancel = stream.finished(process.stdin, (err: Error) => {}); + cancel(); + + stream.pipeline(process.stdin, process.stdout, (err: Error) => {}); +} + +async function asyncStreamPipelineFinished() { + const finished = util.promisify(stream.finished); + await finished(process.stdin); + + const pipeline = util.promisify(stream.pipeline); + await pipeline(process.stdin, process.stdout); +} + //////////////////////////////////////////////////////// /// Crypto tests : http://nodejs.org/api/crypto.html /// //////////////////////////////////////////////////////// From a649bec809ce72d64dea3fa08de0eb77f4ce7981 Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Thu, 13 Sep 2018 10:08:55 +0200 Subject: [PATCH 2/2] node: stream.finished: err is optional --- types/node/index.d.ts | 2 +- types/node/node-tests.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index 7ad7ca3049..c1974ef350 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -6415,7 +6415,7 @@ declare module "stream" { export class PassThrough extends Transform { } - export function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback?: (err: NodeJS.ErrnoException) => void): () => void; + export function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException) => void): () => void; export namespace finished { export function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream): Promise; } diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index 731db242e8..3feb7a4a86 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -1124,10 +1124,10 @@ function simplified_stream_ctor_test() { } function streamPipelineFinished() { - const cancel = stream.finished(process.stdin, (err: Error) => {}); + const cancel = stream.finished(process.stdin, (err?: Error) => {}); cancel(); - stream.pipeline(process.stdin, process.stdout, (err: Error) => {}); + stream.pipeline(process.stdin, process.stdout, (err?: Error) => {}); } async function asyncStreamPipelineFinished() {