Hyperjump Pact is a utility library that provides higher order functions for working with iterators and async iterators.
Designed for node.js (ES Modules, TypeScript) and browsers.
npm install @hyperjump/pact --save
import { pipe, range, map, filter, reduce } from "@hyperjump/pact";
const result = pipe(
range(1, 10),
filter((n) => n % 2 === 0),
map((n) => n * 2),
reduce((sum, n) => sum + n, 0)
);
console.log(result);
import { pipe, asyncMap, asyncFilter, asyncReduce } from "@hyperjump/pact";
// You can alternatively import the async functions without the prefix
// import { pipe, map, filter, reduce } from "@hyperjump/pact/async";
const asyncSequence = async function* () {
yield 1;
yield 2;
yield 3;
yield 4;
yield 5;
};
for await (const value of asyncSequence()) {
console.log(value);
}
const result = await pipe(
asyncSequence(),
asyncFilter((n) => n % 2 === 0),
asyncMap((n) => n * 2),
asyncReduce((sum, n) => sum + n, 0)
);
console.log(result);
Run the tests
npm test
Run the tests with a continuous test runner
npm test -- --watch