@nerdware/ts-type-safety-utils v1.2.2
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 — Trevor@Nerdware.cloud — @trevor-anderson
10 months ago
10 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago