FxTS
A functional programming library for TypeScript/JavaScript
README
FxTS
FxTS is a functional library for TypeScript/JavaScript programmers.
Why FxTS?
- Lazy evaluation
- Handling concurrent requests
- Type inference
- Follow iteration protocols Iterable / AsyncIterable
Installation
- ```
- npm install @fxts/core
- ```
Documentation
Please review the API documentation
Usage
- ```ts
- import { each, filter, map, pipe, range, take } from "@fxts/core";
- pipe(
- range(10),
- map((a) => a + 10),
- filter((a) => a % 2 === 0),
- take(2),
- each((a) => console.log(a)),
- );
- ```
Usage(concurrent)
- ```ts
- import { concurrent, countBy, flat, map, pipe, toAsync } from "@fxts/core";
- // maybe 1 seconds api
- const fetchWiki = (page: string) =>
- fetch(`https://en.wikipedia.org/w/api.php?action=parse&page=${page}`);
- const countWords = async (concurrency = 1) =>
- pipe(
- ["html", "css", "javascript", "typescript"],
- toAsync,
- map(fetchWiki),
- map((res) => res.text()),
- map((words) => words.split(" ")),
- flat,
- concurrent(concurrency),
- countBy((word) => word),
- );
- await countWords(); // 4 seconds
- await countWords(2); // 2 seconds
- ```
you can start here
Build
- npm run build
Running Test
- npm test
Running Type Test
- npm run compile:check
License
Apache License 2.0