diff --git a/package.json b/package.json index a04215c..41bf39a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@understand-ai/async-transformer", - "version": "1.1.1", + "version": "1.1.2", "description": "concurrent processing of iterators", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/asyncBufferedTransformer.ts b/src/asyncBufferedTransformer.ts index 3c6c13a..92654a1 100644 --- a/src/asyncBufferedTransformer.ts +++ b/src/asyncBufferedTransformer.ts @@ -93,7 +93,7 @@ export async function* asyncBufferedTransformer( } export const drainStream = async ( - streamToDrain: AsyncIterable + streamToDrain: AsyncIterable | Iterable ): Promise => { // eslint-disable-next-line @typescript-eslint/no-unused-vars for await (const _ of streamToDrain) { @@ -104,7 +104,7 @@ export const drainStream = async ( }; export const collectAll = async ( - streamToCollect: AsyncIterable + streamToCollect: AsyncIterable | Iterable ): Promise => { const results = []; for await (const output of streamToCollect) { diff --git a/tests/asyncBufferedTransformer.spec.ts b/tests/asyncBufferedTransformer.spec.ts index 0071182..fe9da5f 100644 --- a/tests/asyncBufferedTransformer.spec.ts +++ b/tests/asyncBufferedTransformer.spec.ts @@ -489,4 +489,15 @@ describe("asyncBufferedTransformer", () => { ) ).rejects.toBeTruthy(); }); + + it("can collect / drain an iterable as well", async () => { + const iterable = function* (): Iterable { + yield "something"; + }; + + const collected = await collectAll(iterable()); + + expect(collected).toEqual(["something"]); + await expect(drainStream(iterable())).resolves.toBeUndefined(); + }); });