Skip to content

zacanger/zeelib

Repository files navigation

zeelib / Exports

zeelib

Utility library in TypeScript, with a focus on Node and FP utils and emphasis on not rewriting builtin features.

npm version ko-fi Support with PayPal


Installation

npm i zeelib

Usage

See the docs below for details (generated from types and comments). Example:

import * as z from 'zeelib'

const answer = await z.prompt('Pick a letter')
if (z.isEmpty(answer)) process.exit(1)

Full Docs [zeelib](README.md) / Exports

zeelib

Table of contents

Interfaces

Type Aliases

Variables

Functions

Type Aliases

AnyFn

Ƭ AnyFn: (...args: any[]) => any

Type declaration

▸ (...args): any

Parameters
Name Type
...args any[]
Returns

any

Defined in

pipe.ts:3


AnyMap

Ƭ AnyMap: Record<string, any>

Defined in

types.ts:1


Cb

Ƭ Cb: (error: c.ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void

Type declaration

▸ (error, stdout, stderr): void

Parameters
Name Type
error c.ExecFileException | null
stdout string | Buffer
stderr string | Buffer
Returns

void

Defined in

open.ts:4


ColMap

Ƭ ColMap: Record<string, (t: string) => string>

Defined in

colorize.ts:4


F

Ƭ F: (...args: any[]) => any

Type declaration

▸ (...args): any

Parameters
Name Type
...args any[]
Returns

any

Defined in

curry.ts:1


Listener

Ƭ Listener: (a: AnyMap, b: AnyMap) => any

Type declaration

▸ (a, b): any

Parameters
Name Type
a AnyMap
b AnyMap
Returns

any

Defined in

store.ts:3


R

Ƭ R: (...args: any[]) => Timer

Type declaration

▸ (...args): Timer

Parameters
Name Type
...args any[]
Returns

Timer

Defined in

debounce.ts:2


R

Ƭ R: string | any[] | AnyMap

Defined in

keep.ts:4


Timer

Ƭ Timer: NodeJS.Timeout | number | null

Defined in

debounce.ts:1


Updater

Ƭ Updater: (a: AnyMap) => AnyMap

Type declaration

▸ (a): AnyMap

Parameters
Name Type
a AnyMap
Returns

AnyMap

Defined in

store.ts:4

Variables

colorize

Const colorize: ColMap

Defined in

colorize.ts:34

Functions

and

and<T>(a): boolean

Returns false if any in input array is false

Type parameters

Name
T

Parameters

Name Type
a T[]

Returns

boolean

Example

and([ 1, 2, 3 ]) // => true
and([ 1, 2, 3, false ]) // => false

Defined in

and.ts:8


average

average(xs): number

Averages a list of numbers

Parameters

Name Type
xs number[]

Returns

number

Example

average([ 2, 4, 6, 8 ]) // => 5

Defined in

average.ts:7


capitalizeFirstChar

capitalizeFirstChar(str): string

Capitalizes the first character of string

Parameters

Name Type
str string

Returns

string

Example

capitalizeFirstChar('things and stuff') // => 'Things and stuff'

Defined in

capitalize-first-char.ts:7


chunk

chunk<T>(arr, n): T[][]

Splits an array into chunks

Type parameters

Name
T

Parameters

Name Type
arr T[]
n number

Returns

T[][]

Example

chunk([1, 2, 3, 4 ], 2) // => [ [ 1, 2 ], [ 3, 4 ] ]

Defined in

chunk.ts:7


clamp

clamp(val, min, max): number

Takes a number, min, and max If number is between min and max, returns number Otherwise returns min or max

Parameters

Name Type
val number
min number
max number

Returns

number

Example

clamp(100, 0, 1000) // => 100
clamp(100, 101, 1000) // => 101
clamp(100, 0, 99) // => 00

Defined in

clamp.ts:11


collapseNewlines

collapseNewlines(str): string

Collapses multiple newlines to two

Parameters

Name Type
str string

Returns

string

Example

collapseNewlines('\n\n\n\n') // => '\n\n'

Defined in

collapse-newlines.ts:7


collapseWhitespace

collapseWhitespace(str): string

Collapses consecutive whitespace to a single space

Parameters

Name Type
str string

Returns

string

Example

collapseWhitespace('a\n\r\t\nb') // => 'a b'

Defined in

collapse-whitespace.ts:7


collectBy

collectBy(p): (a: any[]) => AnyMap

Collect an an array of objects by string key cred: gh:uniqname

Parameters

Name Type
p string

Returns

fn

▸ (a): AnyMap

Parameters
Name Type
a any[]
Returns

AnyMap

Example

const data = [ { foo: 'a', bar: 'baz' }, { foo: 'b', bar: 'quux' }, { foo: 'a', bar: 'whatever' } ]
collectBy('foo')(data) // => { a: { foo: 'a', bar: 'whatever' }, b: { foo: 'b', bar: 'quux' } }

Defined in

collect-by.ts:11


combineRegex

combineRegex(rs, opts?): RegExp

Combines regular expressions

Parameters

Name Type Default value
rs RegExp[] undefined
opts string ''

Returns

RegExp

Example

combineRegex([/[a-z]/, /[0-9]], 'g') ==> /[a-z][0-9]/g

Defined in

combine-regex.ts:7


compose

compose<T>(...fns): (t: T) => T

Right to left composition

Type parameters

Name
T

Parameters

Name Type
...fns (t: T) => T[]

Returns

fn

▸ (t): T

Parameters
Name Type
t T
Returns

T

Example

const addOne = (a) => a + 1
const timesTwo = (a) => a * 2
compose(addOne, timesTwo)(2) // => 5

Defined in

compose.ts:11


countIn

countIn<T>(el, ls): number

Find out how many of a given element is in an array or string.

Type parameters

Name
T

Parameters

Name Type
el T
ls string | T[]

Returns

number

Example

countIn('a', 'abc') // => 1
countIn('a', [ 'a', 'b', 'c' ]) // => 1

Defined in

count-in.ts:9


curry

curry<T>(fn): F

Takes a function and returns a function that takes any number of arguments

Produces a curried function

Type parameters

Name
T

Parameters

Name Type
fn F

Returns

F

Example

const addThree = (a, b, c) => a + b + c
curry(addThree)(1)(1)(1) // => 3

Defined in

curry.ts:13


debounce

debounce(fn, ms): R

Simple debounce

Parameters

Name Type
fn (...args: any) => any
ms number

Returns

R

Example

debounce(() => console.log('hi'), 5000)

Defined in

debounce.ts:10


diff

diff<T>(a, b): T[]

Diff two arrays

Type parameters

Name
T

Parameters

Name Type
a T[]
b T[]

Returns

T[]

Example

diff([ 1, 2, 3 ], [ 2, 3 ]) // => [ 1 ]

Defined in

diff.ts:7


div

div(ns): number

Divide any amount of numbers

Parameters

Name Type
ns number[]

Returns

number

Example

div([ 4, 2, 1 ]) // => 2

Defined in

div.ts:7


drop

drop<A>(n, arr): A[]

Like Haskell's drop

Type parameters

Name
A

Parameters

Name Type
n number
arr A[]

Returns

A[]

Example

drop(2, [ 1, 2, 3 ]) // => 3

Defined in

drop.ts:7


dropWhile

dropWhile<T>(pred, arr): T[]

The opposite of takeWhile: takes a predicate and array and returns an array of the elements that didn't pass the predicate

Type parameters

Name
T

Parameters

Name Type
pred (x: T) => boolean
arr T[]

Returns

T[]

Example

dropWhile(lessThanThree, [ 1, 2, 3, 4 ]) // => [ 3, 4 ]

Defined in

drop-while.ts:11


each

each<T>(xs, fn): Record<string, any> | T[]

Takes an array or object and a function, and runs the function on each element

Type parameters

Name
T

Parameters

Name Type
xs string | any[] | Record<string, any>
fn (a: any, b: string | number) => T

Returns

Record<string, any> | T[]

Example

each([ 'a', 'b', 'c' ], id) // => 'a'

Defined in

each.ts:33


escapeForRegex

escapeForRegex(s?): string

Parameters

Name Type Default value
s string ''

Returns

string

Example

escapeForRegex('foo') // => foo
escapeForRegex('1 \\ {} []|') // => '1 \\\\ \{\} \\[\\]\\|'

Defined in

escape-for-regex.ts:7


execute

execute(cmd): void

Like a standalone npm run that obeys npm bin

Parameters

Name Type
cmd string

Returns

void

Example

execute('standard-format -w')

Defined in

execute.ts:15


fileExists

fileExists(filePath): Promise<boolean>

Returns bool based on if passed path exists

Parameters

Name Type
filePath string

Returns

Promise<boolean>

Example

await fileExists('./foo') // => Promise<true>

Defined in

file-exists.ts:10


filter

filter<T>(fn, list): T[] | Record<string, T>

filter for array and object

Type parameters

Name
T

Parameters

Name Type
fn (x: T, y: string | number) => boolean
list string | AnyMap | T[]

Returns

T[] | Record<string, T>

Example

filter(id, [ 1, 2 ]) // => [ 1, 2 ]
filter(lessThanThree, [ 1, 2, 3, 4 ]) // => [ 1, 2 ]
filter(lessThanThree, { a: 1, b: 4 }) // =>  { a: 1 }

Defined in

filter.ts:14


findIndices

findIndices(el, arr): number[]

Find all indices of an item in an array

Parameters

Name Type
el any
arr any[]

Returns

number[]

Example

findIndices(1, [ 1, 2, 1 ]) // => [ 0, 2 ]

Defined in

find-indices.ts:7


findPort

findPort(port, cb): void

Find next open port

Parameters

Name Type
port number
cb (x: null | Error, y?: number) => void

Returns

void

Example

findPort(8000, (err, port) => console.log(`${port} is open`))

Defined in

find-port.ts:13


flattenAndUniq

flattenAndUniq<T>(arr): T[]

Recursively flatten arrays then uniq what's left

Type parameters

Name
T

Parameters

Name Type
arr T[]

Returns

T[]

Example

flattenAndUniq([ 1, 2, 3, [ 1, 2, 3 ]]) // =>  [ 1, 2, 3 ]

Defined in

flatten-and-uniq.ts:10


flip

flip(f): (...args: any[]) => any

Flips order of received arguments and calls f.

Parameters

Name Type
f (...xs: any[]) => any

Returns

fn

▸ (...args): any

Parameters
Name Type
...args any[]
Returns

any

Example

const minus = (a, b) => a - b
minus(2, 1) // => 1
flip(minus)(2, 1) // => -1

Defined in

flip.ts:9


fold

fold<T>(f, a): T

Applies f to first two items of list, then to next, etc.

Type parameters

Name
T

Parameters

Name Type
f (x: T, y: T) => T
a T[]

Returns

T

Example

foldl1(increment, [ 1, 1, 1 ]) // => 3

Defined in

fold.ts:8


getFreeDisk

getFreeDisk(): number

Get free disk space

Returns

number

Example

getFreeDisk()

Defined in

get-free-disk.ts:9


getFreeMemory

getFreeMemory(): number

Get free memory

Returns

number

Example

getFreeMemory()

Defined in

get-free-memory.ts:9


getGlobal

getGlobal(): undefined | typeof globalThis

Gets the global for your current context.

Returns

undefined | typeof globalThis

Example

getGlobal() // => window, global, whatever

Defined in

get-global.ts:7


getHashFromDate

getHashFromDate(): string

Returns a hash based on current timestamp

Returns

string

Example

getHashFromDate()

Defined in

get-hash-from-date.ts:7


getHashFromSystem

getHashFromSystem(): string

Get a md5 hash based on hostname, process.ppid, and date

Returns

string

Example

getHashFromSystem()

Defined in

get-hash-from-system.ts:10


getKeyByValue

getKeyByValue(value, object): undefined | string

Get the key for a value

Parameters

Name Type
value any
object AnyMap

Returns

undefined | string

Example

getKeyByValue('bar', { foo: 'bar' }) // => 'foo'

Defined in

get-key-by-value.ts:9


getLoadAverage

getLoadAverage(): number

Get load average

Returns

number

Example

getLoadAverage()

Defined in

get-load-average.ts:10


getMemoryUsage

getMemoryUsage(): number

Get memory usage

Returns

number

Example

getMemoryUsage()

Defined in

get-memory-usage.ts:9


getOrdinal

getOrdinal(n): string

Adds ordinal onto integer

Works up to 999

Parameters

Name Type
n number

Returns

string

Example

getOrdinal(1) // => '1st'

Defined in

get-ordinal.ts:9


getProjectRoot

getProjectRoot(): string

Get project root

Returns

string

Example

getProjectRoot() // /path/to/project

Defined in

get-project-root.ts:10


getRegexFlags

getRegexFlags(r): string[]

Returns the flags for a given regular expression

Parameters

Name Type
r RegExp

Returns

string[]

Example

getRegexFlags(/foo/ig) // => [ 'g', 'i' ]

Defined in

get-regex-flags.ts:7


getStdin

getStdin(f): void

Get stdin and do something with it.

Parameters

Name Type
f (a: string) => void

Returns

void

Example

getStdin((str) => {
  console.log(str.split(''))
})

Defined in

get-stdin.ts:9


getTerminalColumns

getTerminalColumns(): number

Get columns of current terminal

Returns

number

Example

getTerminalColumns()

Defined in

get-terminal-columns.ts:7


getTerminalRows

getTerminalRows(): number

Get current terminal rows

Returns

number

Example

getTerminalRows()

Defined in

get-terminal-rows.ts:7


getTerminalSize

getTerminalSize(): Size

Returns size of the current terminal

Returns

Size

Example

getTerminalSize() // => { columns: number, rows: number }

Defined in

get-terminal-size.ts:9


getUserHome

getUserHome(): string

Get current user's home directory

Returns

string

Example

getUserHome() // => /home/z

Defined in

get-user-home.ts:11


getUserShell

getUserShell(): string

Get the current user's shell, or an empty string on shell-less platforms

Returns

string

Example

getUserShell()

Defined in

get-user-shell.ts:8


greater

greater(a, b): number

Get the greater of two numbers

Parameters

Name Type
a number
b number

Returns

number

Example

greater(1, 2) // => 2

Defined in

greater.ts:7


groupBy

groupBy(p): (a: any[]) => AnyMap

Collect an an array of objects by string key

Parameters

Name Type
p string

Returns

fn

▸ (a): AnyMap

Parameters
Name Type
a any[]
Returns

AnyMap

Example

const data = [ { foo: 'a', bar: 'baz' }, { foo: 'b', bar: 'quux' }, { foo: 'a', bar: 'whatever' } ]
groupBy('foo')(data) // => { a: { foo: 'a', bar: 'whatever' }, b: { foo: 'b', bar: 'quux' } }

Defined in

group-by.ts:10


has

has(p, o): boolean

See if an object has a property

Parameters

Name Type
p string
o AnyMap

Returns

boolean

Example

has('a' { b: 'c' }) // => false

Defined in

has.ts:9


hasColor

hasColor(): boolean

Returns true if the current terminal supports color

Returns

boolean

Example

hasColor()

Defined in

has-color.ts:14


hasDuplicate

hasDuplicate<T>(arr): boolean

Returns true if an array has any duplicate elements

Type parameters

Name
T

Parameters

Name Type
arr T[]

Returns

boolean

Example

hasDuplicate([ 1, 1, 2 ]) // => true

Defined in

has-duplicate.ts:8


head

head<T>(arr): T

First element

Type parameters

Name
T

Parameters

Name Type
arr T[]

Returns

T

Example

head([ 1, 2, 3 ]) // => 1

Defined in

head.ts:7


id

id<A>(a): A

id

Type parameters

Name
A

Parameters

Name Type
a A

Returns

A

Example

id(1) // => 1
id() // => undefined

Defined in

id.ts:8


init

init(arr): any[]

Returns all but the last item of an array

Parameters

Name Type
arr any[]

Returns

any[]

Example

init([ 1, 2, 3 ]) // => [ 1, 2 ]

Defined in

init.ts:7


initials

initials(str): string

Trims a string to just caps

Parameters

Name Type
str string

Returns

string

Example

initials('Zac Anger') // => 'ZA'

Defined in

initials.ts:7


intersection

intersection<T>(xs, ys): T[]

Get the intersection of two arrays

Type parameters

Name
T

Parameters

Name Type
xs T[]
ys T[]

Returns

T[]

Example

intersection([ 1, 2 ], []) // => []
intersection([ 1, 2, 3 ], [1, 2]) // => [ 1, 2 ]

Defined in

intersection.ts:8


is

is(t, val): boolean

Returns true if the value is of the type

Parameters

Name Type
t string
val any

Returns

boolean

Example

is('number', 2) // => true

Defined in

is.ts:7


isArrayLike

isArrayLike(v): boolean

Returns true if the passed value is array-like

Parameters

Name Type
v any

Returns

boolean

Example

isArrayLike({}) // => false
isArrayLike([ 1, 2 ]) // => true

Defined in

is-array-like.ts:10


isBetween

isBetween(a, b, mid): boolean

Returns true if the last parameter is before the first and second parameters

Parameters

Name Type
a number
b number
mid number

Returns

boolean

Example

isBetween(1, 3, 2) // => true
isBetween(2, 1, 2) // => false

Defined in

is-between.ts:11


isBoolean

isBoolean(v): boolean

Returns true if the value is a boolean

Parameters

Name Type
v any

Returns

boolean

Example

isBoolean(true) // => true

Defined in

is-boolean.ts:7


isClass

isClass(fn): boolean

Returns true if passed fn is an ES2015 class

Parameters

Name Type
fn () => any

Returns

boolean

Example

isClass(noop) // => false

Defined in

is-class.ts:12


isDate

isDate(v): boolean

Returns true if the value is a date

Parameters

Name Type
v any

Returns

boolean

Example

isDate(new Date()) // => true

Defined in

is-date.ts:9


isDefined

isDefined(v): boolean

Returns true if the value is defined

Parameters

Name Type
v any

Returns

boolean

Example

isDefined(null) // => true

Defined in

is-defined.ts:7


isDirectory

isDirectory(filePath): Promise<boolean>

Returns true if the path is a directory

Parameters

Name Type
filePath string

Returns

Promise<boolean>

Example

await isDirectory('.') // => true
await isDirectory('./fake-path') // => false

Defined in

is-directory.ts:11


isEmpty

isEmpty(v): boolean

Returns true if the value is empty

Parameters

Name Type
v any

Returns

boolean

Example

isEmpty('') // => true
isEmpty({}) // => true
isEmpty([]) // => true
isEmpty(null) // => true

Defined in

is-empty.ts:14


isError

isError(a): boolean

Returns true if value is an error

Parameters

Name Type
a any

Returns

boolean

Example

isError(new Error()) // => true

Defined in

is-error.ts:9


isEven

isEven(n): boolean

Returns true if the number is even

Parameters

Name Type
n number

Returns

boolean

Example

isEven(2) // => true

Defined in

is-even.ts:7


isFile

isFile(filePath): Promise<boolean>

Returns true if the path is a file

Parameters

Name Type
filePath string

Returns

Promise<boolean>

Example

isFile('./README.md') // => true
isFile('.') // => false

Defined in

is-file.ts:11


isFloat

isFloat(n): boolean

Returns true if the number is a float

Parameters

Name Type
n number

Returns

boolean

Example

isFloat(2) // => false
isFloat(2.2) // => true

Defined in

is-float.ts:8


isFunction

isFunction(v): boolean

Returns true if the value is a function

Parameters

Name Type
v any

Returns

boolean

Example

const noop = () => {}
isFunction(2) // => false
isFunction(noop) // => true

Defined in

is-function.ts:9


isGenerator

isGenerator(v): boolean

Returns true if passed val is a generator

Parameters

Name Type
v any

Returns

boolean

Example

isGenerator(2) // => false

Defined in

is-generator.ts:7


isGeneratorFunction

isGeneratorFunction(v): boolean

Returns true if val is a generator function

Parameters

Name Type
v any

Returns

boolean

Example

isGeneratorFunction(2) // => false

Defined in

is-generator-function.ts:7


isInstalled

isInstalled(pkgName): boolean

Returns true if the passed node_module name is installed

Parameters

Name Type
pkgName string

Returns

boolean

Example

isInstalled('zeelib') // => true

Defined in

is-installed.ts:7


isInteger

isInteger(v): boolean

Returns true if the value is an integer

Parameters

Name Type
v any

Returns

boolean

Example

isInteger(2) // => true
isInteger(1.1) // => false

Defined in

is-integer.ts:8


isJson

isJson(str): boolean

Returns true if the string is valid JSON

Parameters

Name Type
str string

Returns

boolean

Example

isJson(JSON.stringify({ a: 'b' })) // => true

Defined in

is-json.ts:7


isMap

isMap(v): boolean

Returns true if value is a map

Parameters

Name Type
v any

Returns

boolean

Example

isMap(new Map()) // => true

Defined in

is-map.ts:9


isNode

isNode(): boolean

Returns true if code is in Node

Returns

boolean

Example

isNode()

Defined in

is-node.ts:7


isNull

isNull(v): boolean

Returns true if the value is null

Parameters

Name Type
v any

Returns

boolean

Example

isNull(null) // => true

Defined in

is-null.ts:7


isNullOrUndefined

isNullOrUndefined(v): boolean

Returns true if the value is null or undefined

Parameters

Name Type
v any

Returns

boolean

Example

isNullOrUndefined(null) // => true

Defined in

is-null-or-undefined.ts:10


isNumber

isNumber(v): boolean

Returns true if the value is a number and is not NaN

Parameters

Name Type
v any

Returns

boolean

Example

isNumber(2) // => true
isNumber(NaN) // => false

Defined in

is-number.ts:8


isObject

isObject(v): boolean

Returns true if the value is an object

Parameters

Name Type
v any

Returns

boolean

Example

isObject('asdf') // => false

Defined in

is-object.ts:7


isOdd

isOdd(n): boolean

Returns true if the number is odd

Parameters

Name Type
n number

Returns

boolean

Example

isOdd(1) // => true

Defined in

is-odd.ts:7


isPrimitive

isPrimitive(v): boolean

Returns true if value is a primitive

Parameters

Name Type
v any

Returns

boolean

Example

isPrimitive(1) // => true

Defined in

is-primitive.ts:7


isPromise

isPromise(a): boolean

Returns true if value is a promise

Parameters

Name Type
a any

Returns

boolean

Example

isPromise(Promise.resolve())

Defined in

is-promise.ts:7


isRegExp

isRegExp(v): boolean

Returns true if value is a RegExp

Parameters

Name Type
v any

Returns

boolean

Example

isRegExp(/a/) // => true

Defined in

is-reg-exp.ts:9


isRoot

isRoot(): boolean

Check if current process is running as root.

Returns

boolean

Example

isRoot() // => true

Defined in

is-root.ts:7


isSemver

isSemver(v): boolean

Returns true if the provided string is a valid semantic version

Parameters

Name Type
v string

Returns

boolean

Example

isSemver("0.0.0") // => true
isSemver("0.") // => false

Defined in

is-semver.ts:8


isSet

isSet(v): boolean

Returns true if value is a set

Parameters

Name Type
v any

Returns

boolean

Example

isSet(new Set()) // => true

Defined in

is-set.ts:9


isString

isString(v): boolean

Returns true if value is a string

Parameters

Name Type
v any

Returns

boolean

Example

isString('a') // => true

Defined in

is-string.ts:7


isSymLink

isSymLink(filePath): Promise<boolean>

Returns true if path is a symlink

Parameters

Name Type
filePath string

Returns

Promise<boolean>

Example

isSymLink('.') // => false

Defined in

is-sym-link.ts:10


isSymbol

isSymbol(a): boolean

Returns true if value is a symbol

Parameters

Name Type
a any

Returns

boolean

Example

isSymbol(Symbol.for('foo')) // => true

Defined in

is-symbol.ts:7


isUndefined

isUndefined(v): boolean

Returns true if value is undefined

Parameters

Name Type
v any

Returns

boolean

Example

isUndefined(undefined) // => true

Defined in

is-undefined.ts:7


isValidDate

isValidDate(d): boolean

Returns true if the passed object is a valid Date

Parameters

Name Type
d Date

Returns

boolean

Example

isValidDate('1234') // => false

Defined in

is-valid-date.ts:9


keep

keep(x): R

Returns an array or object with all falsey values removed

Parameters

Name Type
x R

Returns

R

Example

keep([ 'a', null, '', 2]) // => [ 'a', 2 ]
keep({ a: '', b: null, c: 2 }) // => { c: 2 }

Defined in

keep.ts:13


last

last<A>(arr): A

Returns the last element of the array

Type parameters

Name
A

Parameters

Name Type
arr A[]

Returns

A

Example

last([ 1, 2, 3 ]) // => 3

Defined in

last.ts:7


len

len(val): number

Get length of element

Works for array, object, string, set, map, and function

Parameters

Name Type
val any

Returns

number

Example

len('foo') // => 3
len([ 1, 2 ]) => 2
len((a, b) => a + b) // => 2

Defined in

len.ts:19


lesser

lesser(a, b): number

Returns the lesser of two numbers

Parameters

Name Type
a number
b number

Returns

number

Example

lesser(1, 2) // => 1

Defined in

lesser.ts:7


lightenOrDarken

lightenOrDarken(col, amt): string

Lighten or darken a color

Parameters

Name Type
col string
amt number

Returns

string

Example

// lighten
const newCol = lightenOrDarken('#F06D06', 20)
// darken
const newCol = lightenOrDarken('#F06D06', -20)

Defined in

lighten-or-darken.ts:10


lines

lines(str): string[]

Split a string on lines

Parameters

Name Type
str string

Returns

string[]

Example

lines('foo\nbar') // => [ 'foo', 'bar' ]

Defined in

lines.ts:7


mapObject

mapObject(f, o, ctx?): AnyMap

Map for objects

Parameters

Name Type
f (a: any, b: string, c: any) => any
o AnyMap
ctx any

Returns

AnyMap

Example

const f = (a) => a + ' world'
const d = { a: 'hello', b: 'sup' }
mapObject(f, d) // => { a: 'hello world', b: 'sup world' }

Defined in

map-object.ts:11


memoize

memoize(fn): any

A simple memoizing util

Parameters

Name Type
fn any

Returns

any

Example

memoize((a) => a) // => [Function]
memoize((a) => a)(1) // => 1

Defined in

memoize.ts:8


mzero

mzero(v?): any

Get monadic empty/zero value for a type

Parameters

Name Type
v? any

Returns

any

Example

mzero(1) // =>
mzero([1]) // => []

Defined in

mzero.ts:10


objectToString

objectToString(v): string

toString

Parameters

Name Type
v any

Returns

string

Example

objectToString({}) // => '[object Object]'

Defined in

object-to-string.ts:7


once

once<U>(fn): (...args: U[]) => U

Only calls fn once; subsequent calls just return first val

Type parameters

Name
U

Parameters

Name Type
fn <T>(...args: T[]) => T

Returns

fn

▸ (...args): U

Parameters
Name Type
...args U[]
Returns

U

Example

const o = once(id)
o(1) // => 1
o() // => 1
o(2) // => 1

Defined in

once.ts:10


open

open(args, opts, cb): void

Opens things. Works on Linux, Mac, and Windows

Parameters

Name Type
args string
opts AnyMap
cb Cb

Returns

void

Example

open('http://zacanger.com')

Defined in

open.ts:12


pick

pick(ks, o): AnyMap

pick as it is in rambda (not ramda)

Parameters

Name Type
ks string | string[]
o AnyMap

Returns

AnyMap

Example

pick('a', { a: 'a', b: 'b' }) // => { a: 'a' }
pick([ 'a', 'b' ], { a: 'a', b: 'b', c: 'c' }) // => { a: 'a', b: 'b' }

Defined in

pick.ts:11


pipe

pipe<T>(...fns): (data: T) => T

Left to right composition

Type parameters

Name
T

Parameters

Name Type
...fns AnyFn[]

Returns

fn

▸ (data): T

Parameters
Name Type
data T
Returns

T

Example

const addOne = (a) => a + 1
const timesTwo = (a) => a * 2
pipe(addOne, timesTwo)(2) // => 6

Defined in

pipe.ts:13


pluck

pluck(key, arr): any[]

Simple pluck

Parameters

Name Type
key string
arr any[]

Returns

any[]

Example

pluck('a', [ { a: 'a' }, { a: 'b' } ]) // => [ 'a', 'b' ]

Defined in

pluck.ts:7


product

product(nums): number

Get the product of a list of numbers

Parameters

Name Type
nums number[]

Returns

number

Example

product([ 1, 2, 3, 4 ]) // => 24

Defined in

product.ts:7


prompt

prompt(question): Promise<string>

Create a simple prompt for the terminal

Parameters

Name Type
question string

Returns

Promise<string>

Example

const answer = await prompt('Do the thing')
if (answer.toLowercase() === 'y') { doTheThing() }

Defined in

prompt.ts:11


range

range(a, b, step?): number[]

Range function

Takes a start and and end, and a step (defaults to 1).

This is inclusive. That is: 1..10,2 == 0,2,4,6,8,10

Parameters

Name Type Default value
a number undefined
b number undefined
step number 1

Returns

number[]

Example

range(1, 4) // => [ 1, 2, 3, 4 ]
range(1, 10, 3) // => [ 1, 4, 7, 10 ]

Defined in

range.ts:14


readJson

readJson(file): Promise<any[] | AnyMap>

Read json file and parse it

Parameters

Name Type
file string

Returns

Promise<any[] | AnyMap>

Example

const json = await readJson('./foo.json')

Defined in

read-json.ts:10


reduce

reduce<A, B>(fn, initialValue, data): B

Reduce

Type parameters

Name
A
B

Parameters

Name Type
fn (b: B, a: A) => B
initialValue B
data A[]

Returns

B

Example

reduce((a, b) => a + b, 0, [ 1, 2, 3, 4 ]) // => 10

Defined in

reduce.ts:7


removeBOM

removeBOM(content): string

The same as what's in Node's module (see lib/internal/module). Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) because the buffer-to-string conversion in fs.readFileSync() translates it to FEFF, the UTF-16 BOM.

