/fn

Type-safe utility functions that I write and use a lot

Primary LanguageTypeScript

@macklinu/fn

Reimplementing lodash-fp for the sake of learning

Installation

yarn add @macklinu/fn

API

compact(array)

import { compact } from '@macklinu/fn'

compact([0, 1, 2, false, '', 3, null, undefined]) // => [1, 2, 3]
compact() // => []

get(path, ?defaultValue)

import { get } from '@macklinu/fn'

get('a')({ a: 1 }) // => 1
get('a.b')({ a: { b: 2 } }) // => 2
get('a.b.c', '$')({}) // => '$'
get()() // => undefined

join(separator)

import { join } from '@macklinu/fn'

join()([1, 2, 3]) // => '1,2,3'

let joinSquiggly = join('~')
joinSquiggly(['live', 'laugh', 'love']) // => 'live~laugh~love'

join()() // => ''

map(iteratee)

import { map } from '@macklinu/fn'

let getNames = map(user => user.name)
getNames([{ name: 'Alice' }, { name: 'Bob' }]) // => ['Alice, 'Bob']

let getNames = map('name')
getNames([{ name: 'Alice' }, { name: 'Bob' }]) // => ['Alice, 'Bob']

sum(array)

import { sum } from '@macklinu/fn'

sum([1, 2, 3]) // => 6
sum() // => 0