From 46616467f4bae22c67b4bc2ddbc3316a7cc91637 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Thu, 11 Jul 2024 21:26:13 -0700 Subject: [PATCH] common: async queue wrapper for generator --- common/src/async-queue.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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();