Parameters

Name Type
content string

Returns

string

Example

removeBOM(someContent)

Defined in

remove-bom.ts:10


replicate

replicate<A>(n, p): A[]

Generates an array of the length of the first param, filled with the second param, calling the second param if it's a function

Type parameters

Name
A

Parameters

Name Type
n number
p A | (n: number, i: number) => A

Returns

A[]

Example

replicate(3, 10) // => [ 10, 10, 10 ]
replicate(4, (a) => a + 1) // => [ 5, 5, 5, 5 ]

Defined in

replicate.ts:10


rgbToHex

rgbToHex(r, g, b): string

Convert rgb to hex

Parameters

Name Type
r number
g number
b number

Returns

string

Example

rgbToHex(255, 255, 255) // => '#ffffff'

Defined in

rgb-to-hex.ts:7


safeGet

safeGet<A>(path, fallback?): (obj: AnyMap) => undefined | null | A

Like _.get: takes an access string and an optional fallback, then an object

Type parameters

Name
A

Parameters

Name Type
path string
fallback? A

Returns

fn

▸ (obj): undefined | null | A

Parameters
Name Type
obj AnyMap
Returns

undefined | null | A

Example

safeGet('a.b.c')({ a: { b: { c: 'd' } } }) // => 'd'
safeGet('a.b.e')({ a: { b: { c: 'd' } } }) // => undefined
safeGet('a.b.e', 'f')({ a: { b: { c: 'd' } } }) // => 'f'

