compose-tiny

A very tiny compose function.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
compose-tiny
45191.1.34 years ago4 years agoMinified + gzip package size for compose-tiny in KB

Readme

src="https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/240/apple/129/musical-score_1f3bc.png">
compose-tiny

A very tiny and fast compose function.


CircleCI Codecov npm bundle size code style: prettier
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,
  add2
);

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,
  add2,
  (x, y, z) => (x + y) * z
);

blastOff(1, 2, 4);

Performance

NOTE: bundlephobia includes all files in package
| NAME | OPS/SEC | RELATIVE MARGIN OF ERROR | SAMPLE SIZE | BUNDLE SIZE | | ---------------- | -------- | --------------------------------------------- | ----------- | ---------------------------------------------------------- | | compose-tiny | 1108,413 | Ā± 0.72% | 187 | (112B)https://bundlephobia.com/result?p=compose-tiny | | squad | 105,070 | Ā± 0.62% | 185 | (517B)https://bundlephobia.com/result?p=squad | | just-compose | 46,964 | Ā± 1.88% | 181 | (334B)https://bundlephobia.com/result?p=just-compose | | chain-function | 22,556 | Ā± 0.50% | 187 | (341B)https://bundlephobia.com/result?p=chain-function | | compose-function | 20,817 | Ā± 0.49% | 186 | (1.2kB)https://bundlephobia.com/result?p=compose-function | | fj-compose | 8,581 | Ā± 0.61% | 184 | (334B)https://bundlephobia.com/result?p=fj-compose | | compose-funcs | 356 | Ā± 1.58% | 176 | (594B)https://bundlephobia.com/result?p=compose-funcs |
To rerun this benchmark
node benchmark