JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q30129F
  • License LGPL-3.0-or-later

Well-tested utility functions dealing with async iterables

Package Exports

  • aitertools

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (aitertools) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

aitertools

Latest version Published on npm Published on nest.land LGPL 3.0 Deno Doc (API references) GitHub Actions Codecov

This library provides a well-tested collection of small utility functions dealing with async iterables. You can think of it as .NET LINQ or Python aitertools for Deno & Node.js.

Functions

For the complete list of functions, see the complete API reference.

  • concat(...sources): Concatenate multiple async iterables into one.
  • take(source, count): Take the first count items from the source.
  • drop(source, count): Drop the first count items from the source.
  • takeWhile(source, predicate): Take items from the source while the predicate returns true.
  • dropWhile(source, predicate): Drop items from the source while the predicate returns true.
  • takeEnd(source, count): Take the last count items from the source.
  • dropEnd(source, count): Drop the last count items from the source.
  • map(mapper, ...sources): Apply the mapper to each item in the sources.
  • filter(predicate, ...sources): Filter items in the sources by the predicate.
  • reduce(reducer, source, initial?): Reduce the source to a single value by the reducer, optionally with the initial value.
  • tee(source, numbeer): Effectively duplicate the source into number of async iterables.
  • groupBy(source, keySelector): Group items in the source by the keySelector.
  • unique(source, keySelector?): Eliminate duplicate items in the source, optionally by the keySelector.
  • range(start?, stop, step?): Generate a sequence of numbers from start to stop by step.
  • count(start?, step?): Generate a sequence of numbers from start by step infinitely.
  • cycle(source): Cycle the source infinitely.
  • repeat(value, times?): Repeat the value for times times, or infinitely if times is not specified.
  • fromIterable(source): Convert an iterable to an async iterable.
  • toArray(source): Convert an async iterable to an array.
  • toSet(source): Convert an async iterable to a Set.
  • toMap(source, keySelector, valueSelector?): Convert an async iterable to a Map.
  • assertStreams(actual, expected, msg?): Asset that an async iterable actual is equal to an array expected.
  • assertStreamStartsWith(actual, expected, msg?): Asset that an async iterable actual (which is possibly infinite) starts with an array expected.

Usage

In Deno:

import * as aitertools from "https://deno.land/x/aitertools/mod.ts";

In Node.js:

$ npm add aitertools
import * as aitertools from "aitertools";

Changelog

See CHANGES.md file. Note that unreleased versions are also available on nest.land for Deno:

import * as aitertools
  from "https://x.nest.land/aitertools@0.4.0-dev.15+3f191d7/mod.ts";

… and on npm with dev tag for Node.js:

$ npm add aitertools@dev