Defined in

safe-get.ts:13


scaleToFit

scaleToFit(width, height, maxWidth?, maxHeight?): Object

Takes a width, height, maxWidth, and maxHeight

Returns an object that tells you the largest you can scale to

Parameters

Name Type
width number
height number
maxWidth? number
maxHeight? number

Returns

Object

Name Type
height number
width number

Example

scaleToFit(1400, 1200, 2000, 200) // => { width: 233.33333333333331, height: 200 }

Defined in

scale-to-fit.ts:10


shuffle

shuffle<A>(arr): A[]

Randomly shuffle items in array

Type parameters

Name
A

Parameters

Name Type
arr A[]

Returns

A[]

Example

shuffle([ 1, 2, 3, 4 ])

Defined in

shuffle.ts:7


sleep

sleep(ms): Promise<void>

Simple sleep.

Parameters

Name Type
ms number

Returns

Promise<void>

Example

const delay = await sleep(1000)
sleep(1000).then(doAThing)

Defined in

sleep.ts:8


sortBy

sortBy<A>(f, xs): A[]

Takes a sort fn and an array

Returns a sorted array

Type parameters

Name
A

Parameters

Name Type
f (a: A) => number
xs A[]

Returns

A[]

Example

const list = [ { id: 1 }, { id: 3 }, { id: 2 } ]
sortBy(({ id }) => id, list) // => [ { id: 1 }, { id: 2 }, { id: 3 } ]

