From 09bbda706b6c950006aae88d0c0371fc56417053 Mon Sep 17 00:00:00 2001 From: Daniel Draper Date: Wed, 13 Nov 2024 14:26:08 +0100 Subject: [PATCH 1/2] sync iterators in helper methods as well --- package.json | 5 +++-- src/asyncBufferedTransformer.ts | 4 ++-- tests/asyncBufferedTransformer.spec.ts | 11 +++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a04215c..4de5a6b 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", @@ -50,5 +50,6 @@ "homepage": "https://github.com/understand-ai/async-transformers#readme", "publishConfig": { "access": "public" - } + }, + "packageManager": "pnpm@9.12.2+sha512.22721b3a11f81661ae1ec68ce1a7b879425a1ca5b991c975b074ac220b187ce56c708fe5db69f4c962c989452eee76c82877f4ee80f474cebd61ee13461b6228" } 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(); + }); }); From dffc3748c80a9abfbf38c53f6e836a890208ef97 Mon Sep 17 00:00:00 2001 From: Daniel Draper Date: Wed, 13 Nov 2024 14:27:22 +0100 Subject: [PATCH 2/2] -corepack --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 4de5a6b..41bf39a 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,5 @@ "homepage": "https://github.com/understand-ai/async-transformers#readme", "publishConfig": { "access": "public" - }, - "packageManager": "pnpm@9.12.2+sha512.22721b3a11f81661ae1ec68ce1a7b879425a1ca5b991c975b074ac220b187ce56c708fe5db69f4c962c989452eee76c82877f4ee80f474cebd61ee13461b6228" + } }