compose-tiny
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

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) => (+ 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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.3
    93
    • latest

Version History

Package Sidebar

Install

npm i compose-tiny

Weekly Downloads

93

Version

1.1.3

License

MIT

Unpacked Size

17.4 kB

Total Files

11

Last publish

Collaborators

  • alisowski