// the find
getify/fasy
FP iterators that are both eager and asynchronous
Fasy is a small FP utility library that adds async awareness to the standard iteration methods (map, filter, reduce, etc.), supporting both concurrent and serial execution modes. It fills a real gap: the built-in array methods are synchronous and composing them with async functions is awkward without something like this. Aimed at JS developers who want FP-style pipelines without losing control over concurrency.
The concurrent/serial split is clean and the API is consistent across both — swapping `FA.concurrent.map` for `FA.serial.map` is a one-word change with meaningful behavioral difference. The concurrency limiter with configurable pool size and refill threshold (`concurrent(5,3)`) is genuinely useful for rate-limiting IO-heavy work. Transducing support is a nice bonus — composing map/filter into a single reduce pass to avoid intermediate arrays is the right abstraction and not many async FP libs bother with it. Dual CJS/ESM output via Node Conditional Exports means you don't need path gymnastics to use it in either environment.
No updates since August 2022 and still on Travis CI (which effectively means CI is dead for open-source). The generator runner support feels like 2019 thinking — most codebases have moved fully to async/await and the `function*` path adds cognitive overhead for little practical gain today. There is no cancellation support; if you kick off `concurrent.map` over 100 items and want to abort halfway through, you have nothing. The library also predates the `for await...of` pattern and async iterators, which now handle many of these use cases natively in modern JS runtimes.