All Functions
All Functions
Section titled “All Functions”317 implemented helpers + 60 covered by native JavaScript APIs, sorted alphabetically.
| Function | Category | Description |
|---|---|---|
add / subtract (date arithmetic) |
date | native JS Temporal.PlainDate.prototype.add(duration) / .subtract(duration) (Temporal (Stage 3)) |
addDays |
date | Adds days to a date. |
addMonths |
date | Adds months to a date. |
addYears |
date | Adds years to a date. |
analyzeCommits |
commit | Analyses a list of commits to suggest a semantic version bump. |
argbToRgb |
color | Converts a 32-bit packed ARGB integer (as used by e.g. |
Brand |
type | Brands a base type `T` with a phantom tag `B` to create a nominal type. |
buildConventionalCommitRegex |
commit | Builds a regular expression matching the **subject line** of a Conventional Commits message. |
buildStatusTable |
ci | Builds a Markdown table body from a map of job names to CI/CD statuses. |
camelCase |
string | Converts a string to camelCase. |
camelCaseKeys |
object | Recursively transforms every key of a plain object (including keys nested inside arrays and nested objects) to camelCas… |
capitalize |
string | Capitalizes the first letter of a string. |
cartesianProduct |
array | Computes the Cartesian product of the provided arrays. |
ceil / floor |
number | native JS Math.ceil() / Math.floor() (ES1) |
chunk |
array | Chunks an array into smaller arrays of specified size. |
clamp |
number | Clamps a number between min and max values |
clampDate |
date | Clamps a date to a [min, max] range. |
cleanPath |
url | Clean an URL by removing duplicate slashes. |
clone |
object | Creates a shallow copy of a value — one level deep, unlike cloneDeep. |
cloneDeep |
object | Creates a deep copy of an object or array. |
combine |
observable | Combine two observables with a map function and an optional pre-treatment. |
combineLatest |
observable | Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its… |
combineSortFns |
array | Chains multiple sort functions into a single comparator: the first function decides the order unless it reports a tie (… |
compact |
array | Removes all falsy values (`false`, `null`, `undefined`, `0`, `“”`, `NaN`) from an array. |
compact |
object | Removes all entries with falsy values (`false`, `null`, `undefined`, `0`, `“”`, `NaN`) from an object. |
compare |
date | Comparison of two dates. |
compare |
version | Compares two semantic version strings according to SemVer 2.0.0 specification Supports: - Core version: MAJOR.MINOR.PA… |
compare (ordering) |
date | native JS Temporal.PlainDate.compare(a, b) / Temporal.Instant.compare(a, b) (Temporal (Stage 3)) |
compose |
function | Composes functions right-to-left: `compose(f, g)(x)` is equivalent to `f(g(x))`. |
consoleLogPromise |
promise | Returns a function that logs data to the console and passes it through. |
correctFloat |
number | Corrects floating-point arithmetic errors by rounding to a given number of significant digits. |
countBy |
array | Groups the elements of an array by the key returned by `keyFn` and returns a record mapping each key to the number of m… |
countBy |
map | Groups the entries of a Map by a derived key and counts how many fall into each group. |
countBy |
set | Groups the values of a Set by a derived key and counts how many fall into each group. |
createCachedResolver |
function | Creates a lazy, cached resolver: `resolve(key)` computes and caches `compute(key)` the first time a given key is seen, … |
createMutex |
promise | Creates a mutex: a lock allowing at most one holder at a time, queueing excess `acquire()` callers in FIFO order. |
createSemaphore |
promise | Creates a semaphore limiting concurrent access to `permits` holders at a time, queueing excess `acquire()` callers in F… |
createSortByBooleanFn |
array | Creates a sort function for objects by a boolean property. |
createSortByDateFn |
array | Creates a sort function for objects by date property. |
createSortByNaturalFn |
array | Creates a sort function for objects by one or more string properties using natural ordering. |
createSortByNumberFn |
array | Creates a sort function for objects by number property. |
createSortByStringFn |
array | Creates a sort function for objects by one or more string properties. |
curry |
function | Transforms a multi-argument function into a chain of single-argument functions (Haskell-style currying). |
daysInMonth |
date | Returns the number of days in the given month of the given year. |
debounce |
function | Creates a debounced function that delays invoking func until after delay milliseconds have elapsed since the last time … |
dedent |
string | Strips the common leading whitespace from every line of a multi-line string, and trims a single leading/trailing blank … |
DeepGet |
type | Resolves the value type at a given `Path` within `T`. |
DeepPartial |
type | Recursively makes all properties of T optional, including nested objects and array elements. |
DeepSet |
type | Produces the type of `T` after replacing the value at `Path` with `V`. |
DeepWritable |
type | Recursively removes `readonly` from all properties of T, including nested objects, array elements, and tuple positions. |
DEFAULT_PERCENTAGE_TIERS |
ci | Default tiers, geared towards coverage/quality-gate style percentages. |
defer |
promise | Runs an async function and guarantees that all deferred callbacks are executed afterwards, in LIFO order (last register… |
delay |
promise | Creates a promise that resolves after specified delay |
diff |
object | Structural object diff. |
difference |
array | Returns the difference between two arrays (items in first array but not in second). |
difference |
date | Calculates the difference between two dates in the specified unit. |
difference |
set | native JS Set.prototype.difference() (ES2025 (Set methods)) |
drop |
array | native JS Array.prototype.slice(n) (ES3) |
eachDay |
date | Returns an array of `Date` objects for each day from `start` to `end` (inclusive). |
eachMonth |
date | Returns an array of `Date` objects for the first day of each month from `start` to `end` (inclusive). |
endOf |
date | Returns a new `Date` set to the **end** of the given unit. |
ensureArray |
array | Wraps a value in an array if it is not already one. |
ensureDate |
date | Safely converts a date-like value to a valid `Date` object, or returns `null`. |
equalsDeep |
array | Recursive structural array equality. |
equalsDeep |
object | Recursive structural object equality. |
equalsShallow |
array | Positional, one-level (shallow) array equality. |
equalsShallow |
object | One-level (shallow) object equality. |
equalsUnordered |
array | Order-independent (set-style) array equality. |
escape |
markdown | Escapes all Markdown special characters in a string so they render as literal text rather than formatting syntax. |
escapeHtml |
string | Escapes the HTML special characters `&`, `<`, `>`, `“`, and `’` in a string. |
escapeRegExp |
string | Escapes regular expression metacharacters (`. |
every |
map | Checks if every entry of a Map satisfies the predicate. |
extractErrorMessage |
string | Convert an error to a readable message. |
extractNumber |
number | Extracts the first number embedded anywhere in a string, or passes through a `number`. |
extractPureURI |
url | Extracts the pure URI from a URL by removing query parameters and fragments. |
falsyPromiseOrThrow |
promise | Returns a function that passes through falsy data or throws an error. |
filter |
map | Creates a new Map containing only the entries for which the predicate returns true. |
filter |
set | Creates a new Set containing only the values for which the predicate returns true. |
filterAsync |
array | The async counterpart to `Array.prototype.filter`: runs `predicate` for every item and resolves to the items whose pred… |
find / findIndex |
array | native JS Array.prototype.find() / findIndex() (ES2015) |
findKey |
map | Returns the first key of a Map whose entry satisfies the predicate, in insertion order. |
findKey / findValue |
map | native JS map.entries().find(([k, v]) => pred(v, k))?.[0 or 1] (ES2025 (Iterator Helpers)) |
findValue |
map | Returns the first value of a Map whose entry satisfies the predicate, in insertion order. |
flatten |
object | Flattens a nested object into a single-level object whose keys are the dot-notation path to each leaf value. |
flatten / flat |
array | native JS Array.prototype.flat(depth?) (ES2019) |
flip |
function | Creates a function that invokes `fn` with the first two arguments swapped. |
forEach |
map | native JS Map.prototype.forEach((value, key, map) => ...) (ES2015) |
forEach |
set | native JS Set.prototype.forEach((value, value2, set) => ...) (ES2015) |
forEachAsync |
array | The async counterpart to `Array.prototype.forEach`: runs `fn` for every item for its side effects, discarding any retur… |
formatCompact |
number | Formats a number using compact notation (e.g. |
formatDuration |
date | Formats a duration in milliseconds as a compact human-readable string. |
formatInTimezone |
date | Formats a date in a specific IANA timezone using `Intl.DateTimeFormat`. |
formatProgressBar |
string | Formats a value as a text progress bar, repeating `filledChar`/`emptyChar` across `width` cells proportional to `value … |
formatSize |
number | Format a byte count into a human-readable string with the appropriate unit. |
from (parse temporal string) |
date | native JS Temporal.Instant.from(str) / Temporal.PlainDate.from(str) / etc. (Temporal (Stage 3)) |
fromMillis |
date | Creates a `Date` from a timestamp in **milliseconds**. |
fromSeconds |
date | Creates a `Date` from a timestamp in **seconds**. |
get |
object | Gets a value from an object using a dot/bracket-notated path or explicit key array. |
getTimezoneOffset |
date | Returns the UTC offset **in minutes** for the given IANA timezone at a specific point in time. |
groupBy |
map | native JS Map.groupBy(map.entries(), ([k, v]) => groupFn(v, k)) (ES2024) |
groupBy |
object | Groups an array of items by a key derived from each item. |
groupBy |
set | native JS Map.groupBy(set.values(), fn) (ES2024) |
groupBy / group |
array | native JS Object.groupBy(arr, fn) (ES2024) |
guard |
promise | Wraps a function so that if it throws, a default value is returned instead of propagating the error. |
has |
object | native JS Object.hasOwn(obj, key) (ES2022) |
hasValue |
map | Checks whether a value exists anywhere in a Map (`Map.prototype.has` checks keys, not values). |
hasValue |
map | native JS map.values().some(v => Object.is(v, value)) (ES2025 (Iterator Helpers)) |
head / first |
array | native JS Array.prototype.at(0) (ES2022) |
hexToRgb |
color | Parses a hex color string (`#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa` — the leading `#` is optional) into its RGB(A) chann… |
hslToRgb |
color | Converts an HSL(A) color into RGB(A). |
identity |
function | Returns the given value unchanged Useful as a default transform, in function composition, or as a placeholder mapper. |
includes |
array | native JS Array.prototype.includes() (ES2016) |
increment |
version | Increments a semantic version |
incrementPrerelease |
version | Increments the prerelease portion of a semantic version — the semantics `npm version prerelease --preid |
injectWordBreaks |
string | Adds word-break opportunities to a string so it can wrap cleanly in narrow UI containers such as side panels or table c… |
inRange |
number | Checks whether a number falls within `[min, max]` (both inclusive by default). |
intersection |
array | Compute the intersection of two arrays, meaning the elements that are present in both arrays. |
intersection |
set | native JS Set.prototype.intersection() (ES2025 (Set methods)) |
intersects |
array | Simple helper that check if two lists shared at least an item in common. |
invert |
object | Returns a new object with keys and values swapped. |
isArray |
guard | Checks if a value is an array. |
isArrayBuffer |
guard | Checks if a value is an ArrayBuffer instance. |
isArrayLike |
guard | Checks if a value is array-like: has a non-negative integer `length` property. |
isAsyncFunction |
guard | Checks if a value is an async function. |
isAsyncGenerator |
guard | Checks if a value is an async generator object (the result of calling an `async function*`). |
isAsyncGeneratorFunction |
guard | Checks if a value is an async generator function (an `async function*` declaration or expression). |
isAsyncIterable |
guard | Checks if a value implements the async iterable protocol. |
isBigInt |
guard | Checks if a value is a bigint. |
isBlank |
string | Checks if a string is blank — empty or contains only whitespace characters. |
isBlob |
guard | Checks if a value is a Blob instance. |
isBoolean |
guard | Checks if a value is a boolean. |
isBrowser |
guard | Checks whether the code is currently running in a browser-like environment (`window` and `window.document` both defined… |
isBuffer |
node | Checks if a value is a Node.js Buffer instance. |
isBusinessDay |
date | Checks whether a date falls on a business day (i.e. |
isConventionalCommit |
commit | Checks whether a commit message’s subject line follows the Conventional Commits format constrained by the given options. |
isCssColor |
guard | Checks whether a value is a syntactically-safe, plain CSS color: a hex color (`#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`),… |
isDate |
guard | Checks if a value is a Date instance. |
isDefined |
guard | Checks if a value is defined (not undefined nor null). |
isDirectInstanceOf |
type | native JS value.constructor === Foo (ES1) |
isEmpty |
array | Checks if an array is empty (has no elements). |
isEmpty |
object | Checks if a plain object has no own enumerable string-keyed properties. |
isEmpty |
string | Checks if a string is empty (`“”`), `null`, or `undefined`. |
isError |
guard | Checks if a value is an Error instance. |
isEven |
number | Checks if a value is an even integer. |
isFalsy |
guard | Checks if a value is falsy (`false`, `null`, `undefined`, `0`, `“”`, `NaN`). |
isFinite / isFiniteNumber |
type | native JS Number.isFinite(value) (ES2015) |
isFormData |
guard | Checks if a value is a FormData instance. |
isFunction |
guard | Checks if a value is a function. |
isGenerator |
guard | Checks if a value is a generator object (the result of calling a `function*`). |
isGeneratorFunction |
guard | Checks if a value is a generator function (a `function*` declaration or expression). |
isHtmlElement / isUrlInstance / isUrlSearchParams |
type | native JS value instanceof HTMLElement / URL / URLSearchParams (Web API) |
isInfinite |
type | native JS value === Infinity || value === -Infinity / !Number.isFinite(value) && !Number.isNaN(value) (ES2015) |
isInteger |
type | native JS Number.isInteger(value) (ES2015) |
isIterable |
guard | Checks if a value is iterable (has a `Symbol.iterator` method). |
isJSON |
guard | Checks whether a value is a string containing valid, parseable JSON text. |
isJSONArray |
guard | Checks whether a value is an array whose every element is a valid JSON value (see isJSONValue). |
isJSONObject |
guard | Checks whether a value is a plain object whose every own value is a valid JSON value (see isJSONValue). |
isJSONValue |
guard | Checks whether a value is composed entirely of JSON-representable types: `string`, finite `number`, `boolean`, `null`, … |
isLeapYear |
date | Returns `true` if the given year is a leap year. |
isLength |
guard | Checks whether a value is a valid array-like `length`: a non-negative safe integer (`0 <= value <= Number.MAX_SAFE_INTE… |
isLight / isDark (pick a readable text color) |
color | native JS contrast-color(<color>) (CSS Color 6 (Baseline newly available since April 2026 — Chrome 147, Firefox 146, Safari 26.0)) |
isMap |
guard | Checks if a value is a Map instance. |
isNaN |
type | native JS Number.isNaN(value) (ES2015) |
isNegative |
number | Checks if a value is a number less than 0. |
isNode |
guard | Checks whether the code is currently running in a Node.js-like environment (`process.versions.node` is defined — also t… |
isNodeStream |
node | Checks if a value is a Node.js stream (has a `.pipe()` method). |
isNonEmpty |
array | Checks if an array is non-empty (has at least one element). |
isNonEmpty |
object | Checks if a plain object has at least one own enumerable string-keyed property. |
isNonEmpty |
string | Checks if a string is non-empty (has at least one character). |
isNotBlank |
string | Checks if a string is not blank — non-empty and contains at least one non-whitespace character. |
isNull |
guard | Checks if a value is `null`. |
isNullish |
guard | Checks if a value is null or undefined (nullish). |
isNumber |
guard | Checks if a value is a number. |
isObservable |
observable | Checks if a value is an RxJS Observable or any compatible observable. |
isOdd |
number | Checks if a value is an odd integer. |
isPlainObject |
guard | Checks if a value is a plain object. |
isPositive |
number | Checks if a value is a number greater than 0. |
isPrerelease |
version | Returns `true` when the version string has a prerelease suffix (i.e. |
isPrimitive |
guard | Checks if a value is a JavaScript primitive. |
isPromise |
guard | Checks if a value is a Promise or a thenable. |
isPromiseLike |
guard | Checks if a value is a thenable (has a `.then()` method). |
isPropertyKey |
guard | Checks if a value is a valid property key: `string`, `number`, or `symbol`. |
isRegExp |
guard | Checks if a value is a RegExp instance. |
isSafeInteger |
type | native JS Number.isSafeInteger(value) (ES2015) |
isSameDay |
date | Checks if two dates are the same day. |
isSameMonth |
date | Checks if two dates are in the same month (and year). |
isSameYear |
date | Checks if two dates are in the same year. |
isSet |
guard | Checks if a value is a Set instance. |
isSet (Set data structure) |
type | native JS value instanceof Set (ES2015) |
isSharedArrayBuffer |
node | Checks if a value is a `SharedArrayBuffer` instance. |
isSpecialObject |
guard | Determines if a value is a special object that should not have its properties compared deeply. |
isString |
guard | Checks if a value is a string. |
isSymbol |
guard | Checks if a value is a symbol. |
isTemporalDuration |
guard | Checks if a value is a `Temporal.Duration`. |
isTemporalInstant |
guard | Checks if a value is a `Temporal.Instant`. |
isTemporalPlainDate |
guard | Checks if a value is a `Temporal.PlainDate`. |
isTemporalPlainDateTime |
guard | Checks if a value is a `Temporal.PlainDateTime`. |
isTemporalPlainTime |
guard | Checks if a value is a `Temporal.PlainTime`. |
isTemporalZonedDateTime |
guard | Checks if a value is a `Temporal.ZonedDateTime`. |
isTimestamp |
guard | Checks if a value is a valid timestamp (milliseconds or Unix seconds). |
isTimestampInSeconds |
date | Checks if a timestamp is likely in seconds (Java/Unix style) vs milliseconds (JavaScript style) |
isTruthy |
guard | Checks if a value is truthy (not `false`, `null`, `undefined`, `0`, `“”`, or `NaN`). |
isUndefined |
guard | Checks if a value is `undefined`. |
isValid |
date | Checks if a value is a valid Date instance (not `Invalid Date`). |
isValidDateString |
date | Checks whether a string can be parsed into a valid `Date`. |
isValidRegex |
guard | Checks if a string is a valid regex pattern. |
isWeakMap |
guard | Checks if a value is a WeakMap instance. |
isWeakMap / isWeakSet / isWeakRef |
type | native JS value instanceof WeakMap / WeakSet / WeakRef (ES2015 / ES2021) |
isWeakSet |
guard | Checks if a value is a WeakSet instance. |
isWeekend |
date | Checks whether a date falls on a weekend day. |
isWithinRange |
date | Checks whether a date falls within a range (inclusive on both ends). |
kebabCase |
string | Converts a string to kebab-case. |
kebabCaseKeys |
object | Recursively transforms every key of a plain object (including keys nested inside arrays and nested objects) to kebab-ca… |
keys / values |
object | native JS Object.keys() / Object.values() (ES2017) |
KeysOfType |
type | Extracts the keys of `T` whose values extend `V`. |
last |
array | native JS Array.prototype.at(-1) (ES2022) |
leadingSentence |
string | Extracts the leading sentence from a string. |
lerp |
number | Linearly interpolates between `start` and `end` by the factor `t`. |
lighten / darken |
color | native JS color-mix(in oklch, <color> <percent>, white|black) (CSS Color 5 (Baseline widely available since 2023 — Chrome 111, Firefox 113, Safari 16.2)) |
listTimezones |
date | Returns the list of IANA timezone identifiers supported by the runtime. |
map |
object | Transforms the values and/or keys of a plain object in a single pass. |
map |
set | Creates a new Set with each value transformed by a function. |
map / filter |
set | native JS new Set(set.values().map(fn)) / new Set(set.values().filter(fn)) (ES2025 (Iterator Helpers)) |
mapAsync |
array | The async counterpart to `Array.prototype.map`: applies `fn` to every item and resolves to an array of the results, in … |
mapDeep |
object | Recursively transforms the keys and/or values of a plain object — the deep counterpart to map, which only transforms th… |
mapKeys |
map | Creates a new Map with the same values but with each key transformed by a function. |
mapValues |
map | Creates a new Map with the same keys but with each value transformed by a function. |
max |
array | Returns the maximum value in an array using a loop instead of spread, avoiding the call stack overflow that occurs with… |
Maybe |
type | Type for values that can be T, undefined, or null. |
mean |
array | Calculates the arithmetic mean (average) of an array of numbers. |
meanBy |
array | Calculates the arithmetic mean of numbers derived from each item of an array via an iteratee. |
meaningPromiseOrThrow |
promise | Returns a function that passes through meaningful data or throws an error. |
median |
array | Calculates the median (middle value) of an array of numbers. |
memoize |
function | Returns a memoized version of the function that caches results. |
merge (shallow) |
object | native JS { ...a, ...b } or Object.assign({}, a, b) (ES2015) |
mergeDeep |
object | Merges two or more objects deeply, returning a **new** object without mutating any input. |
min |
array | Returns the minimum value in an array using a loop instead of spread, avoiding the call stack overflow that occurs with… |
min / max |
number | native JS Math.min(...arr) / Math.max(...arr) (ES1) |
negate |
function | Creates a function that negates the result of `predicate`. |
noop |
function | A no-operation function that does nothing and returns `undefined` Useful as a default callback, placeholder, or to exp… |
normalizeTimestamp |
date | Converts a timestamp to JavaScript milliseconds format |
now (date/time/instant) |
date | native JS Temporal.Now.instant() / .zonedDateTimeISO() / .plainDateISO() / .plainTimeISO() (Temporal (Stage 3)) |
Nullable |
type | Adds `null` to a type (`T | null`). |
Nullish |
type | Adds `null` and `undefined` to a type (`T | null | undefined`). |
omit |
object | Creates a new object without the specified keys. |
omitBy |
object | Creates a new object without the own enumerable entries for which `predicate` returns `true`. |
OmitByValue |
type | Constructs a type by omitting all entries of `T` whose values extend `V`. |
once |
function | Creates a function that is restricted to be called only once. |
onlyPath |
url | Extract only the path from an URI with optional query and fragments. |
OptionalKeys |
type | Extracts the optional keys of an object type `T`. |
overlaps |
date | Checks whether two date ranges overlap. |
padStart / padEnd |
string | native JS String.prototype.padStart() / padEnd() (ES2017) |
parallel |
promise | Runs an array of async functions with a concurrency limit. |
parallelSettle |
promise | Runs an array of async functions with a concurrency limit, partitioning the outcomes instead of rejecting on the first … |
parse |
version | Parses a semantic version string into its components according to SemVer 2.0.0 specification Supports: - Core version:… |
parseConventionalCommit |
commit | Parses a Conventional Commits message into a structured object. |
parseDuration |
date | Parses a compact duration string (as produced by formatDuration, e.g. |
parsePackageRepository |
url | Parse the `repository` field from `package.json` into a structured object. |
parsePropertyPath |
object | Parses a dot/bracket-notation property path into an array of string/number key segments — the same notation accepted by… |
partial |
function | Partially applies arguments to a function, returning a new function that accepts the remaining arguments. |
partition |
array | Splits an array into two groups based on a predicate function. |
pascalCase |
string | Converts a string to PascalCase. |
pascalCaseKeys |
object | Recursively transforms every key of a plain object (including keys nested inside arrays and nested objects) to PascalCa… |
percentageToTier |
ci | Maps a numeric percentage to a tier (icon, color, label) using configurable thresholds. |
percentile |
array | Calculates the p-th percentile of an array of numbers using linear interpolation between the closest ranks. |
pick |
object | Creates a new object with only the specified keys. |
pickBy |
object | Creates a new object with only the own enumerable entries for which `predicate` returns `true`. |
PickByValue |
type | Constructs a type by picking all entries of `T` whose values extend `V`. |
pipe |
function | Composes functions left-to-right: the output of each function is passed as input to the next. |
Prettify |
type | Flattens an intersection type into a single readable object type. |
randomBetween |
number | Generates a random number between min and max (inclusive) |
randomIntBetween |
number | Generates a random integer between min and max (inclusive) |
range |
array | Generates an array of sequential numbers from start to end (exclusive). |
reduce |
map | Reduces a Map to a single value by applying a function to each entry, in insertion order. |
reduce / some / every |
map | native JS map.entries().reduce(fn, init) / .some(fn) / .every(fn) (ES2025 (Iterator Helpers)) |
reduce / some / every / find |
set | native JS set.values().reduce(fn, init) / .some(fn) / .every(fn) / .find(fn) (ES2025 (Iterator Helpers)) |
relativeURLToAbsolute |
url | Converts a relative URL to an absolute URL using the current document base URI. |
removeDiacritics |
string | Removes diacritical marks (accents) from a string, e.g. |
removeUndefinedNull |
object | Remove null and undefined values from an object. |
repeat |
string | native JS String.prototype.repeat() (ES2015) |
replaceOrAppend |
array | Returns a new array with the first item matching `predicate` replaced by `item` — or `item` appended at the end if no m… |
RequiredKeys |
type | Extracts the required (non-optional) keys of an object type `T`. |
resolveRecord |
promise | Resolves an array of keys into a record by calling an async mapper for each key. |
retry |
promise | Retries a promise-returning function up to maxAttempts times |
returnOrThrowError |
function | Return a value or throw an error if null or undefined. |
reverse |
array | native JS Array.prototype.toReversed() (ES2023) |
rgbToHex |
color | Converts an RGB(A) color into a hex color string. |
rgbToHsl |
color | Converts an RGB(A) color into HSL(A). |
roundTo |
number | Rounds a number to specified decimal places |
safeFetch |
promise | Wraps `fetch` with built-in error handling: returns `null` when the request fails (network error, non-OK status, or par… |
safeJsonParse |
object | Parses a JSON string, returning `null` (or a fallback) on any parse failure. |
safeReadJsonFile |
node | Reads a file and parses its contents as JSON, returning `null` (or a fallback) on any failure — a missing/unreadable fi… |
sample |
array | Picks one or more random elements from an array. |
satisfiesRange |
version | Checks if a version satisfies a range (simple implementation) |
select |
array | Filters and transforms an array in a single pass. |
select / filterMap |
array | native JS Array.prototype.filter().map() (ES5) |
set |
object | Sets a value in an object at the given path, creating intermediate objects as needed. |
settle |
promise | Runs an array of promises concurrently and partitions the outcomes instead of rejecting on the first failure, unlike `P… |
shuffle |
array | Randomly reorders elements of an array using the Fisher-Yates algorithm. |
slugify |
string | Converts a string into a URL-friendly slug. |
snakeCase |
string | Converts a string to snake_case. |
snakeCaseKeys |
object | Recursively transforms every key of a plain object (including keys nested inside arrays and nested objects) to snake_ca… |
some |
map | Checks if at least one entry of a Map satisfies the predicate. |
sort (immutable) |
array | native JS Array.prototype.toSorted(compareFn?) (ES2023) |
sortBy / orderBy |
array | native JS Array.prototype.toSorted(fn?) (ES2023) |
sortKeys |
object | Creates a new object with the same entries as the input, but with its own keys sorted. |
sortNumberAscFn |
array | Sort numbers in ascending order |
sortNumberDescFn |
array | Sort numbers in descending order |
sortStringAscFn |
array | Sort strings in ascending order |
sortStringAscInsensitiveFn |
array | Sort strings in ascending order (case insensitive) |
sortStringDescFn |
array | Sort strings in descending order |
sortStringNaturalAscFn |
array | Sort strings in ascending order using natural (human-friendly) ordering. |
sortStringNaturalAscInsensitiveFn |
array | Sort strings in ascending natural order, ignoring case **and diacritics** (`Intl.Collator { sensitivity: ‘base’ }` — tr… |
sortStringNaturalDescFn |
array | Sort strings in descending order using natural (human-friendly) ordering. |
sortStringNaturalDescInsensitiveFn |
array | Sort strings in descending natural order, ignoring case **and diacritics** (`Intl.Collator { sensitivity: ‘base’ }` — t… |
startOf |
date | Returns a new `Date` set to the **start** of the given unit. |
startsWith / endsWith |
string | native JS String.prototype.startsWith() / endsWith() (ES2015) |
statusToBadge |
ci | Maps a CI/CD job status to an inline code badge string. |
statusToIcon |
ci | Maps a CI/CD job status to an emoji icon. |
stringify |
version | Reconstruct a semantic version string from a ParsedVersion object. |
stripV |
version | Strip the leading “v” from a version string if it exists. |
sum |
array | Calculates the sum of an array of numbers. |
sumBy |
array | Calculates the sum of numbers derived from each item of an array via an iteratee. |
symmetricDifference |
array | Returns the symmetric difference between two arrays: items present in exactly one of the two arrays (in either, but not… |
symmetricDifference |
set | native JS Set.prototype.symmetricDifference() (ES2025 (Set methods)) |
tail |
array | native JS Array.prototype.slice(1) (ES3) |
take |
array | native JS Array.prototype.slice(0, n) (ES3) |
template |
string | Interpolates `{{key}}` placeholders in a template string with values from a data record. |
throttle |
function | Creates a throttled function that only invokes func at most once per every wait milliseconds |
timeAgo |
date | Formats a date as a human-readable relative time string. |
timeout |
promise | Wraps a promise to reject with a `TimeoutError` if it does not resolve within the specified duration. |
titleCase |
string | Converts a string to Title Case. |
titleCaseKeys |
object | Recursively transforms every key of a plain object (including keys nested inside arrays and nested objects) to Title Ca… |
toggle |
array | Returns a new array with `item` removed if present, or appended if absent — the common “toggle a selection” pattern. |
toInt / toFloat |
number | native JS parseInt(str, 10) / parseFloat(str) (ES1) |
toISO8601 |
date | Converts a date to ISO 8601 format Format: YYYY-MM-DDTHH:mm:ss.sssZ |
toMapByKey |
map | Builds a Map from an iterable of items, keyed by a derived key. |
toMapByKey |
set | Builds a Map from a Set, keyed by a derived key. |
toMillis |
date | Converts a date to a timestamp in **milliseconds** (epoch millis). |
toPairs / fromPairs |
object | native JS Object.entries() / Object.fromEntries() (ES2019) |
toPlainDate / toPlainDateTime / toPlainTime |
date | native JS Temporal.ZonedDateTime.prototype.toPlainDate() / toPlainDateTime() / toPlainTime() (Temporal (Stage 3)) |
toRFC2822 |
date | Converts a date to RFC 2822 format Format: Day, DD Mon YYYY HH:mm:ss +0000 Used in email headers (Date field) and HTTP … |
toRFC3339 |
date | Converts a date to RFC 3339 format Format: YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss+HH:mm RFC 3339 is a profile of I… |
toSeconds |
date | Converts a date to a timestamp in **seconds** (epoch seconds). |
toTemporalInstant |
date | native JS Date.prototype.toTemporalInstant() (Temporal (Stage 3)) |
toZonedDateTime |
date | native JS Temporal.Instant.prototype.toZonedDateTimeISO(tz) (Temporal (Stage 3)) |
trim |
string | Trims both leading and trailing characters from a string, at a configurable level of aggressiveness (see TrimMode). |
trim / trimStart / trimEnd |
string | native JS String.prototype.trim() / trimStart() / trimEnd() (ES2019) |
trimEnd |
string | Trims trailing characters from a string, at a configurable level of aggressiveness (see TrimMode). |
trimStart |
string | Trims leading characters from a string, at a configurable level of aggressiveness (see TrimMode). |
truncate |
string | Truncates a string to `maxLength` characters, appending an ellipsis when cut. |
truthyPromiseOrThrow |
promise | Returns a function that passes through truthy data or throws an error. |
tryit |
promise | Wraps a function so it never throws. |
TypedArrays (isInt8Array, isFloat32Array, ...) |
type | native JS value instanceof Int8Array / Float32Array / ... (ES2015) |
unary |
function | Creates a function that calls `fn` with only its first argument, discarding any others. |
unescapeHtml |
string | Unescapes the HTML entities `&`, `<`, `>`, `"`, and `'` back to `&`, `<`, `>`, `“`, and `’`. |
unflatten |
object | Rebuilds a nested object from a single-level object whose keys are dot-notation paths. |
union |
array | native JS unique([...a, ...b]) (ES2015) |
union |
set | native JS Set.prototype.union() (ES2025 (Set methods)) |
UnionToIntersection |
type | Converts a union type to an intersection type: `A | B | C` → `A & B & C`. |
unique |
array | Removes duplicate values from an array. |
unset |
object | Removes the value at a dot/bracket-notation path or explicit key array, mutating the object in place. |
until / since (difference) |
date | native JS Temporal.PlainDate.prototype.until(other) / .since(other) (Temporal (Stage 3)) |
unzip |
array | Splits an array of tuples into separate arrays, one per position. |
update |
object | Updates the value at a path by applying a function to its current value, creating intermediate objects as needed. |
uuid7 |
id | Generates a UUID v7 string (RFC 9562). |
ValueOf |
type | Produces a union of all value types of an object type `T`. |
WeekDays |
date | Named day-of-week constants following the JavaScript `Date.getDay()` convention. |
withAlpha (change the alpha channel of an existing color) |
color | native JS rgb(from <color> r g b / <alpha>) (CSS Color 5 relative color syntax (Baseline widely available since September 2024 — Chrome 119+)) |
withLeadingSlash |
url | Adds a leading slash `/` to the given URL if it is not already present. |
without |
array | Returns a new array with all occurrences of the given values removed. |
withoutLeadingSlash |
url | Removes the leading slash `/` from the given URL if it is present. |
withoutTrailingSlash |
url | Removes the trailing slash `/` from the given URL if it is present. |
withResolvers |
promise | native JS Promise.withResolvers() (ES2024) |
withTrailingSlash |
url | Adds a trailing slash `/` to the given URL if it is not already present. |
words |
string | Splits a string into an array of words. |
zip |
array | Combines multiple arrays element-by-element into an array of tuples. |
