npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zeelib

v13.0.0

Published

Util lib

Downloads

35,086

Readme

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)

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 ]