Skip to main content
Home

Built and signed on GitHub Actions

Well-tested utility functions dealing with async iterables

This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
88%
Published
2 years ago (0.6.0)
Package root>src>concat.ts
/** * Concatenates multiple async iterables into one async iterable. * * ``` typescript * import { concat } from "./concat.ts"; * * async function* gen() { yield "foo"; yield "bar"; yield "baz"; yield "qux" } * const iterable = concat(gen(), ["a", "b", "c", "d"]); * for await (const value of iterable) console.log(value); * ``` * * The above example will print the following 8 lines: * * ~~~ * foo * bar * baz * qux * a * b * c * d * ~~~ * * @template T The type of the elements in the iterable `sources` and * the returned async iterable. * @param sources Async iterables to concatenate. It can be either finite * or infinite, and finite iterables and infinite iterables can * be mixed. * @returns An async iterable that contains elements from the iterable * `sources`. If any of the iterable `sources` is infinite, * the returned iterable is infinite. */ export async function* concat<T>( ...sources: (AsyncIterable<T> | Iterable<T>)[] ): AsyncIterableIterator<T> { for (const source of sources) yield* source; }