TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published


Utilities for streams and iterables

GitHub CI npm version MIT License

stream-utils is a minimalist TypeScript library providing utilities for streams and iterables.

In particular:

  • AsyncIterable.from() takes a variable list of arguments of any type, creating an AsyncIterable which returns their values. Each argument can be:

    • an Iterable or an AsyncIterable: in this case, its elements will be yielded, one by one

    • any other data type: it will be yielded as it is

  • AsyncIterable.wrapXml(): takes an AsyncIterable<string> of XML chunks and returns another - having a customizable XML opening tag at the beginning and the related closing tag at the end

  • addBatchListener(): attaches an event listener - to any event of any Stream - that gets called only after such event has been notified the number of times

  • Iterable.isEmpty(): returns if the Iterable is empty

  • Iterable.isSupported(): type guard ensuring that the value is an Iterable

  • Iterable.getFirst(): returns the first item of an Iterable; if such Iterable is empty, an error is thrown

  • Iterable.equals(): returns true if the two given iterables have the same length - and all the items at the same position are equal according to the given equality function passed as the optional 3rd argument (by default, strict equality via ===)

  • Iterable.rangeIncluding(): returns an Iterable<number> returning the values from the lower bound L up to the upper bound U - including both. If L > U, an empty Iterable is returned instead


npm install @giancosta86/stream-utils


yarn add @giancosta86/stream-utils

The public API entirely resides in the root package index, so you shouldn't reference specific modules.

Further reference

For additional examples, please consult the unit tests in the source code repository.

Package Sidebar


npm i @giancosta86/stream-utils

Weekly Downloads






Unpacked Size

18 kB

Total Files


Last publish


  • giancosta86