28 lines
692 B
JavaScript
28 lines
692 B
JavaScript
// utility for whatwg streams
|
|
export function isAsyncIterable(object) {
|
|
return object[Symbol.asyncIterator] != null;
|
|
}
|
|
export async function* asyncIterableFromStream(stream) {
|
|
const reader = stream.getReader();
|
|
try {
|
|
while (true) {
|
|
const { done, value } = await reader.read();
|
|
if (done) {
|
|
return;
|
|
}
|
|
yield value;
|
|
}
|
|
}
|
|
finally {
|
|
reader.releaseLock();
|
|
}
|
|
}
|
|
export function ensureAsyncIterable(streamLike) {
|
|
if (isAsyncIterable(streamLike)) {
|
|
return streamLike;
|
|
}
|
|
else {
|
|
return asyncIterableFromStream(streamLike);
|
|
}
|
|
}
|
|
//# sourceMappingURL=stream.mjs.map
|