@nerdware/ts-type-safety-utils
v1.3.1
Published
TypeScript type-guards and other type-safety utils to suit common use cases.
Downloads
164
Maintainers
Readme
TypeScript type-guards and other type-safety utils for any environment 🎉ESM ✅ CommonJS ✅ NodeJS ✅ browsers ✅
🚀 Getting Started
This package provides a lightweight set of TypeScript type-guards and other type-safety utils to suit common use cases.
📦 Installation
Install the package using your package manager of choice:
npm:
npm install @nerdware/ts-type-safety-utilsyarn:
yarn add @nerdware/ts-type-safety-utils🛠️ Usage
import { isPlainObject } from "@nerdware/ts-type-safety-utils";
// or const { isPlainObject } = require("@nerdware/ts-type-safety-utils");
const fooFn = (input: unknown) => {
if (isPlainObject(input)) {
// TS knows `input` is a plain object
} else {
// TS knows `input` is not a plain object
}
};⚙️ API
Is-x type-guards
| Function | Description |
| :---------------------------------------- | :------------------------------------------------------------------------------- |
| isArray | Checks if a value is an array or readonly array |
| isBigInt | Checks if a value is a BigInt |
| isBoolean | Checks if a value is a boolean |
| isBuffer | Checks if a value is a NodeJS Buffer (this is a no-op in browser envs) |
| isDate | Checks if a value is a Date |
| isError | Checks if a value is an Error, an Error subclass, or DOMException |
| isFunction | Checks if a value is a function |
| isNull | Checks if a value is null |
| isObjectLike | Checks if a value is "object-like" (typeof "object" and not null) |
| isPlainObject | Checks if a value is a plain object |
| isSafeInteger | Checks if a value is a safe integer |
| isString | Checks if a value is a string |
| isSymbol | Checks if a value is a symbol |
| isUndefined | Checks if a value is undefined |
| isUnsafeNumber | Checks if a value is typeof "number" (🚨 allows NaN and other "number" values) |
Other type-guards
| Function | Description |
| :---------------------------------------------- | :--------------------------------------------------------------------------------------------------- |
| getTypeSafeError | Converts any argument into an Error object |
| hasKey | Checks if an object contains the provided key |
| hasKeys | Checks if an object contains all provided keys |
| safeJsonStringify | Type-safe JSON.stringify which will not throw if the input contains circular references or BigInts |
🤝 Contributing
Pull requests are welcome! Before you begin, please check existing GitHub Issues and Pull Requests to see if your idea is already in the pipeline. If not, here's a guide on how to contribute to this project. Thank you!
📝 License
All files, scripts, and source code contained herein are open-source software licensed under an MIT License.
See LICENSE for more information.
💬 Contact
Trevor Anderson — [email protected] — @trevor-anderson
