diff --git a/common/src/async-queue.ts b/common/src/async-queue.ts index 1cd50f611..27ae5590e 100644 --- a/common/src/async-queue.ts +++ b/common/src/async-queue.ts @@ -155,6 +155,23 @@ export function createAsyncQueue() { } } +export function createAsyncQueueFromGenerator(generator: AsyncGenerator) { + const q = createAsyncQueue(); + (async() => { + try { + for await (const i of generator) { + q.submit(i); + } + } + catch (e) { + q.end(e as Error); + } + q.end(); + })(); + + return q; +} + // async function testSlowEnqueue() { // const asyncQueue = createAsyncQueue();