Defined in

sort-by.ts:10


sortObject

sortObject(o): AnyMap

Sort an object (recursively)

Parameters

Name Type
o AnyMap

Returns

AnyMap

Example

sortObject({ b: 'c', a: 'd' }) // => { a: 'd', b: 'c' }

Defined in

sort-object.ts:10


span

span<A>(pred, arr): [A[], A[]]

Similar to takeWhile: returns a tuple of all elements that pass predicate and all elements that did not

Type parameters

Name
A

Parameters

Name Type
pred (a: A) => boolean
arr A[]

Returns

[A[], A[]]

Example

span(lessThanThree, [ 1, 2, 3, 4 ]) // => [ [ 1, 2 ], [ 3, 4 ] ]

Defined in

span.ts:11


splitAt

splitAt<A>(num, arr): [A[], A[]]

Like Haskell's splitAt

splitAt n xs returns a tuple xs prefix of length n and second element is remainder of list

Type parameters

Name
A

Parameters

Name Type
num number
arr A[]

Returns

[A[], A[]]

Example

splitAt(1, [ [ 'a', 'b' ], 'c' ]) // => [ [ [ 'a', 'b' ] ], [ 'c' ] ]

Defined in

split-at.ts:13


store

store(state?): Store

A very simple store implementation (think Redux-like)

