diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/src/internal/util/isReadableStreamLike.ts | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/src/internal/util/isReadableStreamLike.ts')
| -rw-r--r-- | node_modules/rxjs/src/internal/util/isReadableStreamLike.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/util/isReadableStreamLike.ts b/node_modules/rxjs/src/internal/util/isReadableStreamLike.ts new file mode 100644 index 0000000..87b9c15 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isReadableStreamLike.ts @@ -0,0 +1,23 @@ +import { ReadableStreamLike } from '../types'; +import { isFunction } from './isFunction'; + +export async function* readableStreamLikeToAsyncGenerator<T>(readableStream: ReadableStreamLike<T>): AsyncGenerator<T> { + const reader = readableStream.getReader(); + try { + while (true) { + const { value, done } = await reader.read(); + if (done) { + return; + } + yield value!; + } + } finally { + reader.releaseLock(); + } +} + +export function isReadableStreamLike<T>(obj: any): obj is ReadableStreamLike<T> { + // We don't want to use instanceof checks because they would return + // false for instances from another Realm, like an <iframe>. + return isFunction(obj?.getReader); +} |
