This repository was archived by the owner on Jul 5, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +34
-2
lines changed
Expand file tree Collapse file tree 2 files changed +34
-2
lines changed Original file line number Diff line number Diff line change 11import { assert } from "../internals/assert.js" ;
2+ import {
3+ NodeJSReadableStreamEsque ,
4+ WebReadableStreamEsque ,
5+ } from "../internals/esque.js" ;
26
37export async function * readableStreamToAsyncIterable < T > (
4- stream : ReadableStream < T > ,
8+ stream :
9+ | NodeJSReadableStreamEsque
10+ | ReadableStream < T >
11+ | WebReadableStreamEsque ,
512) : AsyncIterable < T > {
13+ if ( Symbol . asyncIterator in stream ) {
14+ // NodeJS.ReadableStream
15+ for await ( const chunk of stream ) {
16+ yield chunk as T ;
17+ }
18+
19+ return ;
20+ }
21+
622 // Get a lock on the stream
723 const reader = stream . getReader ( ) ;
824
@@ -18,7 +34,7 @@ export async function* readableStreamToAsyncIterable<T>(
1834 }
1935
2036 // Else yield the chunk
21- yield result . value ;
37+ yield result . value as T ;
2238 }
2339 } finally {
2440 reader . releaseLock ( ) ;
Original file line number Diff line number Diff line change 44export interface TextDecoderEsque {
55 decode ( chunk : Uint8Array ) : string ;
66}
7+
8+ /**
9+ * A subset of the standard ReadableStream properties needed by tRPC internally.
10+ * @see ReadableStream from lib.dom.d.ts
11+ * @internal
12+ */
13+ export interface WebReadableStreamEsque {
14+ getReader : ( ) => ReadableStreamDefaultReader < Uint8Array > ;
15+ }
16+
17+ /**
18+ * @see NodeJS.ReadableStream from @types/node
19+ */
20+ export interface NodeJSReadableStreamEsque {
21+ [ Symbol . asyncIterator ] : ( ) => AsyncIterableIterator < unknown > ;
22+ }
You can’t perform that action at this time.
0 commit comments