Parameters

Name Type
state AnyMap

Returns

Store

Example

const state = store()
state.subscribe((next, prev) => next.foo)
state.update({ foo: 'bar' })

Defined in

store.ts:20


stripAnsi

stripAnsi(s?): string

Remove ANSI escapes from string

Parameters

Name Type Default value
s string ''

Returns

string

Example

stripAnsi(colorize.blue('hello')) // => 'hello'

Defined in

strip-ansi.ts:7


sub

sub(ns): number

Subtract any amount of numbers

Parameters

Name Type
ns number[]

Returns

number

Example

sub([ 4, 3, 2, 1 ]) // => -2

Defined in

sub.ts:7


sum

sum(nums): number

Sum an array of numbers

Parameters

Name Type
nums number[]

Returns

number

Example

sum([ 1, 2, 3, 4 ]) // => 10

Defined in

sum.ts:7


tail

tail<T>(arr): T[]

All elements except first

Type parameters

Name
T

Parameters

Name Type
arr T[]

Returns

T[]

Example

tail([ 1, 2, 3, 4 ]) // => [ 2, 3, 4 ]

Defined in

tail.ts:7


take

take<A>(n, a): A[]

Like Haskell's take

Type parameters

Name
A

Parameters

Name Type
n number
a A[]

Returns

