Awesome
<div align="center"> <img width="200" height="200" src="https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/240/apple/129/musical-score_1f3bc.png"> <h1>compose-tiny</h1> <p>A very tiny and fast compose function.</p> </div>Function composition is an act or mechanism to combine simple functions to build more complicated ones.
compose-tiny
aims to provide a simple function for composition at the smallest possible size and the fasted possible speed. It's TypeScript friendly too!
Installation
npm install compose-tiny
Usage
const compose = require('compose-tiny');
const add = x => x + 2;
const sqr = x => x ** 2;
const blastOff = compose(
x => `🚀 ${x} 🚀`
sqr,
add
);
blastOff(2);
Output:
🚀 16 🚀
Multiple Arguments
The first function in the composition can take multiple arguments.
const compose = require('compose-tiny');
const add = x => x + 2;
const sqr = x => x ** 2;
const blastOff = compose(
sqr,
add,
(x, y, z) => (x + y) * z
);
blastOff(1, 2, 4);
Performance
NOTE: bundlephobia measures all package files
NAME | OPS/SEC | RELATIVE MARGIN OF ERROR | SAMPLE SIZE | BUNDLE SIZE |
---|---|---|---|---|
compose-tiny | 1108,413 | ± 0.72% | 187 | 112 B |
squad | 105,070 | ± 0.62% | 185 | 517 B |
just-compose | 46,964 | ± 1.88% | 181 | 334 B |
chain-function | 22,556 | ± 0.50% | 187 | 341 B |
compose-function | 20,817 | ± 0.49% | 186 | 1.2 kB |
fj-compose | 8,581 | ± 0.61% | 184 | 334 B |
compose-funcs | 356 | ± 1.58% | 176 | 594 B |
To rerun this benchmark
node benchmark