# fauxdash

> I don't know it's not lodash

Latest version **1.9.1** (published 2026-08-30) · ISC license · 0 weekly downloads

## Install

```sh
npm install fauxdash
pnpm add fauxdash
yarn add fauxdash
bun add fauxdash
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.9.1 |
| Published | 2026-08-30 |
| First published | 2017-07-14 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=22 |
| Dependencies | 0 |
| Unpacked size | 38.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 1 |
| Author | Alex Robson |
| Maintainers | arobson |

## Links

- npm: https://www.npmjs.com/package/fauxdash
- Repository: https://github.com/distsys-labs/fauxdash
- Homepage: https://github.com/distsys-labs/fauxdash#readme
- Issues: https://github.com/distsys-labs/fauxdash/issues
- npm.io page: https://npm.io/package/fauxdash

## Recent versions

- 1.9.1 (latest) — 2026-08-30
- 1.8.6 — 2026-01-30
- 1.8.5 — 2026-01-08
- 1.8.4 — 2026-01-04
- 1.8.3 — 2026-01-01
- 1.8.1 — 2025-12-31
- 1.7.3 — 2022-03-31
- 1.7.2 — 2021-04-11
- 1.7.1 — 2021-01-30
- 1.7.0 — 2021-01-22
- 1.6.0 — 2021-01-21
- 1.5.0 — 2021-01-21
- 1.4.1 — 2021-01-20
- 1.4.0 — 2018-11-04
- 1.3.2 — 2018-03-09
- … 7 more at https://npm.io/package/fauxdash/versions

## README

# fauxdash

This is because I got tired of writing the same kinds of things over and didn't want the to import 3-5 full dependencies. This is for Node 18 forward only. It should probably never be used outside my own projects.

## API

### `any(list, [predicate])`

Returns true if anything in the list passes the `predicate`. The `predicate` defaults to unit (`x => x`) so, "is anything in this list truthy?" is the default.

### `applyWhen(fn, args)`

Returns a promise for the application of the function call `fn` where it will apply the `args` passed (an array) but only after resolving any promises in the list first.

### `bindAll(obj)`

Binds _every_ method in the obj's prototype chain to it. Every last one.

### `contains(list, value)`

Returns a boolean indicating the `value`'s presence in the `list`.

### `clone(obj)`

Creates a deep clone of the `obj`.

### `defaults(obj, ...defaults)`

Returns a new object with missing keys backfilled from objects passed in `defaults`. Uses left-to-right ordering. Will *not* over-write values.

### `each(obj, iterator)`

Executes the iterator for every key-value-pair in `obj`. Calls iterator with `value`, `key` arguments.

### `exists(value)`

Shorthand for checking value against `undefined` and `null`.

### `filter(list, [predicate])`

Returns list without 

### `find(list, [predicate])`

Returns the first item in the `list` that matches `predicate` where `predicate` defaults to unit.

### `flatten(nestedArray)`

Returns single dimensional array.

### `future()`

Returns a hash with `promise`, `resolve`, `reject` properties.

### `getArguments(fn)`

Returns a list of the arguments contained in the function `fn`.

### `has(obj, propertyName)`

Returns a boolean indicating if `obj` has a property named `propertyName`. Ignores properties set to `undefined` or `null`.

### `intersection(list1, list2)`

Returns a list of the items contained in both lists.

### `last(list, [predicate])`

Returns the last occurence of an item matching `predicate` where `predicate` defaults to unit.

### `lift(asyncFn)`

Returns a promisified version of the Node-style async function `asyncFn`.

### `map(obj, iterator)`

Returns an array based on running `iterator` against every key value pair in `obj`. Calls `iterator` with `value`, `key` argument ordering.

### `mapCall(method, map)`

Takes a method that accepts a context arg and then a series of arguments that require a mapping from an incoming object.

Returns a new function that takes a context argument and an object to be mapped across the rest of the arguments.

### `matches(filter)`

Creates a new function that compares a value for deep equality to make comparisons simpler and repeatable.

### `melter(target, ...args)`

Combines objects in the args onto the target and rebinds any `function`s to the new target. Will not work on arrow functions! (their `this` is inherited from lexical scope and cannot be set via `bind`).

### `memoize(function)`

Returns a memoized instance of the function which will memoize results based on a WeakSet of arguments passed.

### `merge(...objects)`

Deep merges objects provided with the latter overriding the former.

### `omit(obj, ...keys)`

Returns a new version of `obj` without the `keys`.

### `noop`

### `parseFunction(fn)`

Returns an object with the properties `name` and `arguments`.

### `reduce(obj, iterator, accumulator)`

Returns a reduction over the key value pairs in `obj` calling `iterator`. Calls `iterator` with `accumulator`, `value`, `key` argument order.

### `sequence(...functions)`

Executes the list of `functions` in order and returns a list with the ordered results. Functions can return a promise.

### `sortBy(list, identity)`

Returns `list` sorted by the result returned from `identity` for each item.

### `transform(obj, aliases, [...omit])`

Renames keys in `obj` using the `aliases` lookup. Will omit any key in `omit`.

### `trim(list)`

Returns a new list with the space trimmed from every item.

### `trimString()`

Trims space from `str`.

### `type(obj)`

Returns the `obj`'s prototype name.

### `uniq(list)`

Returns a unique list of values from `list`.

### `unique(list, identity)`

Return a unique list of values from `list` based on the result of the `identity` function for each item.

### `values(obj)`

Return the values from an Object. (like `Object.values`)

### `without(list1, list2)`

Return a unique set of list1 without any of the values from list2.

### Type Tests

All of the following return a boolean based on the type of the `value` passed:

 * `isDate(value)`
 * `isEqual(value)`
 * `isFunction(value)`
 * `isNumber(value)`
 * `isObject(value)`
 * `isPlainObject(value)`
 * `isPromisey(value)`
 * `isStub(value)`
 * `isString(value)`

---
_Source: https://npm.io/package/fauxdash · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
