# @abw/badger-utils

> Javascript utility modules

Latest version **1.2.4** (published 2025-01-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install @abw/badger-utils
pnpm add @abw/badger-utils
yarn add @abw/badger-utils
bun add @abw/badger-utils
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.4 |
| Published | 2025-01-27 |
| First published | 2022-08-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 171.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Andy Wardley |
| Maintainers | abw |
| Keywords | badger, utility |

## Links

- npm: https://www.npmjs.com/package/@abw/badger-utils
- Repository: https://github.com/abw/badger-utils
- Homepage: https://badgerpower.com/badger-utils/
- Issues: https://github.com/abw/badger-utils/issues
- npm.io page: https://npm.io/package/@abw/badger-utils

## Alternatives

- [lodash.assign](https://npm.io/package/lodash.assign.md) — 2.3M weekly downloads
- [lodash.chunk](https://npm.io/package/lodash.chunk.md) — 1.8M weekly downloads
- [react-native-ios-utilities](https://npm.io/package/react-native-ios-utilities.md) — 138.5K weekly downloads
- [@technically/lodash](https://npm.io/package/@technically/lodash.md) — 50.9K weekly downloads
- [@fluid-topics/ft-icon](https://npm.io/package/@fluid-topics/ft-icon.md) — 20.6K weekly downloads

## Recent versions

- 1.2.4 (latest) — 2025-01-27
- 1.2.0-ts-beta3 (beta) — 2024-12-26
- 1.2.0-ts-alpha2 (alpha) — 2024-12-24
- 1.2.3 — 2025-01-22
- 1.2.2 — 2025-01-17
- 1.2.1 — 2025-01-02
- 1.2.0 — 2024-12-27
- 1.2.0-ts-beta — 2024-12-24
- 1.2.0-ts-alpha — 2024-12-24
- 1.1.5 — 2024-12-06
- 1.1.4 — 2024-09-23
- 1.1.3 — 2024-09-23
- 1.1.2 — 2024-08-28
- 1.1.1 — 2024-06-23
- 1.1.0 — 2024-05-01
- … 26 more at https://npm.io/package/@abw/badger-utils/versions

## README

# Badger Utils

This is a collection of various useful Javascript utility functions that I've
written over the years.

Many of them are wrappers for simple code snippets that exist only to make
my code more self-documenting and/or easier to read.  Some are more
complicated and are the kind of things that I prefer not to copy-and-paste
into different projects.

You'll find similar functions in other libraries like
[underscore](https://underscorejs.org/) and [Lodash](https://lodash.com/).
These just happen to be the ones I tend to use all the time.

## Installation

Install `badger-utils` using your favourite package manager.

### npm

    npm add @abw/badger-utils

### pnpm

    pnpm add @abw/badger-utils

### yarn

    yarn add @abw/badger-utils

## Documentation

Visit the [website](https://badgerpower.com/badger-utils/) for detailed
documentation.

## Assertions

* [isBoolean(value)](https://badgerpower.com/badger-utils/assertions#isBoolean)
* [isString(value)](https://badgerpower.com/badger-utils/assertions#isString)
* [isNumber(value)](https://badgerpower.com/badger-utils/assertions#isNumber)
* [isInteger(value)](https://badgerpower.com/badger-utils/assertions#isInteger)
* [isFloat(value)](https://badgerpower.com/badger-utils/assertions#isFloat)
* [isArray(value)](https://badgerpower.com/badger-utils/assertions#isArray)
* [isFunction(value)](https://badgerpower.com/badger-utils/assertions#isFunction)
* [isRegExp(value)](https://badgerpower.com/badger-utils/assertions#isRegExp)
* [isObject(value)](https://badgerpower.com/badger-utils/assertions#isObject)
* [isSimple(value)](https://badgerpower.com/badger-utils/assertions#isSimple)
* [isUndefined(value)](https://badgerpower.com/badger-utils/assertions#isUndefined)
* [isNull(value)](https://badgerpower.com/badger-utils/assertions#isNull)
* [isEmpty(...values)](https://badgerpower.com/badger-utils/assertions#isEmpty)
* [hasValue(value)](https://badgerpower.com/badger-utils/assertions#hasValue)
* [noValue(value)](https://badgerpower.com/badger-utils/assertions#noValue)
* [haveValue(...values)](https://badgerpower.com/badger-utils/assertions#haveValue)
* [firstValue(...values)](https://badgerpower.com/badger-utils/assertions#firstValue)

## Numbers

* [range(from, to, step=1)](https://badgerpower.com/badger-utils/numbers#range)
* [formatNumber(number, options)](https://badgerpower.com/badger-utils/numbers#formatNumber)
* [currency(number, options)](https://badgerpower.com/badger-utils/numbers#currency)
* [commas(n)](https://badgerpower.com/badger-utils/numbers#commas)
* [setNumberDefaults(defaults)](https://badgerpower.com/badger-utils/numbers#setNumberDefaults)

## Text

* [splitLines(text)](https://badgerpower.com/badger-utils/text#splitLines)
* [splitList(value)](https://badgerpower.com/badger-utils/text#splitList)
* [splitHash(value, set=true, hash={})](https://badgerpower.com/badger-utils/text#splitHash)
* [joinList(array, joint=' ', lastJoint=joint)](https://badgerpower.com/badger-utils/text#joinList)
* [joinListAnd(array, joint=', ', lastJoint=' and ')](https://badgerpower.com/badger-utils/text#joinListAnd)
* [joinListOr(array, joint=', ', lastJoint=' or ')](https://badgerpower.com/badger-utils/text#joinListOr)
* [capitalise(word) / capitalize(word)](https://badgerpower.com/badger-utils/text#capitalise)
* [capitaliseWords(string) / capitalizeWords(string)](https://badgerpower.com/badger-utils/text#capitaliseWords)
* [snakeToStudly(snake)](https://badgerpower.com/badger-utils/text#snakeToStudly)
* [snakeToCamel(snake)](https://badgerpower.com/badger-utils/text#snakeToCamel)
* [plural(singular)](https://badgerpower.com/badger-utils/text#plural)
* [singular(plural)](https://badgerpower.com/badger-utils/text#singular)
* [inflect(n, singular, plural, no='no')](https://badgerpower.com/badger-utils/text#inflect)
* [Inflect(n, singular, plural, no='No')](https://badgerpower.com/badger-utils/text#Inflect)
* [format(message, data)](https://badgerpower.com/badger-utils/text#format)

## Objects

* [hash(source, options)](https://badgerpower.com/badger-utils/objects#hash)
* [objMap(obj, fn)](https://badgerpower.com/badger-utils/objects#objMap)
* [remove(object, key)](https://badgerpower.com/badger-utils/objects#remove)
* [extract(object, keys, options)](https://badgerpower.com/badger-utils/objects#extract)
* [keys(object)](https://badgerpower.com/badger-utils/objects#keys)
* [values(object)](https://badgerpower.com/badger-utils/objects#values)
* [entries(object)](https://badgerpower.com/badger-utils/objects#entries)

## Functions

* [maybeFunction(fn, args)](https://badgerpower.com/badger-utils/functions#maybeFunction)
* [doNothing()](https://badgerpower.com/badger-utils/functions#doNothing)
* [identity(value)](https://badgerpower.com/badger-utils/functions#identity)

## Select

* [selector(spec)](https://badgerpower.com/badger-utils/select#selector)

## Sort

* [stringSort(field)](https://badgerpower.com/badger-utils/sort#stringSort)
* [numberSort(field)](https://badgerpower.com/badger-utils/sort#numberSort)
* [integerSort(field)](https://badgerpower.com/badger-utils/sort#integerSort)
* [booleanSort(field)](https://badgerpower.com/badger-utils/sort#booleanSort)
* [multiSort(fields)](https://badgerpower.com/badger-utils/sort#multiSort)
* [stringField(obj,field)](https://badgerpower.com/badger-utils/sort#stringField)
* [numberField(obj,field)](https://badgerpower.com/badger-utils/sort#numberField)
* [integerField(obj,field)](https://badgerpower.com/badger-utils/sort#integerField)
* [booleanField(obj,field)](https://badgerpower.com/badger-utils/sort#booleanField)
* [descendingOrder(sortFn)](https://badgerpower.com/badger-utils/sort#descendingOrder)
* [ascendingOrder(sortFn)](https://badgerpower.com/badger-utils/sort#ascendingOrder)

## Timing

* [debounce(func, timeout=300)](https://badgerpower.com/badger-utils/timing#debounce)
* [sleep(ms)](https://badgerpower.com/badger-utils/timing#sleep)

## Errors

* [fail(message)](https://badgerpower.com/badger-utils/errors#fail)
* [failMsg(message, data)](https://badgerpower.com/badger-utils/errors#failMsg)
* [rethrow(error)](https://badgerpower.com/badger-utils/errors#rethrow)

## Miscellaneous

* [defaultLocale()](https://badgerpower.com/badger-utils/misc#defaultLocale)

## Author

Andy Wardley <abw@wardley.org>

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