15 lines
316 B
TypeScript
15 lines
316 B
TypeScript
export async function* streamAsyncIterator<T>(stream: ReadableStream<T>) {
|
|
// Get a lock on the stream
|
|
const reader = stream.getReader();
|
|
|
|
try {
|
|
while (true) {
|
|
const { done, value } = await reader.read();
|
|
if (done) return;
|
|
yield value;
|
|
}
|
|
} finally {
|
|
reader.releaseLock();
|
|
}
|
|
}
|