Skip to content

About

A helpful collection of type guards and assertions, written in TypeScript.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Bossy Boots

Bossy Boots is a helpful collection of type guards and assertions, written in TypeScript.

Table of Content

Overview

The benefits of using Bossy Boots include a more robust runtime and less repetitious logic in your code. With type definitions included out the box, TypeScript environments (especially those in strict mode) will benefit even further with accurate type inference and narrowing.

The bulk of Bossy Boots is made up of assertions and guards that take a value and check if it matches one or more predicates. The most important distinction between the two is that assertions will throw if the check fails, whereas guards will return a boolean instead, allowing you implement your own handling logic. Most assertions have (and use) guard counterparts.

Installation

npm i bossy-boots

Usage

Bossy Boots is completely modular and compatible with both ESM and CommonJS environments.

// ESM
import { ... } from 'bossy-boots';

// CommonJS
const { ... } = require('bossy-boots');

API

Below is a brief overview of the available methods. For full API documentation, see the docs.

Assertions

💡 Assertions will throw if the check fails. If not handled this will stop execution.

assertIsInstanceOf(value, ...prototypes)

assertIsNotInstanceOf(value, ...prototypes)

assertIsTypeOf(value, ...types)

assertIsNotTypeOf(value, ...types)

Guards

💡 Guards return a boolean that is true if the check succeeds, and false otherwise.

isInstanceOf(value, ...prototypes)

isNotInstanceOf(value, ...prototypes)

isTypeOf(value, ...types)

isNotTypeOf(value, ...types)

Common abstractions

While the default assertions and guards are powerful and flexible, they may become gratuitous for repetitive checks. To this end, Bossy Boots also includes a collection of methods which abstract away common checks.

Instance

Instance Assertion Guard
is is not is is not
Element assertIsElement() assertIsNotElement() isElement() isNotElement()
HTMLElement assertIsHTMLElement() assertIsNotHTMLElement() isHTMLElement() isNotHTMLElement()

Type

Type Assertion Guard
is is not is is not
boolean assertIsBoolean() assertIsNotBoolean() isBoolean() isNotBoolean()
bigint assertIsBigInt() assertIsNotBigInt() isBigInt() isNotBigInt()
null assertIsNull() assertIsNotNull() isNull() isNotNull()
undefined assertIsUndefined() assertIsNotUndefined() isUndefined() isNotUndefined()
nullish * assertIsNullish() assertIsNotNullish() isNullish() isNotNullish()
number assertIsNumber() assertIsNotNumber() isNumber() isNotNumber()
string assertIsString() assertIsNotString() isString() isNotString()
symbol assertIsSymbol() assertIsNotSymbol() isSymbol() isNotSymbol()

* nullish is equivalent to null OR undefined.

Utils

assert(condition, [message])

guarantee(value)

License

Made with ❤️

Published under the MIT License.

About

A helpful collection of type guards and assertions, written in TypeScript.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages