zeelib v13.0.0
zeelib / Exports
zeelib
Utility library in TypeScript, with a focus on Node and FP utils and emphasis on not rewriting builtin features.
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
- and
- average
- capitalizeFirstChar
- chunk
- clamp
- collapseNewlines
- collapseWhitespace
- collectBy
- combineRegex
- compose
- countIn
- curry
- debounce
- diff
- div
- drop
- dropWhile
- each
- escapeForRegex
- execute
- fileExists
- filter
- findIndices
- findPort
- flattenAndUniq
- flip
- fold
- getFreeDisk
- getFreeMemory
- getGlobal
- getHashFromDate
- getHashFromSystem
- getKeyByValue
- getLoadAverage
- getMemoryUsage
- getOrdinal
- getProjectRoot
- getRegexFlags
- getStdin
- getTerminalColumns
- getTerminalRows
- getTerminalSize
- getUserHome
- getUserShell
- greater
- groupBy
- has
- hasColor
- hasDuplicate
- head
- id
- init
- initials
- intersection
- is
- isArrayLike
- isBetween
- isBoolean
- isClass
- isDate
- isDefined
- isDirectory
- isEmpty
- isError
- isEven
- isFile
- isFloat
- isFunction
- isGenerator
- isGeneratorFunction
- isInstalled
- isInteger
- isJson
- isMap
- isNode
- isNull
- isNullOrUndefined
- isNumber
- isObject
- isOdd
- isPrimitive
- isPromise
- isRegExp
- isRoot
- isSemver
- isSet
- isString
- isSymLink
- isSymbol
- isUndefined
- isValidDate
- keep
- last
- len
- lesser
- lightenOrDarken
- lines
- mapObject
- memoize
- mzero
- objectToString
- once
- open
- pick
- pipe
- pluck
- product
- prompt
- range
- readJson
- reduce
- removeBOM
- replicate
- rgbToHex
- safeGet
- scaleToFit
- shuffle
- sleep
- sortBy
- sortObject
- span
- splitAt
- store
- stripAnsi
- sub
- sum
- tail
- take
- takeLast
- takeWhile
- tap
- touch
- truncate
- tryJson
- typeOf
- union
- uniq
- uniqBy
- unless
- unlines
- until
- unwords
- watch
- words
- writeJson
Type Aliases
AnyFn
Ƭ AnyFn: (...args: any[]) => any
Type declaration
▸ (...args): any
Parameters
| Name | Type |
|---|---|
...args | any[] |
Returns
any
Defined in
AnyMap
Ƭ AnyMap: Record\<string, any>
Defined in
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
ColMap
Ƭ ColMap: Record\<string, (t: string) => string>
Defined in
F
Ƭ F: (...args: any[]) => any
Type declaration
▸ (...args): any
Parameters
| Name | Type |
|---|---|
...args | any[] |
Returns
any
Defined in
Listener
Ƭ Listener: (a: AnyMap, b: AnyMap) => any
Type declaration
▸ (a, b): any
Parameters
| Name | Type |
|---|---|
a | AnyMap |
b | AnyMap |
Returns
any
Defined in
R
Ƭ R: (...args: any[]) => Timer
Type declaration
▸ (...args): Timer
Parameters
| Name | Type |
|---|---|
...args | any[] |
Returns
Defined in
R
Ƭ R: string | any[] | AnyMap
Defined in
Timer
Ƭ Timer: NodeJS.Timeout | number | null
Defined in
Updater
Ƭ Updater: (a: AnyMap) => AnyMap
Type declaration
▸ (a): AnyMap
Parameters
| Name | Type |
|---|---|
a | AnyMap |
Returns
Defined in
Variables
colorize
• Const colorize: ColMap
Defined in
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 ]) // => falseDefined in
average
▸ average(xs): number
Averages a list of numbers
Parameters
| Name | Type |
|---|---|
xs | number[] |
Returns
number
Example
average([ 2, 4, 6, 8 ]) // => 5Defined in
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
chunk
Splits an array into chunks
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
arr | T[] |
n | number |
Returns
Example
chunk([1, 2, 3, 4 ], 2) // => [ [ 1, 2 ], [ 3, 4 ] ]Defined in
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) // => 00Defined in
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
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
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
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
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]/gDefined in
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) // => 5Defined in
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' ]) // => 1Defined in
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
Example
const addThree = (a, b, c) => a + b + c
curry(addThree)(1)(1)(1) // => 3Defined in
debounce
▸ debounce(fn, ms): R
Simple debounce
Parameters
| Name | Type |
|---|---|
fn | (...args: any) => any |
ms | number |
Returns
Example
debounce(() => console.log('hi'), 5000)Defined in
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
div
▸ div(ns): number
Divide any amount of numbers
Parameters
| Name | Type |
|---|---|
ns | number[] |
Returns
number
Example
div([ 4, 2, 1 ]) // => 2Defined in
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 ]) // => 3Defined in
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
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
escapeForRegex
▸ escapeForRegex(s?): string
Parameters
| Name | Type | Default value |
|---|---|---|
s | string | '' |
Returns
string
Example
escapeForRegex('foo') // => foo
escapeForRegex('1 \\ {} []|') // => '1 \\\\ \{\} \\[\\]\\|'Defined in
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
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
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
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
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
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
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) // => -1Defined in
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 ]) // => 3Defined in
getFreeDisk
▸ getFreeDisk(): number
Get free disk space
Returns
number
Example
getFreeDisk()Defined in
getFreeMemory
▸ getFreeMemory(): number
Get free memory
Returns
number
Example
getFreeMemory()Defined in
getGlobal
▸ getGlobal(): undefined | typeof globalThis
Gets the global for your current context.
Returns
undefined | typeof globalThis
Example
getGlobal() // => window, global, whateverDefined in
getHashFromDate
▸ getHashFromDate(): string
Returns a hash based on current timestamp
Returns
string
Example
getHashFromDate()Defined in
getHashFromSystem
▸ getHashFromSystem(): string
Get a md5 hash based on hostname, process.ppid, and date
Returns
string
Example
getHashFromSystem()Defined in
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
getLoadAverage
▸ getLoadAverage(): number
Get load average
Returns
number
Example
getLoadAverage()Defined in
getMemoryUsage
▸ getMemoryUsage(): number
Get memory usage
Returns
number
Example
getMemoryUsage()Defined in
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
getProjectRoot
▸ getProjectRoot(): string
Get project root
Returns
string
Example
getProjectRoot() // /path/to/projectDefined in
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
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
getTerminalColumns
▸ getTerminalColumns(): number
Get columns of current terminal
Returns
number
Example
getTerminalColumns()Defined in
getTerminalRows
▸ getTerminalRows(): number
Get current terminal rows
Returns
number
Example
getTerminalRows()Defined in
getTerminalSize
▸ getTerminalSize(): Size
Returns size of the current terminal
Returns
Example
getTerminalSize() // => { columns: number, rows: number }Defined in
getUserHome
▸ getUserHome(): string
Get current user's home directory
Returns
string
Example
getUserHome() // => /home/zDefined in
getUserShell
▸ getUserShell(): string
Get the current user's shell, or an empty string on shell-less platforms
Returns
string
Example
getUserShell()Defined in
greater
▸ greater(a, b): number
Get the greater of two numbers
Parameters
| Name | Type |
|---|---|
a | number |
b | number |
Returns
number
Example
greater(1, 2) // => 2Defined in
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
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
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' }) // => falseDefined in
hasColor
▸ hasColor(): boolean
Returns true if the current terminal supports color
Returns
boolean
Example
hasColor()Defined in
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 ]) // => trueDefined in
head
▸ head\<T>(arr): T
First element
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
arr | T[] |
Returns
T
Example
head([ 1, 2, 3 ]) // => 1Defined in
id
▸ id\<A>(a): A
id
Type parameters
| Name |
|---|
A |
Parameters
| Name | Type |
|---|---|
a | A |
Returns
A
Example
id(1) // => 1
id() // => undefinedDefined in
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
initials
▸ initials(str): string
Trims a string to just caps
Parameters
| Name | Type |
|---|---|
str | string |
Returns
string
Example
initials('Zac Anger') // => 'ZA'Defined in
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
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) // => trueDefined in
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 ]) // => trueDefined in
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) // => falseDefined in
isBoolean
▸ isBoolean(v): boolean
Returns true if the value is a boolean
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isBoolean(true) // => trueDefined in
isClass
▸ isClass(fn): boolean
Returns true if passed fn is an ES2015 class
Parameters
| Name | Type |
|---|---|
fn | () => any |
Returns
boolean
Example
isClass(noop) // => falseDefined in
isDate
▸ isDate(v): boolean
Returns true if the value is a date
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isDate(new Date()) // => trueDefined in
isDefined
▸ isDefined(v): boolean
Returns true if the value is defined
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isDefined(null) // => trueDefined in
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') // => falseDefined in
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) // => trueDefined in
isError
▸ isError(a): boolean
Returns true if value is an error
Parameters
| Name | Type |
|---|---|
a | any |
Returns
boolean
Example
isError(new Error()) // => trueDefined in
isEven
▸ isEven(n): boolean
Returns true if the number is even
Parameters
| Name | Type |
|---|---|
n | number |
Returns
boolean
Example
isEven(2) // => trueDefined in
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('.') // => falseDefined in
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) // => trueDefined in
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) // => trueDefined in
isGenerator
▸ isGenerator(v): boolean
Returns true if passed val is a generator
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isGenerator(2) // => falseDefined in
isGeneratorFunction
▸ isGeneratorFunction(v): boolean
Returns true if val is a generator function
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isGeneratorFunction(2) // => falseDefined in
isInstalled
▸ isInstalled(pkgName): boolean
Returns true if the passed node_module name is installed
Parameters
| Name | Type |
|---|---|
pkgName | string |
Returns
boolean
Example
isInstalled('zeelib') // => trueDefined in
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) // => falseDefined in
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' })) // => trueDefined in
isMap
▸ isMap(v): boolean
Returns true if value is a map
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isMap(new Map()) // => trueDefined in
isNode
▸ isNode(): boolean
Returns true if code is in Node
Returns
boolean
Example
isNode()Defined in
isNull
▸ isNull(v): boolean
Returns true if the value is null
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isNull(null) // => trueDefined in
isNullOrUndefined
▸ isNullOrUndefined(v): boolean
Returns true if the value is null or undefined
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isNullOrUndefined(null) // => trueDefined in
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) // => falseDefined in
isObject
▸ isObject(v): boolean
Returns true if the value is an object
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isObject('asdf') // => falseDefined in
isOdd
▸ isOdd(n): boolean
Returns true if the number is odd
Parameters
| Name | Type |
|---|---|
n | number |
Returns
boolean
Example
isOdd(1) // => trueDefined in
isPrimitive
▸ isPrimitive(v): boolean
Returns true if value is a primitive
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isPrimitive(1) // => trueDefined in
isPromise
▸ isPromise(a): boolean
Returns true if value is a promise
Parameters
| Name | Type |
|---|---|
a | any |
Returns
boolean
Example
isPromise(Promise.resolve())Defined in
isRegExp
▸ isRegExp(v): boolean
Returns true if value is a RegExp
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isRegExp(/a/) // => trueDefined in
isRoot
▸ isRoot(): boolean
Check if current process is running as root.
Returns
boolean
Example
isRoot() // => trueDefined in
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.") // => falseDefined in
isSet
▸ isSet(v): boolean
Returns true if value is a set
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isSet(new Set()) // => trueDefined in
isString
▸ isString(v): boolean
Returns true if value is a string
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isString('a') // => trueDefined in
isSymLink
▸ isSymLink(filePath): Promise\<boolean>
Returns true if path is a symlink
Parameters
| Name | Type |
|---|---|
filePath | string |
Returns
Promise\<boolean>
Example
isSymLink('.') // => falseDefined in
isSymbol
▸ isSymbol(a): boolean
Returns true if value is a symbol
Parameters
| Name | Type |
|---|---|
a | any |
Returns
boolean
Example
isSymbol(Symbol.for('foo')) // => trueDefined in
isUndefined
▸ isUndefined(v): boolean
Returns true if value is undefined
Parameters
| Name | Type |
|---|---|
v | any |
Returns
boolean
Example
isUndefined(undefined) // => trueDefined in
isValidDate
▸ isValidDate(d): boolean
Returns true if the passed object is a valid Date
Parameters
| Name | Type |
|---|---|
d | Date |
Returns
boolean
Example
isValidDate('1234') // => falseDefined in
keep
▸ keep(x): R
Returns an array or object with all falsey values removed
Parameters
| Name | Type |
|---|---|
x | R |
Returns
Example
keep([ 'a', null, '', 2]) // => [ 'a', 2 ]
keep({ a: '', b: null, c: 2 }) // => { c: 2 }Defined in
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 ]) // => 3Defined in
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) // => 2Defined in
lesser
▸ lesser(a, b): number
Returns the lesser of two numbers
Parameters
| Name | Type |
|---|---|
a | number |
b | number |
Returns
number
Example
lesser(1, 2) // => 1Defined in
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
lines
▸ lines(str): string[]
Split a string on lines
Parameters
| Name | Type |
|---|---|
str | string |
Returns
string[]
Example
lines('foo\nbar') // => [ 'foo', 'bar' ]Defined in
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
Example
const f = (a) => a + ' world'
const d = { a: 'hello', b: 'sup' }
mapObject(f, d) // => { a: 'hello world', b: 'sup world' }Defined in
memoize
▸ memoize(fn): any
A simple memoizing util
Parameters
| Name | Type |
|---|---|
fn | any |
Returns
any
Example
memoize((a) => a) // => [Function]
memoize((a) => a)(1) // => 1Defined in
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
objectToString
▸ objectToString(v): string
toString
Parameters
| Name | Type |
|---|---|
v | any |
Returns
string
Example
objectToString({}) // => '[object Object]'Defined in
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) // => 1Defined in
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
pick
▸ pick(ks, o): AnyMap
pick
as it is in rambda (not ramda)
Parameters
| Name | Type |
|---|---|
ks | string | string[] |
o | AnyMap |
Returns
Example
pick('a', { a: 'a', b: 'b' }) // => { a: 'a' }
pick([ 'a', 'b' ], { a: 'a', b: 'b', c: 'c' }) // => { a: 'a', b: 'b' }Defined in
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) // => 6Defined in
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
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 ]) // => 24Defined in
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
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
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
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 ]) // => 10Defined in
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
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
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
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
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
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
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
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
sortObject
▸ sortObject(o): AnyMap
Sort an object (recursively)
Parameters
| Name | Type |
|---|---|
o | AnyMap |
Returns
Example
sortObject({ b: 'c', a: 'd' }) // => { a: 'd', b: 'c' }Defined in
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
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
store
▸ store(state?): Store
A very simple store implementation (think Redux-like)
Parameters
| Name | Type |
|---|---|
state | AnyMap |
Returns
Example
const state = store()
state.subscribe((next, prev) => next.foo)
state.update({ foo: 'bar' })Defined in
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
sub
▸ sub(ns): number
Subtract any amount of numbers
Parameters
| Name | Type |
|---|---|
ns | number[] |
Returns
number
Example
sub([ 4, 3, 2, 1 ]) // => -2Defined in
sum
▸ sum(nums): number
Sum an array of numbers
Parameters
| Name | Type |
|---|---|
nums | number[] |
Returns
number
Example
sum([ 1, 2, 3, 4 ]) // => 10Defined in
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
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
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
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 ]1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
