@nerdware/ts-type-safety-utils
v1.0.15
Published
TypeScript type-guards and other type-safety utils to suit common use cases.
Downloads
102
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-utils
yarn:
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] — @TeeRevTweets