From 403ac51161e5773d0ec7eb965004e18e9d4a03c8 Mon Sep 17 00:00:00 2001 From: Ben Lichtman Date: Tue, 1 Oct 2019 17:31:59 -0700 Subject: [PATCH] [node]: Add missing stream properties (#38791) * Add missing stream properties and tests * Fix downstream issue in readable-stream * add tests for readable-stream change --- types/node/node-tests.ts | 12 ++++++++++++ types/node/stream.d.ts | 3 +++ types/readable-stream/index.d.ts | 1 + types/readable-stream/readable-stream-tests.ts | 2 ++ 4 files changed, 18 insertions(+) diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index 7a4af4490f..e98cd062d6 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -1116,6 +1116,18 @@ import moduleModule = require('module'); moduleModule.createRequireFromPath('./test')('test'); } +///////////////////////////////////////////////////////// +/// stream tests : https://nodejs.org/api/stream.html /// +///////////////////////////////////////////////////////// + +{ + const writeStream = fs.createWriteStream('./index.d.ts'); + const _wom = writeStream.writableObjectMode; // $ExpectType boolean + + const readStream = fs.createReadStream('./index.d.ts'); + const _rom = readStream.readableObjectMode; // $ExpectType boolean +} + //////////////////////////////////////////////////// /// Node.js ESNEXT Support //////////////////////////////////////////////////// diff --git a/types/node/stream.d.ts b/types/node/stream.d.ts index f02fcb4ae8..c2a65a7ee3 100644 --- a/types/node/stream.d.ts +++ b/types/node/stream.d.ts @@ -26,6 +26,7 @@ declare module "stream" { readable: boolean; readonly readableHighWaterMark: number; readonly readableLength: number; + readonly readableObjectMode: boolean; destroyed: boolean; constructor(opts?: ReadableOptions); _read(size: number): void; @@ -120,6 +121,7 @@ declare module "stream" { readonly writableFinished: boolean; readonly writableHighWaterMark: number; readonly writableLength: number; + readonly writableObjectMode: boolean; destroyed: boolean; constructor(opts?: WritableOptions); _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; @@ -220,6 +222,7 @@ declare module "stream" { readonly writableFinished: boolean; readonly writableHighWaterMark: number; readonly writableLength: number; + readonly writableObjectMode: boolean; constructor(opts?: DuplexOptions); _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; _writev?(chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; diff --git a/types/readable-stream/index.d.ts b/types/readable-stream/index.d.ts index eb79d415ff..4c2ad6f663 100644 --- a/types/readable-stream/index.d.ts +++ b/types/readable-stream/index.d.ts @@ -72,6 +72,7 @@ declare namespace _Readable { readable: boolean; readonly readableHighWaterMark: number; readonly readableLength: number; + readonly readableObjectMode: boolean; _readableState: ReadableState; _read(size?: number): void; diff --git a/types/readable-stream/readable-stream-tests.ts b/types/readable-stream/readable-stream-tests.ts index 2f8c09ce22..23f9cd1fa5 100644 --- a/types/readable-stream/readable-stream-tests.ts +++ b/types/readable-stream/readable-stream-tests.ts @@ -89,6 +89,8 @@ function test() { assertType(streamD.allowHalfOpen); assertType(streamD.readable); assertType(streamD.writable); + assertType(streamD.readableObjectMode); + assertType(streamD.writableObjectMode); streamD.pipe(streamW); rs.addListener("read", (...args: any[]) => console.log(args));