From aaf2b081ef1e2682c4ef7d2816a33840b48f4ced Mon Sep 17 00:00:00 2001 From: ehmicky Date: Tue, 8 Aug 2023 23:43:35 +0100 Subject: [PATCH] Improve TypeScript types --- index.d.ts | 6 +++--- index.test-d.ts | 25 ++++++++++++++++--------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/index.d.ts b/index.d.ts index 6201b66..064d232 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,4 +1,4 @@ -import {type Stream} from 'node:stream'; +import {type Readable} from 'node:stream'; import {type Buffer} from 'node:buffer'; export class MaxBufferError extends Error { @@ -49,7 +49,7 @@ console.log(await getStream(stream)); // ~~ ``` */ -export default function getStream(stream: Stream, options?: Options): Promise; +export default function getStream(stream: Readable, options?: Options): Promise; /** Get the given `stream` as a buffer. @@ -65,4 +65,4 @@ const stream = fs.createReadStream('unicorn.png'); console.log(await getStreamAsBuffer(stream)); ``` */ -export function getStreamAsBuffer(stream: Stream, options?: Options): Promise; +export function getStreamAsBuffer(stream: Readable, options?: Options): Promise; diff --git a/index.test-d.ts b/index.test-d.ts index 86eff25..0854605 100644 --- a/index.test-d.ts +++ b/index.test-d.ts @@ -1,16 +1,23 @@ import {type Buffer} from 'node:buffer'; -import {type Stream} from 'node:stream'; +import {type Readable} from 'node:stream'; import fs from 'node:fs'; -import {expectType} from 'tsd'; +import {expectType, expectError} from 'tsd'; import getStream, {getStreamAsBuffer, MaxBufferError} from './index.js'; -const stream = fs.createReadStream('foo') as Stream; +const nodeStream = fs.createReadStream('foo') as Readable; -expectType>(getStream(stream)); -expectType>(getStream(stream, {maxBuffer: 10})); +expectType(await getStream(nodeStream)); +expectType(await getStream(nodeStream, {maxBuffer: 10})); +expectError(await getStream({})); +expectError(await getStream(nodeStream, {maxBuffer: '10'})); +expectError(await getStream(nodeStream, {unknownOption: 10})); +expectError(await getStream(nodeStream, {maxBuffer: 10}, {})); -expectType>(getStreamAsBuffer(stream)); -expectType>(getStreamAsBuffer(stream, {maxBuffer: 10})); +expectType(await getStreamAsBuffer(nodeStream)); +expectType(await getStreamAsBuffer(nodeStream, {maxBuffer: 10})); +expectError(await getStreamAsBuffer({})); +expectError(await getStreamAsBuffer(nodeStream, {maxBuffer: '10'})); +expectError(await getStreamAsBuffer(nodeStream, {unknownOption: 10})); +expectError(await getStreamAsBuffer(nodeStream, {maxBuffer: 10}, {})); -const maxBufferError = new MaxBufferError(); -expectType(maxBufferError); +expectType(new MaxBufferError());