A[]

Example

take(2, [ 1, 2, 3 ]) // => [ 1, 2 ]

Defined in

take.ts:7


takeLast

takeLast<A>(num, arr): A[]

Takes the last n items of array

Type parameters

Name
A

Parameters

Name Type
num number
arr A[]

Returns

A[]

Example

takeLast(2, [ 1, 2, 3, 4 ]) // => [ 3, 4 ]

Defined in

take-last.ts:7


takeWhile

takeWhile<A>(pred, arr): A[]

Returns elements that pass predicate, until failure (ignores matches after failure)

Type parameters

Name
A

Parameters

Name Type
pred (a: A, n: number) => boolean
arr A[]

Returns

A[]

Example

takeWhile((x) => x < 3, [ 1, 2, 3, 4 ]) // => [ 1, 2 ]

Defined in

take-while.ts:8


tap

tap(msg): <A>(a: A) => A

Log a value to console, and return that value

Parameters

Name Type
msg string

Returns

fn

▸ <A>(a): A

Type parameters
Name
A
Parameters
Name Type
a A
Returns

A

Example

const logger = tap('This is the thing!')
logger(2) // => this is the thing 2 ; 2

Defined in

tap.ts:8


touch

touch(filePath, contents?): Promise<void>

Make a file if it doesn't exist already

