diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2021-11-05 12:56:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-05 12:56:28 +0100 |
commit | 26a54713025c6098934f8f980013132de09ed0d4 (patch) | |
tree | baa8ea37ae3427e13be33b08975639708890ef54 /ext/web/lib.deno_web.d.ts | |
parent | 44511e4f330e2d7099a16ed836629fa73dde9831 (diff) |
fix: typings for BYOB stream readers (#12651)
Diffstat (limited to 'ext/web/lib.deno_web.d.ts')
-rw-r--r-- | ext/web/lib.deno_web.d.ts | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/ext/web/lib.deno_web.d.ts b/ext/web/lib.deno_web.d.ts index 805630eac..e0f6bdb63 100644 --- a/ext/web/lib.deno_web.d.ts +++ b/ext/web/lib.deno_web.d.ts @@ -416,24 +416,26 @@ interface ReadableStreamDefaultReader<R = any> { releaseLock(): void; } -interface ReadableStreamBYOBReadDoneResult { +interface ReadableStreamBYOBReadDoneResult<V extends ArrayBufferView> { done: true; - value?: ArrayBufferView; + value?: V; } -interface ReadableStreamBYOBReadValueResult { +interface ReadableStreamBYOBReadValueResult<V extends ArrayBufferView> { done: false; - value: ArrayBufferView; + value: V; } -type ReadableStreamBYOBReadResult = - | ReadableStreamBYOBReadDoneResult - | ReadableStreamBYOBReadValueResult; +type ReadableStreamBYOBReadResult<V extends ArrayBufferView> = + | ReadableStreamBYOBReadDoneResult<V> + | ReadableStreamBYOBReadValueResult<V>; interface ReadableStreamBYOBReader { readonly closed: Promise<void>; cancel(reason?: any): Promise<void>; - read(view: ArrayBufferView): Promise<ReadableStreamBYOBReadResult>; + read<V extends ArrayBufferView>( + view: V, + ): Promise<ReadableStreamBYOBReadResult<V>>; releaseLock(): void; } @@ -569,7 +571,8 @@ interface ReadableStream<R = any> { * async iterator. */ getIterator(options?: { preventCancel?: boolean }): AsyncIterableIterator<R>; - getReader(): ReadableStreamDefaultReader<R>; + getReader(options: { mode: "byob" }): ReadableStreamBYOBReader; + getReader(options?: { mode?: undefined }): ReadableStreamDefaultReader<R>; pipeThrough<T>( { writable, readable }: { writable: WritableStream<R>; |