Narwhal Parade Maestro

    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

    Keywords

    none

    Install

    npm i compose-tiny

    DownloadsWeekly Downloads

    53

    Version

    1.1.3

    License

    MIT

    Unpacked Size

    17.4 kB

    Total Files

    11

    Last publish

    Collaborators

    • alisowski