Parameters

Name Type Default value
filePath string undefined
contents string ''

Returns

Promise<void>

Example

touch('foo.txt')
touch('foo.txt', 'contentx')

Defined in

touch.ts:11


truncate

truncate(str, limit, tail?): string

Truncate a string

Parameters

Name Type Default value
str string undefined
limit number undefined
tail string '…'

Returns

string

Example

truncate('asdf asdf asdf asdf', 4) // => 'asd…'
truncate('asdf asdf asdf asdf', 8, ' etc.') // => 'asd etc.'

Defined in

truncate.ts:8


tryJson

tryJson<T>(o): AnyMap | T

Tries to parse JSON, if is JSON

Type parameters

Name
T

Parameters

Name Type
o T

Returns

AnyMap | T

Example

tryJson('[1,2]') // => [ 1, 2 ]
tryJson([ 1, 2 ]) // => [ 1, 2 ]

Defined in

try-json.ts:10


typeOf

typeOf(a): string

Enhanced typeof

Parameters

Name Type
a any

Returns

string

Example

typeOf('a') // => 'string'
typeOf(new Date()) // => 'date'

Defined in

type-of.ts:13


union

union<A>(...xs): A[]

Get the union of any amount of arrays

Type parameters

Name
A

Parameters

Name Type
...xs A[][]

