@kitiumai/utils-ts
Version:
Comprehensive TypeScript utilities for KitiumAI projects
218 lines • 4.54 kB
JavaScript
/**
* Validation and type guard utilities
*/
/**
* Check if value is a string
*
* @param value - The value to check
* @returns True if value is a string
*
* @example
* ```ts
* isString('hello') // true
* isString(123) // false
* ```
*/
export function isString(value) {
return typeof value === 'string';
}
/**
* Check if value is a number (and not NaN)
*
* @param value - The value to check
* @returns True if value is a number
*
* @example
* ```ts
* isNumber(123) // true
* isNumber(NaN) // false
* isNumber('123') // false
* ```
*/
export function isNumber(value) {
return typeof value === 'number' && !Number.isNaN(value);
}
/**
* Check if value is a boolean
*
* @param value - The value to check
* @returns True if value is a boolean
*
* @example
* ```ts
* isBoolean(true) // true
* isBoolean(false) // true
* isBoolean(0) // false
* ```
*/
export function isBoolean(value) {
return typeof value === 'boolean';
}
/**
* Check if value is an array
*
* @template T - The type of array elements
* @param value - The value to check
* @returns True if value is an array
*
* @example
* ```ts
* isArray([1, 2, 3]) // true
* isArray('hello') // false
* ```
*/
export function isArray(value) {
return Array.isArray(value);
}
/**
* Check if value is a plain object (not array, not null)
*
* @param value - The value to check
* @returns True if value is a plain object
*
* @example
* ```ts
* isObject({}) // true
* isObject([]) // false
* isObject(null) // false
* ```
*/
export function isObject(value) {
return typeof value === 'object' && value !== null && !Array.isArray(value);
}
/**
* Check if value is a function
*
* @param value - The value to check
* @returns True if value is a function
*
* @example
* ```ts
* isFunction(() => {}) // true
* isFunction('hello') // false
* ```
*/
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
export function isFunction(value) {
return typeof value === 'function';
}
/**
* Check if value is a Date instance
*
* @param value - The value to check
* @returns True if value is a Date
*
* @example
* ```ts
* isDate(new Date()) // true
* isDate('2024-01-01') // false
* ```
*/
export function isDate(value) {
return value instanceof Date;
}
/**
* Check if value is a RegExp instance
*
* @param value - The value to check
* @returns True if value is a RegExp
*
* @example
* ```ts
* isRegExp(/test/) // true
* isRegExp('test') // false
* ```
*/
export function isRegExp(value) {
return value instanceof RegExp;
}
/**
* Check if value is an Error instance
*
* @param value - The value to check
* @returns True if value is an Error
*
* @example
* ```ts
* isError(new Error('test')) // true
* isError('error') // false
* ```
*/
export function isError(value) {
return value instanceof Error;
}
/**
* Check if value is null or undefined
*
* @param value - The value to check
* @returns True if value is null or undefined
*
* @example
* ```ts
* isNil(null) // true
* isNil(undefined) // true
* isNil(0) // false
* ```
*/
export function isNil(value) {
return value === null || value === undefined;
}
/**
* Check if value is empty (null, undefined, empty array, empty string, or empty object)
*
* @param value - The value to check
* @returns True if value is empty
*
* @example
* ```ts
* isEmpty(null) // true
* isEmpty([]) // true
* isEmpty('') // true
* isEmpty({}) // true
* isEmpty([1]) // false
* ```
*/
export function isEmpty(value) {
if (value === null || value === undefined) {
return true;
}
if (Array.isArray(value) || typeof value === 'string') {
return value.length === 0;
}
if (typeof value === 'object') {
return Object.keys(value).length === 0;
}
return false;
}
/**
* Check if value is a finite number
*
* @param value - The value to check
* @returns True if value is a finite number
*
* @example
* ```ts
* isFinite(123) // true
* isFinite(Infinity) // false
* isFinite(NaN) // false
* ```
*/
export function isFinite(value) {
return typeof value === 'number' && Number.isFinite(value);
}
/**
* Check if value is an integer
*
* @param value - The value to check
* @returns True if value is an integer
*
* @example
* ```ts
* isInteger(123) // true
* isInteger(123.5) // false
* ```
*/
export function isInteger(value) {
return typeof value === 'number' && Number.isInteger(value);
}
//# sourceMappingURL=validation.js.map