Welshman Docs / @welshman/lib
@welshman/lib
Classes
Type Aliases
CustomPromise<T, E>
CustomPromise<
T,E> =Promise<T> &object
Defined in: packages/lib/src/Deferred.ts:2
Promise type with strongly typed error
Type declaration
__errorType
__errorType:
E
Type Parameters
T
T
E
E
Deferred<T, E>
Deferred<
T,E> =CustomPromise<T,E> &object
Defined in: packages/lib/src/Deferred.ts:18
Promise with exposed resolve/reject functions and typed error
Type declaration
reject()
reject: (
arg) =>void
Parameters
arg
E
Returns
void
resolve()
resolve: (
arg) =>void
Parameters
arg
T
Returns
void
Type Parameters
T
T
E
E = T
MakeNonOptional<T>
MakeNonOptional<
T> ={ [K in keyof T]-?: T[K] }
Defined in: packages/lib/src/Tools.ts:25
Type Parameters
T
T
MakeOptional<T, K>
MakeOptional<
T,K> =Override<T,Partial<Pick<T,K>>>
Defined in: packages/lib/src/Tools.ts:23
Type Parameters
T
T
K
K extends keyof T
Maybe<T>
Maybe<
T> =T|undefined
Defined in: packages/lib/src/Tools.ts:5
Type Parameters
T
T
MaybeAsync<T>
MaybeAsync<
T> =T|Promise<T>
Defined in: packages/lib/src/Tools.ts:7
Type Parameters
T
T
Obj<T>
Obj<
T> =Record<string,T>
Defined in: packages/lib/src/Tools.ts:3
Type Parameters
T
T = any
Override<T, R>
Override<
T,R> =Omit<T, keyofR> &R
Defined in: packages/lib/src/Tools.ts:21
Type Parameters
T
T
R
R
PollOptions
PollOptions =
object
Defined in: packages/lib/src/Tools.ts:1175
Properties
condition()
condition: () =>
unknown
Defined in: packages/lib/src/Tools.ts:1177
Returns
unknown
interval?
optionalinterval:number
Defined in: packages/lib/src/Tools.ts:1178
signal
signal:
AbortSignal
Defined in: packages/lib/src/Tools.ts:1176
TaskQueueOptions<Item>
TaskQueueOptions<
Item> =object
Defined in: packages/lib/src/TaskQueue.ts:3
Type Parameters
Item
Item
Properties
batchDelay
batchDelay:
number
Defined in: packages/lib/src/TaskQueue.ts:5
batchSize
batchSize:
number
Defined in: packages/lib/src/TaskQueue.ts:4
processItem()
processItem: (
item) =>unknown
Defined in: packages/lib/src/TaskQueue.ts:6
Parameters
item
Item
Returns
unknown
Variables
dateFormatter
constdateFormatter:DateTimeFormat
Defined in: packages/lib/src/Tools.ts:325
Formatter for date
dateTimeFormatter
constdateTimeFormatter:DateTimeFormat
Defined in: packages/lib/src/Tools.ts:312
Formatter for date+time
DAY
constDAY:number
Defined in: packages/lib/src/Tools.ts:238
One day in seconds
HOUR
constHOUR:number
Defined in: packages/lib/src/Tools.ts:235
One hour in seconds
LOCALE
constLOCALE:string
Defined in: packages/lib/src/Tools.ts:253
User's default locale
MINUTE
constMINUTE:60=60
Defined in: packages/lib/src/Tools.ts:232
One minute in seconds
MONTH
constMONTH:number
Defined in: packages/lib/src/Tools.ts:244
One month in seconds (approximate)
QUARTER
constQUARTER:number
Defined in: packages/lib/src/Tools.ts:247
One quarter in seconds (approximate)
textDecoder
consttextDecoder:TextDecoder
Defined in: packages/lib/src/Tools.ts:1831
textEncoder
consttextEncoder:TextEncoder
Defined in: packages/lib/src/Tools.ts:1829
timeFormatter
consttimeFormatter:DateTimeFormat
Defined in: packages/lib/src/Tools.ts:339
Formatter for time
TIMEZONE
constTIMEZONE:string
Defined in: packages/lib/src/Tools.ts:256
User's default timezone
WEEK
constWEEK:number
Defined in: packages/lib/src/Tools.ts:241
One week in seconds
YEAR
constYEAR:number
Defined in: packages/lib/src/Tools.ts:250
One year in seconds (approximate)
Functions
add()
add(
x,y):number
Defined in: packages/lib/src/Tools.ts:146
Adds two numbers, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
number
addToKey()
addToKey<
T>(m,k,v):void
Defined in: packages/lib/src/Tools.ts:1711
Adds value to Set at key in object
Type Parameters
T
T
Parameters
m
Record<string, Set<T>>
Object mapping keys to Sets
k
string
Key to add to
v
T
Value to add
Returns
void
addToMapKey()
addToMapKey<
K,T>(m,k,v):void
Defined in: packages/lib/src/Tools.ts:1747
Adds value to Set at key in Map
Type Parameters
K
K
T
T
Parameters
m
Map<K, Set<T>>
Map of Sets
k
K
Key to add to
v
T
Value to add
Returns
void
ago()
ago(
unit,count):number
Defined in: packages/lib/src/Tools.ts:279
Returns Unix timestamp from specified time ago
Parameters
unit
number
Time unit in seconds
count
number = 1
Number of units
Returns
number
Timestamp in seconds
allPass()
allPass<
T>(...predicates): (x) =>boolean
Defined in: packages/lib/src/Tools.ts:1691
Returns a function that checks whether all predicates pass
Type Parameters
T
T
Parameters
predicates
...(x) => unknown[]
Returns
(
x):boolean
Parameters
x
T
Returns
boolean
always()
always<
T>(x, ...args): () =>T
Defined in: packages/lib/src/Tools.ts:49
Creates a function that always returns the same value
Type Parameters
T
T
Parameters
x
T
Value to return
args
...unknown[]
Returns
Function that returns x
():
T
Returns
T
append()
append<
T>(x,xs):T[]
Defined in: packages/lib/src/Tools.ts:448
Appends element to array
Type Parameters
T
T
Parameters
x
T
Element to append
xs
Iterable<T>
Array to append to
Returns
T[]
New array with element appended
assertDefined()
assertDefined<
T>(x, ...args):NonNullable<T>
Defined in: packages/lib/src/Tools.ts:15
Type Parameters
T
T
Parameters
x
T
args
...unknown[]
Returns
NonNullable<T>
assoc()
assoc<
K,T>(k,v): <U>(o) =>U
Defined in: packages/lib/src/Tools.ts:1673
Returns a function that adds/updates a property on object
Type Parameters
K
K extends string
T
T
Parameters
k
K
v
T
Returns
<
U>(o):U
Type Parameters
U
U
Parameters
o
U
Returns
U
avg()
avg(
xs):number
Defined in: packages/lib/src/Tools.ts:192
Returns average of array values, handling undefined values
Parameters
xs
(undefined | number)[]
Returns
number
batch()
batch<
T>(t,f): (x) =>void
Defined in: packages/lib/src/Tools.ts:1288
Creates batching function that collects items this function does not delay execution, if a series of items is passed in sequence the first item will be processed immediately, and the rest will be batched
Type Parameters
T
T
Parameters
t
number
Time window for batching
f
(xs) => void
Function to process batch
Returns
Function that adds items to batch
(
x):void
Parameters
x
T
Returns
void
batcher()
batcher<
T,U>(t,execute): (request) =>Promise<U>
Defined in: packages/lib/src/Tools.ts:1317
Creates batching function that returns results
Type Parameters
T
T
U
U
Parameters
t
number
Time window for batching
execute
(request) => U[] | Promise<U[]>
Function to process batch
Returns
Function that returns promise of result
(
request):Promise<U>
Parameters
request
T
Returns
Promise<U>
bech32ToHex()
bech32ToHex(
b32):string
Defined in: packages/lib/src/Tools.ts:1791
Converts bech32 string to hex format
Parameters
b32
string
Bech32 string to convert
Returns
string
Hex encoded string
between()
between(
bounds,n):boolean
Defined in: packages/lib/src/Tools.ts:200
Checks if a number is between two values (exclusive)
Parameters
bounds
[number, number]
Lower and upper bounds
n
number
Number to check
Returns
boolean
True if n is between low and high
bind()
bind<
F>(f, ...args): (...args) =>any
Defined in: packages/lib/src/Tools.ts:65
Bind function
Type Parameters
F
F extends (...args) => any
Parameters
f
F
Function to bind
args
...Parameters<F>
Returns
bound function
(...
args):any
Parameters
args
...any[]
Returns
any
bytesToHex()
bytesToHex(
buffer):string
Defined in: packages/lib/src/Tools.ts:1807
Converts an array buffer or Uint8Array to hex format
Parameters
buffer
ArrayBuffer or Uint8Array to convert
ArrayBuffer | Uint8Array<ArrayBufferLike>
Returns
string
Hex encoded string
cached()
cached<
T,V,Args>(__namedParameters): {(...args):NonNullable<V>;cache:LRUCache<T,V>;getKey: (args) =>T;getValue: (args) =>V;pop: (...args) =>V; }
Defined in: packages/lib/src/LRUCache.ts:52
Creates a memoized function with LRU caching
Type Parameters
T
T
Cache key type
V
V
Cache value type
Args
Args extends any[]
Function argument types
Parameters
__namedParameters
getKey
(args) => T
getValue
(args) => V
maxSize
number
Returns
(...
args):NonNullable<V>
Parameters
args
...Args
Returns
NonNullable<V>
cache
cache:
LRUCache<T,V>
getKey()
getKey: (
args) =>T
Parameters
args
Args
Returns
T
getValue()
getValue: (
args) =>V
Parameters
args
Args
Returns
V
pop()
pop: (...
args) =>V
Parameters
args
...Args
Returns
V
call()
call<
T>(f, ...args):T
Defined in: packages/lib/src/Tools.ts:1087
Calls a function
Type Parameters
T
T
Parameters
f
() => T
Function to call
args
...unknown[]
Returns
T
Whatever f returns
choice()
choice<
T>(xs):T
Defined in: packages/lib/src/Tools.ts:814
Returns random element from array
Type Parameters
T
T
Parameters
xs
T[]
Returns
T
chunk()
chunk<
T>(chunkLength,xs):T[][]
Defined in: packages/lib/src/Tools.ts:768
Splits array into chunks of specified length
Type Parameters
T
T
Parameters
chunkLength
number
Maximum length of each chunk
xs
Iterable<T>
Array to split
Returns
T[][]
Array of chunks
chunks()
chunks<
T>(n,xs):T[][]
Defined in: packages/lib/src/Tools.ts:794
Splits array into specified number of chunks
Type Parameters
T
T
Parameters
n
number
Number of chunks
xs
T[]
Array to split
Returns
T[][]
Array of n chunks
clamp()
clamp(
bounds,n):number
Defined in: packages/lib/src/Tools.ts:216
Constrains number between min and max values
Parameters
bounds
[number, number]
Minimum and maximum allowed values
n
number
Number to clamp
Returns
number
Clamped value
complement()
complement<
T>(f): (...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1031
Returns a function that returns the boolean negation of the given function
Type Parameters
T
T extends unknown[]
Parameters
f
(...args) => any
Returns
(...
args):boolean
Parameters
args
...T
Returns
boolean
concat()
concat<
T>(...xs):T[]
Defined in: packages/lib/src/Tools.ts:440
Concatenates multiple arrays, filtering out null/undefined
Type Parameters
T
T
Parameters
xs
...T[][]
Arrays to concatenate
Returns
T[]
Combined array
countBy()
countBy<
T,K>(f,xs):Map<K,number>
Defined in: packages/lib/src/Tools.ts:721
Counts array elements by key function
Type Parameters
T
T
K
K
Parameters
f
(x) => K
Function to generate group key
xs
T[]
Array to count entries
Returns
Map<K, number>
Map of counts
createLocalDate()
createLocalDate(
dateString,timezone):Date
Defined in: packages/lib/src/Tools.ts:308
Creates a local date from a date string
Parameters
dateString
any
date string
timezone
string = TIMEZONE
timezone string
Returns
Date
timezone-aware Date object
dateToSeconds()
dateToSeconds(
date):number
Defined in: packages/lib/src/Tools.ts:300
Converts date object to seconds
Parameters
date
Date
Date object
Returns
number
timestamp in seconds
dec()
dec(
x):number
Defined in: packages/lib/src/Tools.ts:161
Decrements a number by 1, handling undefined values
Parameters
x
undefined | number
Returns
number
deepMergeLeft()
deepMergeLeft(
a,b):Obj<any>
Defined in: packages/lib/src/Tools.ts:987
Deep merge two objects, prioritizing the first argument.
Parameters
a
b
Returns
Obj<any>
deepMergeRight()
deepMergeRight(
a,b):Obj<any>
Defined in: packages/lib/src/Tools.ts:990
Deep merge two objects, prioritizing the second argument.
Parameters
a
b
Returns
Obj<any>
defer()
defer<
T,E>():Deferred<T,E>
Defined in: packages/lib/src/Deferred.ts:27
Creates a Deferred promise
Type Parameters
T
T
E
E = T
Returns
Deferred<T, E>
Promise with resolve/reject methods exposed
difference()
difference<
T>(a,b):T[]
Defined in: packages/lib/src/Tools.ts:484
Returns elements in first array not present in second
Type Parameters
T
T
Parameters
a
Iterable<T>
Source array
b
Iterable<T>
Array of elements to exclude
Returns
T[]
Array containing elements unique to first array
displayDomain()
displayDomain(
url):string
Defined in: packages/lib/src/Tools.ts:1419
Extracts and formats domain from URL
Parameters
url
string
URL to process
Returns
string
Formatted domain name
displayList()
displayList<
T>(xs,conj,n):string
Defined in: packages/lib/src/Tools.ts:1572
Displays a list of items with oxford commas and a chosen conjunction
Type Parameters
T
T
Parameters
xs
T[]
conj
string = "and"
n
number = 6
Returns
string
displayUrl()
displayUrl(
url):string
Defined in: packages/lib/src/Tools.ts:1409
Formats URL for display by removing protocol, www, and trailing slash
Parameters
url
string
URL to format
Returns
string
Formatted URL
dissoc()
dissoc<
K,T>(k): (o) =>T
Defined in: packages/lib/src/Tools.ts:1679
Returns a function that removes a property on object
Type Parameters
K
K extends string
T
T extends Obj<any>
Parameters
k
K
Returns
(
o):T
Parameters
o
T
Returns
T
div()
div(
x,y):number
Defined in: packages/lib/src/Tools.ts:155
Divides two numbers, handling undefined values
Parameters
x
undefined | number
y
number
Returns
number
doLet()
doLet<
T>(x,f):unknown
Defined in: packages/lib/src/Tools.ts:1114
Executes a function on the given value
Type Parameters
T
T
Parameters
x
T
The value
f
<R>(x) => R
Function to execute
Returns
unknown
result of f(x)
drop()
drop<
T>(n,xs):T[]
Defined in: packages/lib/src/Tools.ts:425
Returns array with first n elements removed
Type Parameters
T
T
Parameters
n
number
Number of elements to drop
xs
Iterable<T>
Input array
Returns
T[]
Array with first n elements removed
ellipsize()
ellipsize(
s,l,suffix):string
Defined in: packages/lib/src/Tools.ts:1559
Truncates string to length, breaking at word boundaries
Parameters
s
string
String to truncate
l
number
Maximum length
suffix
string = "..."
String to append if truncated
Returns
string
Truncated string
ensureNumber()
ensureNumber(
x):number
Defined in: packages/lib/src/Tools.ts:140
Converts string or number to number
Parameters
x
string | number
Returns
number
ensurePlural()
ensurePlural<
T>(x):T[]
Defined in: packages/lib/src/Tools.ts:830
Ensures value is array by wrapping if needed
Type Parameters
T
T
Parameters
x
T | T[]
Returns
T[]
enumerate()
enumerate<
T>(items):Generator<[number,T],void,unknown>
Defined in: packages/lib/src/Tools.ts:540
Yields indexed items
Type Parameters
T
T
Parameters
items
T[]
A collection of items
Returns
Generator<[number, T], void, unknown>
Yields
tuples of [index, item]
eq()
eq<
T>(v): (x, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1649
Returns a function that checks equality with value
Type Parameters
T
T
Parameters
v
T
Returns
(
x, ...args):boolean
Parameters
x
T
args
...unknown[]
Returns
boolean
equals()
equals(
a,b):boolean
Defined in: packages/lib/src/Tools.ts:86
Deep equality comparison
Parameters
a
any
First value
b
any
Second value
Returns
boolean
True if values are deeply equal
fetchJson()
fetchJson(
url,opts):Promise<any>
Defined in: packages/lib/src/Tools.ts:1468
Fetches JSON from URL with options
Parameters
url
string
URL to fetch from
opts
FetchOpts = {}
Fetch options
Returns
Promise<any>
Promise of parsed JSON response
ffirst()
ffirst<
T>(xs, ...args):undefined|T
Defined in: packages/lib/src/Tools.ts:400
Returns the first element of the first array in a nested array
Type Parameters
T
T
Parameters
xs
Iterable<Iterable<T, any, any>>
Array of arrays
args
...unknown[]
Returns
undefined | T
First element of first array or undefined
filter()
filter<
T>(f,xs):T[]
Defined in: packages/lib/src/Tools.ts:603
Keeps items based on predicate
Type Parameters
T
T
Parameters
f
(x) => any
Whether to keep an item
xs
Iterable<T>
Items to filter
Returns
T[]
Filtered array
filterVals()
filterVals<
T>(f,x):T
Defined in: packages/lib/src/Tools.ts:920
Filters object values based on predicate
Type Parameters
T
T extends Record<string, any>
Parameters
f
(v) => boolean
Function to test values
x
T
Object to filter
Returns
T
Object with only values that pass predicate
find()
find<
T>(f,xs):undefined|T
Defined in: packages/lib/src/Tools.ts:619
Finds a single item based on predicate
Type Parameters
T
T
Parameters
f
(x) => any
Whether an item matches
xs
Iterable<T>
Items to filter
Returns
undefined | T
first matching item
first()
first<
T>(xs, ...args):undefined|T
Defined in: packages/lib/src/Tools.ts:389
Returns the first element of an array
Type Parameters
T
T
Parameters
xs
Iterable<T>
The array
args
...unknown[]
Returns
undefined | T
First element or undefined
flatten()
flatten<
T>(xs, ...args):T[]
Defined in: packages/lib/src/Tools.ts:571
Flattens array of arrays into single array
Type Parameters
T
T
Parameters
xs
(T | T[])[]
Array of arrays to flatten
args
...unknown[]
Returns
T[]
Flattened array
formatTimestamp()
formatTimestamp(
seconds):string
Defined in: packages/lib/src/Tools.ts:322
Formats seconds as a datetime
Parameters
seconds
number
timestamp in seconds
Returns
string
datetime string
formatTimestampAsDate()
formatTimestampAsDate(
ts):string
Defined in: packages/lib/src/Tools.ts:336
Formats seconds as a date
Parameters
ts
number
Returns
string
date string
formatTimestampAsTime()
formatTimestampAsTime(
ts):string
Defined in: packages/lib/src/Tools.ts:348
Formats seconds as a time
Parameters
ts
number
Returns
string
time string
formatTimestampRelative()
formatTimestampRelative(
ts):string
Defined in: packages/lib/src/Tools.ts:355
Formats seconds as a relative date (x minutes ago)
Parameters
ts
number
Returns
string
relative date string
fromPairs()
fromPairs<
T>(pairs):Record<string,T>
Defined in: packages/lib/src/Tools.ts:554
Creates object from array of key-value pairs
Type Parameters
T
T
Parameters
pairs
[string, T, ...args: unknown[]][]
Array of [key, value] tuples
Returns
Record<string, T>
Object with keys and values from pairs
getJson()
getJson(
k):any
Defined in: packages/lib/src/Tools.ts:1445
Gets and parses JSON from localStorage
Parameters
k
string
Storage key
Returns
any
Parsed value or undefined if invalid/missing
groupBy()
groupBy<
T,K>(f,xs):Map<K,T[]>
Defined in: packages/lib/src/Tools.ts:697
Groups array elements by key function
Type Parameters
T
T
K
K
Parameters
f
(x) => K
Function to generate group key
xs
Iterable<T>
Array to group
Returns
Map<K, T[]>
Map of groups
gt()
gt(
x,y):boolean
Defined in: packages/lib/src/Tools.ts:170
Greater than comparison, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
boolean
gte()
gte(
x,y):boolean
Defined in: packages/lib/src/Tools.ts:173
Greater than or equal comparison, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
boolean
hash()
hash(
s):number
Defined in: packages/lib/src/Tools.ts:1585
Generates a hash from input string
Parameters
s
string
Returns
number
hexToBech32()
hexToBech32(
prefix,hex):`${Lowercase<string>}1${string}`
Defined in: packages/lib/src/Tools.ts:1783
Converts hex string to bech32 format
Parameters
prefix
string
Bech32 prefix
hex
string
Hex string to convert
Returns
`${Lowercase<string>}1${string}`
Bech32 encoded string
hexToBytes()
hexToBytes(
hex):Uint8Array<ArrayBuffer>
Defined in: packages/lib/src/Tools.ts:1822
Converts a hex string to an array buffer
Parameters
hex
string
hex string
Returns
Uint8Array<ArrayBuffer>
ArrayBuffer
identity()
identity<
T>(x, ...args):T
Defined in: packages/lib/src/Tools.ts:41
Returns the input value unchanged
Type Parameters
T
T
Parameters
x
T
Any value
args
...unknown[]
Returns
T
The same value
ifLet()
ifLet<
T>(x,f):void
Defined in: packages/lib/src/Tools.ts:1122
Executes a function if the value is defined
Type Parameters
T
T
Parameters
x
The value to check
undefined | T
f
(x) => void
Function to execute if x is defined
Returns
void
result of f(x) if x is defined, undefined otherwise
inc()
inc(
x):number
Defined in: packages/lib/src/Tools.ts:158
Increments a number by 1, handling undefined values
Parameters
x
undefined | number
Returns
number
indexBy()
indexBy<
T,K>(f,xs):Map<K,T>
Defined in: packages/lib/src/Tools.ts:736
Creates map from array using key function
Type Parameters
T
T
K
K
Parameters
f
(x) => K
Function to generate key
xs
T[]
Array to index
Returns
Map<K, T>
Map of values by key
initArray()
initArray<
T>(n,f):T[]
Defined in: packages/lib/src/Tools.ts:752
Creates array of specified length using generator function
Type Parameters
T
T
Parameters
n
number
Length of array
f
() => T
Function to generate each element
Returns
T[]
Generated array
insertAt()
insertAt<
T>(n,x,xs):T[]
Defined in: packages/lib/src/Tools.ts:808
Inserts element into array at index
Type Parameters
T
T
Parameters
n
number
x
T
xs
T[]
Returns
T[]
int()
int(
unit,count):number
Defined in: packages/lib/src/Tools.ts:268
Multiplies time unit by count
Parameters
unit
number
Time unit in seconds
count
number = 1
Number of units
Returns
number
Total seconds
intersection()
intersection<
T>(a,b):T[]
Defined in: packages/lib/src/Tools.ts:472
Returns elements common to both arrays
Type Parameters
T
T
Parameters
a
Iterable<T>
First array
b
Iterable<T>
Second array
Returns
T[]
Array of elements present in both inputs
isDefined()
isDefined<
T>(x, ...args): x is T & (null | {})
Defined in: packages/lib/src/Tools.ts:11
Type Parameters
T
T
Parameters
x
T
args
...unknown[]
Returns
x is T & (null | {})
isHex32()
isHex32(
s):boolean
Defined in: packages/lib/src/Tools.ts:1796
Parameters
s
string
Returns
boolean
isIterable()
isIterable(
x):boolean
Defined in: packages/lib/src/Tools.ts:824
Checks if value is iterable
Parameters
x
any
Returns
boolean
isPojo()
isPojo(
obj):boolean
Defined in: packages/lib/src/Tools.ts:854
Checks if value is a plain object
Parameters
obj
any
Value to check
Returns
boolean
True if value is a plain object
isUndefined()
isUndefined<
T>(x, ...args):boolean
Defined in: packages/lib/src/Tools.ts:13
Type Parameters
T
T
Parameters
x
T
args
...unknown[]
Returns
boolean
last()
last<
T>(xs, ...args):T
Defined in: packages/lib/src/Tools.ts:413
Returns the last element of an array
Type Parameters
T
T
Parameters
xs
Iterable<T>
The array
args
...unknown[]
Returns
T
Last element or undefined
lt()
lt(
x,y):boolean
Defined in: packages/lib/src/Tools.ts:164
Less than comparison, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
boolean
lte()
lte(
x,y):boolean
Defined in: packages/lib/src/Tools.ts:167
Less than or equal comparison, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
boolean
makePromise()
makePromise<
T,E>(executor):CustomPromise<T,E>
Defined in: packages/lib/src/Deferred.ts:11
Creates a Promise with strongly typed error
Type Parameters
T
T
E
E
Parameters
executor
(resolve, reject) => void
Promise executor function
Returns
CustomPromise<T, E>
Promise with typed error
makeQueue()
makeQueue(): (
f) =>Promise<unknown>
Defined in: packages/lib/src/Tools.ts:1383
Creates a function that runs async tasks one at a time, in the order they were enqueued. Rejections are logged rather than chained, so a failed task doesn't drop the ones behind it
Returns
Function that enqueues a task and resolves once it has run
(
f):Promise<unknown>
Parameters
f
() => Promise<unknown>
Returns
Promise<unknown>
map()
map<
T,R>(f,xs):R[]
Defined in: packages/lib/src/Tools.ts:595
Maps any iterable
Type Parameters
T
T
R
R
Parameters
f
(x) => R
xs
Iterable<T>
Returns
R[]
mapKeys()
mapKeys<
T>(f,x):T
Defined in: packages/lib/src/Tools.ts:938
Creates new object with transformed keys
Type Parameters
T
T extends Obj<any>
Parameters
f
(v) => string
Function to transform keys
x
T
Source object
Returns
T
Object with transformed keys
mapPop()
mapPop<
K,T>(k,m):undefined|T
Defined in: packages/lib/src/Tools.ts:1017
Type Parameters
K
K
T
T
Parameters
k
K
m
Map<K, T>
Returns
undefined | T
mapVals()
mapVals<
V,U>(f,x):Record<string,U>
Defined in: packages/lib/src/Tools.ts:954
Creates new object with transformed values
Type Parameters
V
V
U
U
Parameters
f
(v) => U
Function to transform values
x
Record<string, V>
Source object
Returns
Record<string, U>
Object with transformed values
max()
max(
xs):number
Defined in: packages/lib/src/Tools.ts:176
Returns maximum value in array, handling undefined values
Parameters
xs
(undefined | number)[]
Returns
number
maybe()
maybe<
T>(x?):undefined|T
Defined in: packages/lib/src/Tools.ts:9
Type Parameters
T
T
Parameters
x?
T
Returns
undefined | T
member()
member<
T>(xs): (x) =>boolean
Defined in: packages/lib/src/Tools.ts:1685
Returns a function that checks whether a value is in the given sequence
Type Parameters
T
T
Parameters
xs
Iterable<T>
Returns
(
x):boolean
Parameters
x
T
Returns
boolean
memoize()
memoize<
T,Args>(f): (...args) =>T
Defined in: packages/lib/src/Tools.ts:1094
Memoizes function results based on arguments
Type Parameters
T
T
Args
Args extends any[]
Parameters
f
(...args) => T
Function to memoize
Returns
Memoized function
(...
args):T
Parameters
args
...Args
Returns
T
mergeLeft()
mergeLeft<
T>(a,b):T
Defined in: packages/lib/src/Tools.ts:970
Merges two objects, with left object taking precedence
Type Parameters
T
T extends Obj<any>
Parameters
a
T
Left object
b
T
Right object
Returns
T
Merged object with a"s properties overriding b"s
mergeRight()
mergeRight<
T>(a,b):T
Defined in: packages/lib/src/Tools.ts:981
Merges two objects, with right object taking precedence
Type Parameters
T
T extends Obj<any>
Parameters
a
T
Left object
b
T
Right object
Returns
T
Merged object with b"s properties overriding a"s
min()
min(
xs):number
Defined in: packages/lib/src/Tools.ts:180
Returns minimum value in array, handling undefined values
Parameters
xs
(undefined | number)[]
Returns
number
ms()
ms(
seconds):number
Defined in: packages/lib/src/Tools.ts:286
Converts seconds to milliseconds
Parameters
seconds
number
Time in seconds
Returns
number
Time in milliseconds
mul()
mul(
x,y):number
Defined in: packages/lib/src/Tools.ts:152
Multiplies two numbers, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
number
ne()
ne<
T>(v): (x, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1655
Returns a function that checks inequality with value
Type Parameters
T
T
Parameters
v
T
Returns
(
x, ...args):boolean
Parameters
x
T
args
...unknown[]
Returns
boolean
noop()
noop(...
args):undefined
Defined in: packages/lib/src/Tools.ts:34
Function that does nothing and returns undefined
Parameters
args
...unknown[]
Returns
undefined
normalizeUrl()
normalizeUrl(
urlString,opts?):string
Defined in: packages/lib/src/normalize-url/index.ts:372
Normalize a URL.
URLs with custom protocols are not normalized and just passed through by default. Supported protocols are: https, http, file, and data.
Parameters
urlString
string
opts?
Options
Returns
string
Example
import normalizeUrl from 'normalize-url';
normalizeUrl('sindresorhus.com');
//=> 'http://sindresorhus.com'
normalizeUrl('//www.sindresorhus.com:80/../baz?b=bar&a=foo');
//=> 'http://sindresorhus.com/baz?a=foo&b=bar'not()
not(
x, ...args):boolean
Defined in: packages/lib/src/Tools.ts:58
Returns the logical NOT of a value
Parameters
x
any
Value to negate
args
...unknown[]
Returns
boolean
!x
now()
now():
number
Defined in: packages/lib/src/Tools.ts:271
Returns current Unix timestamp in seconds
Returns
number
nth()
nth(
i): <T>(xs, ...args) =>T
Defined in: packages/lib/src/Tools.ts:1594
Returns a function that gets the nth element of an array
Parameters
i
number
Returns
<
T>(xs, ...args):T
Type Parameters
T
T
Parameters
xs
T[]
args
...unknown[]
Returns
T
nthEq()
nthEq(
i,v): (xs, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1606
Returns a function that checks if nth element equals value
Parameters
i
number
v
any
Returns
(
xs, ...args):boolean
Parameters
xs
any[]
args
...unknown[]
Returns
boolean
nthIn()
nthIn(
i,v): (xs, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1612
Returns a function that checks if nth element is in value
Parameters
i
number
v
any[]
Returns
(
xs, ...args):boolean
Parameters
xs
any[]
args
...unknown[]
Returns
boolean
nthNe()
nthNe(
i,v): (xs, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1618
Returns a function that checks if nth element does not equal value
Parameters
i
number
v
any
Returns
(
xs, ...args):boolean
Parameters
xs
any[]
args
...unknown[]
Returns
boolean
nthNotIn()
nthNotIn(
i,v): (xs, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1624
Returns a function that checks if nth element is not in value
Parameters
i
number
v
any[]
Returns
(
xs, ...args):boolean
Parameters
xs
any[]
args
...unknown[]
Returns
boolean
nthPass()
nthPass<
T>(i,f): (xs, ...args) =>any
Defined in: packages/lib/src/Tools.ts:1600
Returns a function that checks if nth element equals value
Type Parameters
T
T
Parameters
i
number
f
(x) => any
Returns
(
xs, ...args):any
Parameters
xs
T[]
args
...unknown[]
Returns
any
num()
num(
x):number
Defined in: packages/lib/src/Tools.ts:143
Converts a number | undefined to a number, defaulting to 0
Parameters
x
undefined | number
Returns
number
omit()
omit<
T>(ks,x):T
Defined in: packages/lib/src/Tools.ts:886
Creates new object with specified keys removed
Type Parameters
T
T extends Obj<any>
Parameters
ks
string[]
Keys to remove
x
T
Source object
Returns
T
New object without specified keys
omitVals()
omitVals<
T>(xs,x):T
Defined in: packages/lib/src/Tools.ts:902
Creates new object excluding entries with specified values
Type Parameters
T
T extends Obj<any>
Parameters
xs
any[]
Values to exclude
x
T
Source object
Returns
T
New object without entries containing specified values
on()
on<
EventMap,E>(target,eventName,callback): () =>void
Defined in: packages/lib/src/Tools.ts:1533
A generic type-safe event listener function that works with event emitters.
Type Parameters
EventMap
EventMap extends Record<string | symbol, any[]>
E
E extends string | number | symbol
Parameters
target
The event target object with add/remove listener methods
off
on
eventName
E
The name of the event to listen for
callback
(...args) => void
The callback function to execute when the event occurs
Returns
A function that removes the event listener when called
():
void
Returns
void
once()
once(
f): (...args) =>void
Defined in: packages/lib/src/Tools.ts:1071
Creates function that only executes once
Parameters
f
(...args) => void
Function to wrap
Returns
Function that executes f only on first call
(...
args):void
Parameters
args
...any
Returns
void
overlappingPairs()
overlappingPairs<
T>(xs):T[][]
Defined in: packages/lib/src/Tools.ts:836
Returns a list of overlapping pairs of elements in xs
Type Parameters
T
T
Parameters
xs
T[]
Returns
T[][]
parseJson()
parseJson<
T>(json):undefined|T
Defined in: packages/lib/src/Tools.ts:1430
Safely parses JSON string
Type Parameters
T
T = any
Parameters
json
JSON string to parse
undefined | string
Returns
undefined | T
Parsed object or null if invalid
partition()
partition<
T>(f,xs):T[][]
Defined in: packages/lib/src/Tools.ts:579
Splits array into two arrays based on predicate
Type Parameters
T
T
Parameters
f
(x) => boolean
Function to test elements
xs
Iterable<T>
Array to partition
Returns
T[][]
Tuple of [matching, non-matching] arrays
pick()
pick<
T>(ks,x):T
Defined in: packages/lib/src/Tools.ts:868
Creates new object with only specified keys
Type Parameters
T
T extends Obj<any>
Parameters
ks
string[]
Keys to keep
x
T
Source object
Returns
T
New object with only specified keys
pluck()
pluck<
T>(k,xs):T[]
Defined in: packages/lib/src/Tools.ts:547
Returns a function that gets property value from object
Type Parameters
T
T
Parameters
k
string
xs
Record<string, unknown>[]
Returns
T[]
poll()
poll(
options):Promise<void>
Defined in: packages/lib/src/Tools.ts:1186
Creates a promise that resolves after the condition completes or timeout
Parameters
options
PollOptions
Returns
Promise<void>
void Promise
postJson()
postJson<
T>(url,data,opts):Promise<any>
Defined in: packages/lib/src/Tools.ts:1493
Posts JSON data to URL
Type Parameters
T
T
Parameters
url
string
URL to post to
data
T
Data to send
opts
FetchOpts = {}
Additional fetch options
Returns
Promise<any>
Promise of parsed JSON response
prepend()
prepend<
T>(x,xs):T[]
Defined in: packages/lib/src/Tools.ts:456
Prepends element to array
Type Parameters
T
T
Parameters
x
T
Element to prepend
xs
Iterable<T>
Array to prepend to
Returns
T[]
New array with element prepended
prop()
prop<
T>(k): (x) =>T
Defined in: packages/lib/src/Tools.ts:1661
Returns a function that gets property value from object
Type Parameters
T
T
Parameters
k
string
Returns
(
x):T
Parameters
x
Record<string, unknown>
Returns
T
propIn()
propIn<
T>(k,xs): (x) =>boolean
Defined in: packages/lib/src/Tools.ts:1667
Returns a function that checks whether the object's property value is in a list
Type Parameters
T
T
Parameters
k
string
xs
T[]
Returns
(
x):boolean
Parameters
x
Record<string, unknown>
Returns
boolean
pushToKey()
pushToKey<
T>(m,k,v):void
Defined in: packages/lib/src/Tools.ts:1727
Pushes value to array at key in object
Type Parameters
T
T
Parameters
m
Record<string, T[]>
Object mapping keys to arrays
k
string
Key to push to
v
T
Value to push
Returns
void
pushToMapKey()
pushToMapKey<
K,T>(m,k,v):void
Defined in: packages/lib/src/Tools.ts:1763
Pushes value to array at key in Map
Type Parameters
K
K
T
T
Parameters
m
Map<K, T[]>
Map of arrays
k
K
Key to push to
v
T
Value to push
Returns
void
race()
race(
threshold,promises):Promise<void>
Defined in: packages/lib/src/Tools.ts:1358
Returns a promise that resolves after some proportion of promises complete
Parameters
threshold
number
number between 0 and 1 for how many promises to wait for
promises
Promise<unknown>[]
array of promises
Returns
Promise<void>
promise
randomId()
randomId():
string
Defined in: packages/lib/src/Tools.ts:1148
Generates random string ID
Returns
string
Random string suitable for use as an ID
randomInt()
randomInt(
min,max):number
Defined in: packages/lib/src/Tools.ts:1135
Generates random integer between min and max (inclusive)
Parameters
min
number = 0
Minimum value
max
number = 9
Maximum value
Returns
number
Random integer
range()
range(
a,b,step):Generator<number,void,unknown>
Defined in: packages/lib/src/Tools.ts:529
Generates sequence of numbers from a to b
Parameters
a
number
Start number (inclusive)
b
number
End number (exclusive)
step
number = 1
Increment between numbers
Returns
Generator<number, void, unknown>
Yields
Numbers in sequence
reject()
reject<
T>(f,xs):T[]
Defined in: packages/lib/src/Tools.ts:611
Removes items based on predicate
Type Parameters
T
T
Parameters
f
(x) => any
Whether to remove an item from the array
xs
Iterable<T>
Items to filter
Returns
T[]
Filtered array
remove()
remove<
T>(a,xs):T[]
Defined in: packages/lib/src/Tools.ts:496
Removes all instances of an element from array
Type Parameters
T
T
Parameters
a
T
Element to remove
xs
T[]
Source array
Returns
T[]
New array with element removed
removeAt()
removeAt<
T>(i,xs):T[]
Defined in: packages/lib/src/Tools.ts:504
Removes element at index
Type Parameters
T
T
Parameters
i
number
Index to remove
xs
T[]
Source array
Returns
T[]
New array with element removed
removeUndefined()
removeUndefined<
T>(xs):T&object[]
Defined in: packages/lib/src/Tools.ts:833
Ensures values are not undefined
Type Parameters
T
T
Parameters
xs
T[]
Returns
T & object[]
replaceAt()
replaceAt<
T>(n,x,xs):T[]
Defined in: packages/lib/src/Tools.ts:811
Replaces array element at index
Type Parameters
T
T
Parameters
n
number
x
T
xs
T[]
Returns
T[]
round()
round(
precision,x):number
Defined in: packages/lib/src/Tools.ts:224
Round a number to the nearest float precision
Parameters
precision
number
Number of decimal places
x
number
Number to round
Returns
number
Formatted number
sample()
sample<
T>(n,xs):T[]
Defined in: packages/lib/src/Tools.ts:821
Returns n random elements from array
Type Parameters
T
T
Parameters
n
number
xs
T[]
Returns
T[]
secondsToDate()
secondsToDate(
seconds):Date
Defined in: packages/lib/src/Tools.ts:293
Converts seconds to date
Parameters
seconds
number
Time in seconds
Returns
Date
Date object
setJson()
setJson(
k,v):void
Defined in: packages/lib/src/Tools.ts:1452
Stringifies and stores value in localStorage
Parameters
k
string
Storage key
v
any
Value to store
Returns
void
sha256()
sha256(
data):Promise<string>
Defined in: packages/lib/src/Tools.ts:1838
Computes SHA-256 hash of binary data
Parameters
data
Binary data to hash
ArrayBuffer | Uint8Array<ArrayBufferLike>
Returns
Promise<string>
Promise resolving to hex-encoded hash string
shuffle()
shuffle<
T>(xs):T[]
Defined in: packages/lib/src/Tools.ts:817
Returns shuffled copy of iterable
Type Parameters
T
T
Parameters
xs
Iterable<T>
Returns
T[]
simpleCache()
simpleCache<
V,Args>(getValue): {(...args):NonNullable<V>;cache:LRUCache<string,V>;getKey: (args) =>string;getValue: (args) =>V;pop: (...args) =>V; }
Defined in: packages/lib/src/LRUCache.ts:92
Creates a simple memoized function with default settings
Type Parameters
V
V
Cache value type
Args
Args extends any[]
Function argument types
Parameters
getValue
(args) => V
Returns
(...
args):NonNullable<V>
Parameters
args
...Args
Returns
NonNullable<V>
cache
cache:
LRUCache<string,V>
getKey()
getKey: (
args) =>string
Parameters
args
Args
Returns
string
getValue()
getValue: (
args) =>V
Parameters
args
Args
Returns
V
pop()
pop: (...
args) =>V
Parameters
args
...Args
Returns
V
sleep()
sleep(
t):Promise<unknown>
Defined in: packages/lib/src/Tools.ts:1173
Creates a promise that resolves after specified time
Parameters
t
number
Time in milliseconds
Returns
Promise<unknown>
Promise that resolves after t milliseconds
some()
some<
T>(f,xs):boolean
Defined in: packages/lib/src/Tools.ts:631
Finds a single item based on predicate
Type Parameters
T
T
Parameters
f
(x) => any
Whether an item matches
xs
Iterable<T>
Items to filter
Returns
boolean
whether an item matches
somePass()
somePass<
T>(...predicates): (x) =>boolean
Defined in: packages/lib/src/Tools.ts:1697
Returns a function that checks whether some predicate passes
Type Parameters
T
T
Parameters
predicates
...(x) => unknown[]
Returns
(
x):boolean
Parameters
x
T
Returns
boolean
sort()
sort<
T>(xs):T[]
Defined in: packages/lib/src/Tools.ts:675
Returns sorted copy of array
Type Parameters
T
T
Parameters
xs
T[]
Array to sort
Returns
T[]
New sorted array
sortBy()
sortBy<
T>(f,xs):T[]
Defined in: packages/lib/src/Tools.ts:683
Returns array sorted by key function
Type Parameters
T
T
Parameters
f
(x) => any
Function to generate sort key
xs
Iterable<T>
Array to sort
Returns
T[]
Sorted array
spec()
spec(
values): (x, ...args) =>boolean
Defined in: packages/lib/src/Tools.ts:1630
Returns a function that checks if key/value pairs of x match all pairs in spec
Parameters
values
any[] | Obj<any>
Returns
(
x, ...args):boolean
Parameters
x
any[] | Obj<any>
args
...unknown[]
Returns
boolean
splitAt()
splitAt<
T>(n,xs):T[][]
Defined in: packages/lib/src/Tools.ts:805
Splits array into two parts at index
Type Parameters
T
T
Parameters
n
number
xs
T[]
Returns
T[][]
stripProtocol()
stripProtocol(
url):string
Defined in: packages/lib/src/Tools.ts:1402
Removes protocol (http://, https://, etc) from URL
Parameters
url
string
URL to process
Returns
string
URL without protocol
sub()
sub(
x,y):number
Defined in: packages/lib/src/Tools.ts:149
Subtracts two numbers, handling undefined values
Parameters
x
undefined | number
y
undefined | number
Returns
number
sum()
sum(
xs):number
Defined in: packages/lib/src/Tools.ts:189
Returns sum of array values, handling undefined values
Parameters
xs
(undefined | number)[]
Returns
number
switcher()
switcher<
T>(k,m):T
Defined in: packages/lib/src/Tools.ts:1010
Switches on key in object, with default fallback
Type Parameters
T
T
Parameters
k
string
Key to look up
m
Record<string, T>
Object with values and optional default
Returns
T
Value at key or default value
take()
take<
T>(n,xs):T[]
Defined in: packages/lib/src/Tools.ts:433
Returns first n elements of array
Type Parameters
T
T
Parameters
n
number
Number of elements to take
xs
Iterable<T>
Input array
Returns
T[]
Array of first n elements
tap()
tap<
T,F>(f): (x) =>T
Defined in: packages/lib/src/Tools.ts:74
Runs the provided function on the given value and returns the value
Type Parameters
T
T
F
F extends (x) => unknown
Parameters
f
F
Function to call
Returns
tapped function
(
x):T
Parameters
x
T
Returns
T
throttle()
throttle<
F>(ms,f):F| (...args) =>void
Defined in: packages/lib/src/Tools.ts:1230
Creates throttled version of function
Type Parameters
F
F extends (...args) => any
Parameters
ms
number
Minimum time between calls
f
F
Function to throttle
Returns
F | (...args) => void
Throttled function
throttleWithValue()
throttleWithValue<
T>(ms,f): () =>T
Defined in: packages/lib/src/Tools.ts:1266
Creates throttled function that returns cached value
Type Parameters
T
T
Parameters
ms
number
Minimum time between updates
f
() => T
Function to throttle
Returns
Function returning latest value
():
T
Returns
T
thrower()
thrower(
message): (...args) =>never
Defined in: packages/lib/src/Tools.ts:1061
Throws an error with the given message
Parameters
message
string
Returns
(...
args):never
Parameters
args
...unknown[]
Returns
never
toggle()
toggle<
T>(x,xs):T[]
Defined in: packages/lib/src/Tools.ts:520
Toggles presence of element in array
Type Parameters
T
T
Parameters
x
T
Element to toggle
xs
T[]
Source array
Returns
T[]
New array with element added or removed
toInt()
toInt(
x):undefined|number
Defined in: packages/lib/src/Tools.ts:1849
Parses a string or number to an integer
Parameters
x
undefined | string | number
Returns
undefined | number
number or undefined
toIterable()
toIterable(
x):any
Defined in: packages/lib/src/Tools.ts:827
Ensures value is iterable by wrapping in array if needed
Parameters
x
any
Returns
any
tryCatch()
tryCatch<
T>(f,onError?):undefined|T
Defined in: packages/lib/src/Tools.ts:1041
Safely executes function and handles errors
Type Parameters
T
T
Parameters
f
() => T
Function to execute
onError?
(e) => void
Optional error handler
Returns
undefined | T
Function result or undefined if error
union()
union<
T>(a,b):T[]
Defined in: packages/lib/src/Tools.ts:464
Creates union of two arrays
Type Parameters
T
T
Parameters
a
Iterable<T>
First array
b
Iterable<T>
Second array
Returns
T[]
Array containing unique elements from both arrays
uniq()
uniq<
T>(xs):T[]
Defined in: packages/lib/src/Tools.ts:644
Returns array with duplicate elements removed
Type Parameters
T
T
Parameters
xs
T[]
Array with possible duplicates
Returns
T[]
Array with unique elements
uniqBy()
uniqBy<
T>(f,xs):T[]
Defined in: packages/lib/src/Tools.ts:652
Returns array with elements unique by key function
Type Parameters
T
T
Parameters
f
(x) => any
Function to generate key for each element
xs
Iterable<T>
Input array
Returns
T[]
Array with elements unique by key
uploadFile()
uploadFile(
url,file):Promise<any>
Defined in: packages/lib/src/Tools.ts:1517
Uploads file to URL
Parameters
url
string
Upload URL
file
File
File to upload
Returns
Promise<any>
Promise of parsed JSON response
within()
within(
bounds,n):boolean
Defined in: packages/lib/src/Tools.ts:208
Checks if a number is between two values (inclusive)
Parameters
bounds
[number, number]
Lower and upper bounds
n
number
Number to check
Returns
boolean
True if n is between low and high
without()
without<
T>(a,b):T[]
Defined in: packages/lib/src/Tools.ts:512
Returns elements from second array not present in first
Type Parameters
T
T
Parameters
a
T[]
Array of elements to exclude
b
T[]
Source array
Returns
T[]
Filtered array
yieldThread()
yieldThread():
any
Defined in: packages/lib/src/Tools.ts:1210
Creates a microtask that yields to other tasks in the event loop
Returns
any
Promise that resolves after yielding