Attributes
Includes Deno configuration
Repository
Current version released
a year ago
Versions
- 91.0.0Latest
- 90.0.0
- 89.0.0
- 88.0.0
- 87.0.0
- 86.0.0
- 85.0.0
- 84.0.0
- 83.0.0
- 82.0.0
- 81.0.0
- 80.0.0
- 79.0.0
- 78.0.0
- 77.0.0
- 76.0.0
- 75.0.0
- 74.0.0
- 73.0.0
- 72.0.0
- 71.0.0
- 70.0.0
- 69.0.0
- 68.0.0
- 67.0.0
- 66.0.0
- 65.0.0
- 64.0.0
- 63.0.0
- 62.0.0
- 61.0.0
- 60.0.0
- 59.0.0
- 58.0.0
- 57.0.0
- 56.0.0
- 55.0.0
- 54.0.0
- 53.0.0
- 52.0.0
- 51.0.0
- 50.0.0
- 49.0.0
- 48.0.0
- 47.0.0
- 46.0.0
- 45.0.0
- 44.0.0
- 43.0.0
- 42.0.0
- 41.0.0
- 40.0.0
- 39.0.0
- 38.0.0
- 37.0.0
- 36.0.0
- 35.0.0
- 34.0.0
- 33.0.0
- 32.0.0
- 31.0.0
- 30.0.0
- 29.0.0
- 28.0.0
- 27.0.0
- 26.0.0
- 25.0.0
- 24.0.0
- 23.0.0
- 22.0.0
- 21.0.0
- 20.0.0
- 19.0.0
- 18.0.0
- 17.0.0
- 16.0.0
- 15.0.0
- 14.0.0
- 13.0.0
- 12.0.0
- 11.0.0
- 10.0.0
Gamla
gamla
is a functional programming library for Javascript/Typescript.
Installation
nodejs: npm install gamla
deno: import { pipe } from "https://deno.land/x/gamla/src/index.ts";
Docs
This library allows you to write in typescript/javascript using composition.
It has two main advantages over similar libs:
- It supports mixing async and sync functions
- It keeps the type information, so you still get type safety when programming in pipelines.
A basic example:
const histogram = pipe(
split(""),
filter(complement(anyjuxt(equals(" "), equals("'")))),
// The function here is async.
reduce((x, y) => Promise.resolve({ ...x, [y]: (x[y] || 0) + 1 }), () => ({})),
sideEffect(console.log),
);
await histogram("let's see how many times each letter appears here");
Use case: throttling and mapping
- you have a list of 1000 items
- you have an async function
process(item)
- you need to process all items
- it needs to be done concurrently, but not more than 25 at a time
then you can just do
map(throttle(25, process))(items)