fump

1.0.0 • Public • Published

𝝺 fump

Useful collection of functional composition helper functions



Built with ❤︎ by Tiaan and contributors

Table of Contents

Table of Contents
  • Install
  • Usage
  • API
  • Learning
  • Contribute
  • License
  • Install

    $ npm install fump
    # OR
    $ yarn add fump

    Usage

    import {
      compose,
      pipe,
      map,
      filter,
      reduce,
      curry,
      flatMap
    } from 'fump'
    
    // Do some magic

    API

    .compose(functions)

    The function accepts one or more functions that are applied from right to left on a initial value. It Returns a function that accepts the initial value.

    const addFive = (a) => a + 5
    const timesTwo = (a) => a * 2
    
    const timesAndAdd = compose(addFive, timesTwo) // => Function
    
    timesAndAdd(10) // => 25

    .pipe

    The function provides the same functionality as the compose function, but the functions are applied to the initial value from left to right.

    .map

    Function provides similar functionality to the Array.prototype.map(). It accepts a function as its argument and returns a function that accepts a object or array to map over.

    const timesTwo = x => x * 2
    const arr = [1, 2, 3, 4]
    
    map(timesTwo)(arr) // => [2, 4, 6, 8]
    
    const addOne = x => x + 1
    const obj = {
      0: 1,
      1: 2,
      2: 3,
      length: 3
    }
    
    map(addOne)(obj) // => [ 2, 3, 4 ]

    .filter

    Function provides similar functionality to the Array.prototype.filter(). It accepts a predicate function as its argument and returns a function that accepts a object or array to filter.

    const moreThanTwo = x => x > 2
    const arr = [1, 2, 3, 4]
    
    filter(moreThanTwo)(arr) // => [ 3, 4 ]
    
    const isEven = x => x % 2 === 0
    const obj = {
      0: 1,
      1: 2,
      2: 3,
      3: 4,
      length: 4
    }
    
    filter(isEven)(obj) // => [ 2, 4 ]

    .reduce

    Function provides similar functionality to the Array.prototype.reduce(). It accepts a function as its argument and returns a function that accepts a object or array to reduce.

    const add = (a, b) => a + b
    const sum = reduce(add)
    sum([1, 2, 3]) // => 6

    .flatMap

    Function provides similar functionality to map, but flattens any of the callbacks returns.

    const fill = flatMap(x => new Array(x).fill(x))
    fill([1, 2, 3]) // => [ 1, 2, 2, 3, 3, 3 ]

    .curry

    See learning section for more information about currying.

    const add = (a, b) => a + b
    const addOne = curry(add)(1)
    addOne(5) // => 6

    Learning

    Articles

    Books

    Contribute

    Contributions are welcome. Please open up an issue or create PR if you would like to help out.

    License

    MIT

    Package Sidebar

    Install

    npm i fump

    Weekly Downloads

    0

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • tiaanduplessis