latest
MurkyTheMurloc/typebuddyYour new best friend for simple typescript guards that every project needs
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers




JSR Score
58%
Published
2 months ago (0.3.2)
ts-typehelper
TypeBuddy
TypeBuddy is a utility library for type checking and type parsing in TypeScript. It provides a set of functions to determine the type of a value, parse values into specific types, and perform various type-related operations.
Features
- Type checking for common JavaScript types (e.g.,
string,number,boolean,object,array, etc.) - Parsing values into specific types (e.g.,
number,integer,float,string,array, etc.) - Utility functions for working with arrays, objects, and other data structures
- Regular expressions for validating UUID and ULID strings
Installation
You can install TypeBuddy using npm:
npm install typebuddy
Or using jsr:
deno add jsr:@guard/typebuddy
npx jsr add @guard/typebuddy
Usage
Here's an example of how to use TypeBuddy in your TypeScript project:
import { isString, parseNumber, isUuidString, isEmptyObject } from "typebuddy"; const value: unknown = "123"; if (isString(value)) { console.log(`The value is a string: ${value}`); } const numberValue = parseNumber(value); console.log(`Parsed number: ${numberValue}`); const uuid = "550e8400-e29b-41d4-a716-446655440000"; if (isUuidString(uuid)) { console.log(`The value is a valid UUID: ${uuid}`); } const obj = {}; if (isEmptyObject(obj)) { console.log("The object is empty"); }
API
Type Checking Functions
isObject(value: unknown): value is objectisBoolean(value: unknown): value is booleanisNull(value: unknown): value is nullisUndefined(value: unknown): value is undefinedisFunction(value: unknown): value is FunctionisPromise(value: unknown): value is Promise<unknown>isError(value: unknown): value is ErrorisDate(value: unknown): value is DateisRegExp(value: unknown): value is RegExpisSymbol(value: unknown): value is symbolisEmptyObject(value: unknown): value is Record<string, unknown>isInstanceOf<T>(value: unknown, constructor: { new (): T }): value is TisArray<T>(value: unknown): value is T[]isEmptyArray<T>(value: unknown): value is T[]isNumber(value: unknown): value is numberisInteger(value: unknown): value is numberisFloat(value: unknown): value is numberisString(value: unknown): value is stringisUuidString(input: unknown): input is stringisUlidString(input: unknown): input is string
Parsing Functions
parseNumber(value: unknown): numberparseInteger(value: unknown): numberparseFloat(value: unknown): numberparseString(value: unknown): stringparseArray<T>(value: unknown): T[]parseDomainName(url: string): string
Utility Functions
getType<T>(value: T): TgetKeys<T extends Record<string, unknown>>(object: T): Array<keyof T>arrayContainsCommonValue(array1: string[], array2: string[]): booleanisEmptyString(value: unknown): booleanisNullOrUndefined(value: unknown): booleanhasEmptyValues(value: unknown): boolean
Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
License
This project is licensed under the MIT License.
Add Package
deno add jsr:@guard/typebuddy
Import symbol
import * as typebuddy from "@guard/typebuddy";
Import directly with a jsr specifier
import * as typebuddy from "jsr:@guard/typebuddy";
Add Package
pnpm i jsr:@guard/typebuddy
pnpm dlx jsr add @guard/typebuddy
Import symbol
import * as typebuddy from "@guard/typebuddy";
Add Package
yarn add jsr:@guard/typebuddy
yarn dlx jsr add @guard/typebuddy
Import symbol
import * as typebuddy from "@guard/typebuddy";
Add Package
vlt install jsr:@guard/typebuddy
Import symbol
import * as typebuddy from "@guard/typebuddy";
Add Package
npx jsr add @guard/typebuddy
Import symbol
import * as typebuddy from "@guard/typebuddy";
Add Package
bunx jsr add @guard/typebuddy
Import symbol
import * as typebuddy from "@guard/typebuddy";