Asynkit extends the capabilities of AsyncIterable
in JavaScript or TypeScript,
providing utility methods such as map and filter that are natively available for
arrays but not for AsyncaIterable
. Mastering the usage of AsyncIterable
(in
any language) is a "shortcut" to reducing your memory footprint in a neat and
tidy way.
Install with your favorite package manager:
npm install --save @nekm/asynkit
Use it with arrays:
import { Asynkit } from "@nekm/asynkit";
const array = [1, 2, 3, 4, 5];
const result = await Asynkit.fromArray(array)
.map((x) => x * 2)
.map((x) => x + 1)
.filter((x) => x % 2 === 0)
.toArray();
Or let's assume you have a function that fetches a large dataset:
import { Asynkit } from "@nekm/asynkit";
const chunks = Asynkit.create(getLotsAndLotsOfData())
.filter((item) => item.name === "foo")
.chunk(10);
for await (const items of chunks) {
console.log(items); // will output 10 items at a time
}
If you do not want to use the class, there are functions as well:
import { asynkitFromArray, asynkitMap, asynkitToArray } from "@nekm/asynkit";
const it = asynkitFromArray([1, 2, 3, 4, 5]);
const mapped = asynkitMap(it, (x) => x * 2);
const array = await asynkitToArray(mapped);
This project complies with Semantic Versioning.
For a complete list of changes, and how to migrate between major versions, see releases page.