bossy-boots
v1.1.3
Published
A helpful collection of type guards and assertions, written in TypeScript.
Maintainers
Readme
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-bootsUsage
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
Type
* nullish is equivalent to null OR undefined.
Utils
assert(condition, [message])
guarantee(value)
License
Made with ❤️
Published under the MIT License.