Returns

A[]

Example

union([ 1, 2, 3 ], [ 2, 3, 4 ]) // => [ 1, 2, 3, 4 ]

Defined in

union.ts:9


uniq

uniq<A>(arr): A[]

Uniq an array

Type parameters

Name
A

Parameters

Name Type
arr A[]

Returns

A[]

Example

uniq([ 1, 1, 2, 3 ]) // => [ 1, 2, 3 ]

Defined in

uniq.ts:7


uniqBy

uniqBy(el, xs): AnyMap[]

Unique an array by a string key of objects in array Returns only the values of the passed key

Parameters

Name Type
el string
xs AnyMap[]

Returns

AnyMap[]

Example

const a = [ { foo: 'foo' }, { foo: 'bar' }, { foo: 'foo' } ]
uniqBy('foo', a) // => [ { foo: 'foo' }, { foo: 'bar' } ]

Defined in

uniq-by.ts:11


unless

unless<A>(cond, fn): null | A

Call a function if the condition is falsey

Type parameters

Name
A

Parameters

Name Type
cond boolean
fn () => A

Returns

null | A

Example

unless(() => true, false) // => true

Defined in

unless.ts:7


unlines

unlines(arr): string

Join an array with lines

Parameters

Name Type
arr string[]

Returns

string

Example

unlines([ 'foo', 'bar' ]) // => 'foo\nbar'

Defined in

unlines.ts:7


until

until<T>(p, f): (...args: T[]) => T

Until p f yields result of applying f until p holds

Type parameters

Name
T

Parameters

Name Type
p (x: T) => boolean
f (...args: T[]) => T

Returns

fn

▸ (...args): T

Parameters
Name Type
...args T[]
Returns

T

Example

until(equals5, increment)(2) // => 5

Defined in

until.ts:7


unwords

unwords(arr): string

Join an array with spaces

Parameters

Name Type
arr string[]

Returns

string

Example

unwords([ 'foo', bar ]) // => 'foo bar'

Defined in

unwords.ts:7


watch

watch(filePath, cb): void

Watch a file for changes, and call the function

Parameters

Name Type
filePath string
cb (event: string, filename: null | string) => void

Returns

void

Example

watch('./foo', console.log)

Defined in

watch.ts:10


words

words(str): string[]

Split a string on spaces

Parameters

Name Type
str string

Returns

string[]

Example

words('foo bar') // => [ 'foo', 'bar' ]

Defined in

words.ts:7


writeJson

writeJson(path, data, indent): Promise<void>

Write JSON from a stringifiable value

Parameters

Name Type
path string
data any
indent number

Returns

Promise<void>

Example

await writeJson('foo.json', someObject, 4)

Defined in

write-json.ts:9