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); 
 | 
} 
 |