
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@megaorm/test
Advanced tools
This package is designed to assist developers in type checking and validation for various JavaScript values. It provides a collection of type-checking functions, and utilities to validate your values.
This package is designed to assist developers in type checking and validation for various JavaScript values. It provides a collection of type-checking functions, and utilities to validate your values.
Type functions allow you to validate the type of a value. They return a boolean indicating whether the value matches the expected type.
isSet(value: any): boolean Checks if a value is an instance of Set.
console.log(isSet(new Set())); // true
console.log(isSet([])); // false
isMap(value: any): boolean Checks if a value is an instance of Map.
console.log(isMap(new Map())); // true
console.log(isMap({})); // false
isWeakSet(value: any): boolean Checks if a value is an instance of WeakSet.
console.log(isWeakSet(new WeakSet())); // true
console.log(isWeakSet(new Set())); // false
isWeakMap(value: any): boolean Checks if a value is an instance of WeakMap.
console.log(isWeakMap(new WeakMap())); // true
console.log(isWeakMap(new Map())); // false
isArr(value: any): boolean Checks if a value is an array.
console.log(isArr([])); // true
console.log(isArr({})); // false
isObj(value: any): boolean Checks if a value is a non-null object (excluding arrays).
console.log(isObj({})); // true
console.log(isObj([])); // false
console.log(isObj(null)); // false
isNum(value: any): boolean Checks if a value is a number.
console.log(isNum(42)); // true
console.log(isNum('42')); // false
isTxt(value: any): boolean Checks if a value is a string.
console.log(isTxt('hello')); // true
console.log(isTxt(42)); // false
isStr(value: any): boolean Alias for isTxt. Checks if a value is a string.
console.log(isStr('hello')); // true
console.log(isStr(42)); // false
isBool(value: any): boolean Checks if a value is a boolean.
console.log(isBool(true)); // true
console.log(isBool('true')); // false
isFunc(value: any): boolean Checks if a value is a function.
console.log(isFunc(() => {})); // true
console.log(isFunc({})); // false
isSymbol(value: any): boolean Checks if a value is a symbol.
console.log(isSymbol(Symbol())); // true
console.log(isSymbol('symbol')); // false
isInt(value: any): boolean Checks if a value is an integer.
console.log(isInt(42)); // true
console.log(isInt(42.42)); // false
isFloat(value: any): boolean Checks if a value is a floating-point number.
console.log(isFloat(42.42)); // true
console.log(isFloat(42)); // false
isNan(value: any): boolean Checks if a value is NaN (Not a Number).
console.log(isNan(NaN)); // true
console.log(isNan(42)); // false
isNull(value: any): boolean Checks if a value is null.
console.log(isNull(null)); // true
console.log(isNull(undefined)); // false
isUndefined(value: any): boolean Checks if a value is undefined.
console.log(isUndefined(undefined)); // true
console.log(isUndefined(null)); // false
isDefined(value: any): boolean Checks if a value is defined (not undefined).
console.log(isDefined(42)); // true
console.log(isDefined(undefined)); // false
isDefinedStrict(value: any): boolean Strictly checks if a value is defined (not null, undefined, or NaN).
console.log(isDefinedStrict(42)); // true
console.log(isDefinedStrict(null)); // false
console.log(isDefinedStrict(NaN)); // false
console.log(isDefinedStrict(undefined)); // false
isInf(value: any): boolean Checks if a value is Infinity.
console.log(isInf(Infinity)); // true
console.log(isInf(42)); // false
isFinite(value: any): boolean Checks if a value is a finite number.
console.log(isFinite(42)); // true
console.log(isFinite(Infinity)); // false
isTruthy(value: any): boolean Checks if a value is truthy (not falsy).
console.log(isTruthy(1)); // true
console.log(isTruthy(0)); // false
isFalsy(value: any): boolean Checks if a value is falsy (false, 0, "", null, undefined, or NaN).
console.log(isFalsy(0)); // true
console.log(isFalsy(1)); // false
isFalse(value: any): boolean Checks if a value is strictly false.
console.log(isFalse(false)); // true
console.log(isFalse(true)); // false
isTrue(value: any): boolean Checks if a value is strictly true.
console.log(isTrue(true)); // true
console.log(isTrue(false)); // false
isIterable(value: any): boolean Checks if a value is iterable (has an Symbol.iterator property).
console.log(isIterable([1, 2, 3])); // true
console.log(isIterable(42)); // false
isEven(value: any): boolean Checks if a number is even.
console.log(isEven(42)); // true
console.log(isEven(43)); // false
isOdd(value: any): boolean Checks if a number is odd.
console.log(isOdd(43)); // true
console.log(isOdd(42)); // false
isError(value: any): boolean Checks if a value is an instance of the Error object.
console.log(isError(new Error())); // true
console.log(isError('Error')); // false
isChildOf(child: any, parent: any): boolean Checks if an object is a child of the given class (instanceof).
class Parent {}
const child = new Parent();
console.log(isChildOf(child, Parent)); // true
isClass(value: any): boolean Checks if a value is a class (constructor function).
console.log(isClass(class MyClass {})); // true
console.log(isClass(function myFunc() {})); // false
isSubclass(child: any, parent: any): boolean Checks if a class is a subclass of another class.
class Parent {}
class Child extends Parent {}
console.log(isSubclass(Child, Parent)); // true
isDate(value: any): boolean Checks if a value is a valid Date object.
console.log(isDate(new Date())); // true
console.log(isDate('2021-01-01')); // false
isRegex(value: any): boolean Checks if a value is a valid RegExp (Regular Expression).
console.log(isRegex(/abc/)); // true
console.log(isRegex('abc')); // false
isPromise(value: any): boolean Checks if a value is a Promise.
console.log(isPromise(Promise.resolve())); // true
console.log(isPromise(function () {})); // false
Pattern functions allow you to validate whether a value follows a specific pattern.
isCamelCase(value: any): boolean Checks if a string is in camelCase format.
console.log(isCamelCase('camelCase')); // true
console.log(isCamelCase('snake_case')); // false
isPascalCase(value: any): boolean Checks if a string is in PascalCase format.
console.log(isPascalCase('PascalCase')); // true
console.log(isPascalCase('pascalCase')); // false
isSnakeCase(value: any): boolean Checks if a string is in snake_case format.
console.log(isSnakeCase('snake_case')); // true
console.log(isSnakeCase('snakeCase')); // false
iskababCase(value: any): boolean Checks if a string is in kebab-case format.
console.log(iskababCase('kebab-case')); // true
console.log(iskababCase('kebabCase')); // false
isIso(value: any): boolean Checks if a string is in ISO 8601 format (e.g., "2024-11-28T12:30:00.000Z").
console.log(isIso('2024-11-28T12:30:00.000Z')); // true
console.log(isIso('2024-11-28')); // false
isDateTime(value: any): boolean Checks if a string is in the datetime format (e.g., "2024-11-28 12:30:00").
console.log(isDateTime('2024-11-28 12:30:00')); // true
console.log(isDateTime('2024-11-28')); // false
isDateStr(date: any): boolean Checks if a string is in the date format (e.g., "2024-11-28").
console.log(isDateStr('2024-11-28')); // true
console.log(isDateStr('2024-11-28 12:30:00')); // false
isTimeStr(date: any): boolean Checks if a string is in the time format (e.g., "12:30:00").
console.log(isTimeStr('12:30:00')); // true
console.log(isTimeStr('12:30')); // false
isPropExp(value: any): boolean Checks if a string is a valid property name (e.g., a valid js variable name).
console.log(isPropExp('myVar')); // true
console.log(isPropExp('123var')); // false
isNumExp(value: any): boolean Checks if a string is a valid number (including integers and floats).
console.log(isNumExp('123')); // true
console.log(isNumExp('123.45')); // true
console.log(isNumExp('abc')); // false
isIntExp(value: any): boolean Checks if a string is a valid integer.
console.log(isIntExp('123')); // true
console.log(isIntExp('123.45')); // false
isFloatExp(value: any): boolean Checks if a string is a valid float (decimal number).
console.log(isFloatExp('123.45')); // true
console.log(isFloatExp('123')); // false
isStrExp(value: any): boolean Checks if a string is a valid string literal (single or double-quoted).
console.log(isStrExp("'hello'")); // true
console.log(isStrExp('"world"')); // true
console.log(isStrExp('hello')); // false
isDotExp(value: any): boolean Checks if a string is a valid dot notation expression for property access.
console.log(isDotExp('object.property')); // true
console.log(isDotExp('object.123property')); // false
isBracketExp(value: any): boolean Checks if a string is a valid bracket notation expression for property access.
console.log(isBracketExp('object["property"]')); // true
console.log(isBracketExp('object["123"]')); // false
isAnyExp(value: any): boolean Checks if a string is a valid combination of dot and bracket notations.
console.log(isAnyExp('object.property[0]')); // true
console.log(isAnyExp('object.property["key"]')); // true
console.log(isAnyExp('object.123property[0]')); // false
Content functions help determine if the content of an object, array, or string matches the expected structure or value.
isFullObj(value: any): boolean Checks if an object is non-empty (has at least one property).
console.log(isFullObj({ key: 'value' })); // true
console.log(isFullObj({})); // false
isFullArr(value: any): boolean Checks if an array is non-empty (has at least one element).
console.log(isFullArr([1, 2, 3])); // true
console.log(isFullArr([])); // false
isFullStr(value: any): boolean Checks if a string is non-empty (contains at least one non-whitespace character).
console.log(isFullStr('Hello')); // true
console.log(isFullStr(' ')); // false
isEmptyObj(value: any): boolean Checks if an object is empty (has no properties).
console.log(isEmptyObj({})); // true
console.log(isEmptyObj({ key: 'value' })); // false
isEmptyArr(value: any): boolean Checks if an array is empty (contains no elements).
console.log(isEmptyArr([])); // true
console.log(isEmptyArr([1])); // false
isEmptyStr(value: any): boolean Checks if a string is empty (contains non-whitespace characters).
console.log(isEmptyStr('')); // true
console.log(isEmptyStr(' ')); // true
console.log(isEmptyStr('sss')); // true
console.log(isEmptyStr('Hello')); // false
isArrOfNum(value: any): boolean Checks if an array is non-empty and contains only numbers.
console.log(isArrOfNum([1, 2, 3.3])); // true
console.log(isArrOfNum([1, 'two', 3.3])); // false
isArrOfInt(value: any): boolean Checks if an array is non-empty and contains only integers.
console.log(isArrOfInt([1, 2, 3])); // true
console.log(isArrOfInt([1, 2.5, 3])); // false
isArrOfFloat(value: any): boolean Checks if an array is non-empty and contains only floating-point numbers.
console.log(isArrOfFloat([1.5, 2.7, 3.2])); // true
console.log(isArrOfFloat([1, 2.5, '3'])); // false
isArrOfStr(value: any): boolean Checks if an array is non-empty and contains only strings.
console.log(isArrOfStr(['hello', 'world'])); // true
console.log(isArrOfStr(['hello', 123])); // false
isArrOfArr(value: any): boolean Checks if an array is non-empty and contains only arrays.
console.log(isArrOfArr([[], []])); // true
console.log(isArrOfArr([[], 'two'])); // false
isArrOfObj(value: any): boolean Checks if an array is non-empty and contains only objects.
console.log(isArrOfObj([{}, {}])); // true
console.log(isArrOfObj([{}, 1])); // false
isArrOfFunc(value: any): boolean Checks if an array is non-empty and contains only functions.
console.log(isArrOfFunc([() => {}, () => {}])); // true
console.log(isArrOfFunc([() => {}, 'string'])); // false
isArrOfBool(value: any): boolean Checks if an array is non-empty and contains only booleans.
console.log(isArrOfBool([true, false, true])); // true
console.log(isArrOfBool([true, 'false'])); // false
isArrOfAny(value: any): boolean Checks if an array is non-empty and allows any type of value (no type restriction).
console.log(isArrOfAny([1, 'string', true])); // true
console.log(isArrOfAny([])); // false
isObjOfNum(value: any): boolean Checks if an object is non-empty and contains only numeric values.
console.log(isObjOfNum({ a: 1, b: 2.2 })); // true
console.log(isObjOfNum({ a: 1, b: 'two' })); // false
isObjOfInt(value: any): boolean Checks if an object is non-empty and contains only integer values.
console.log(isObjOfInt({ a: 1, b: 2 })); // true
console.log(isObjOfInt({ a: 1, b: 2.5 })); // false
isObjOfFloat(value: any): boolean Checks if an object is non-empty and contains only floating-point values.
console.log(isObjOfFloat({ a: 1.1, b: 2.5 })); // true
console.log(isObjOfFloat({ a: 1, b: '2.5' })); // false
isObjOfStr(value: any): boolean Checks if an object is non-empty and contains only string values.
console.log(isObjOfStr({ a: 'apple', b: 'banana' })); // true
console.log(isObjOfStr({ a: 'apple', b: 123 })); // false
isObjOfArr(value: any): boolean Checks if an object is non-empty and contains only arrays as values.
console.log(isObjOfArr({ a: [1, 2], b: [3, 4] })); // true
console.log(isObjOfArr({ a: [1, 2], b: 'string' })); // false
isObjOfObj(value: any): boolean Checks if an object is non-empty and contains only objects as values.
console.log(isObjOfObj({ a: { x: 1 }, b: { y: 2 } })); // true
console.log(isObjOfObj({ a: { x: 1 }, b: 'string' })); // false
isObjOfFunc(value: any): boolean Checks if an object is non-empty and contains only functions as values.
console.log(isObjOfFunc({ a: () => {}, b: () => {} })); // true
console.log(isObjOfFunc({ a: () => {}, b: 'string' })); // false
isObjOfBool(value: any): boolean Checks if an object is non-empty and contains only boolean values.
console.log(isObjOfBool({ a: true, b: false })); // true
console.log(isObjOfBool({ a: true, b: 'false' })); // false
isObjOfAny(value: any): boolean Checks if an object is non-empty and allows any type of value (no type restriction).
console.log(isObjOfAny({ a: 1, b: 'string' })); // true
console.log(isObjOfAny({})); // false
hasProp(object: any, property: any): boolean Checks if an object has a specific property.
console.log(hasProp({ a: 1, b: 2 }, 'a')); // true
console.log(hasProp({ a: 1, b: 2 }, 'c')); // false
hasProps(object: any, ...properties: Array<any>): boolean Checks if an object has all specified properties.
console.log(hasProps({ a: 1, b: 2 }, 'a', 'b')); // true
console.log(hasProps({ a: 1, b: 2 }, 'a', 'c')); // false
hasIndex(target: any, index: any): boolean Checks if an index is within the range of a target (array, string, or object).
console.log(hasIndex([1, 2, 3], 1)); // true
console.log(hasIndex([1, 2, 3], 3)); // false
console.log(hasIndex('hello', 1)); // true
console.log(hasIndex('hello', 5)); // false
hasLength(target: any, length: any): boolean Checks if the length of a target (array, string, or object) matches a specified length.
console.log(hasLength([1, 2, 3], 3)); // true
console.log(hasLength([1, 2, 3], 2)); // false
console.log(hasLength('hello', 5)); // true
console.log(hasLength('hello', 4)); // false
console.log(hasLength({ a: 1, b: 2 }, 2)); // true
console.log(hasLength({ a: 1, b: 2 }, 1)); // false
hasFlag(regex: any, flag: any): boolean Checks if a regex has a specific flag.
console.log(hasFlag(/abc/i, 'i')); // true
console.log(hasFlag(/abc/i, 'g')); // false
hasKey(object: any, key: any): boolean Checks if an object has a specific key (property name).
console.log(hasKey({ a: 1, b: 2 }, 'a')); // true
console.log(hasKey({ a: 1, b: 2 }, 'c')); // false
hasKeys(object: any, ...keys: Array<any>): boolean Checks if an object contains all of the specified keys (property names).
console.log(hasKeys({ a: 1, b: 2 }, 'a', 'b')); // true
console.log(hasKeys({ a: 1, b: 2 }, 'a', 'c')); // false
console.log(hasKeys({ a: 1, b: 2, c: 3 }, 'a', 'b')); // true
hasValue(target: any, value: any): boolean Checks if an (object|array|string) has a specific value.
console.log(hasValue({ a: 1, b: 2 }, 2)); // true
console.log(hasValue([1, 2, 3], 2)); // true
console.log(hasValue('hello world', 'world')); // true
console.log(hasValue({ a: 1, b: 2 }, 3)); // false
hasValues(target: any, ...values: Array<any>): boolean Checks if an (object|array|string) contains all of the specified values.
console.log(hasValues({ a: 1, b: 2 }, 1, 2)); // true
console.log(hasValues([1, 2, 3], 1, 3)); // true
console.log(hasValues('hello world', 'hello', 'world')); // true
console.log(hasValues(['hello', 'foo'], 'hello', 'bar')); // false
FAQs
This package is designed to assist developers in type checking and validation for various JavaScript values. It provides a collection of type-checking functions, and utilities to validate your values.
We found that @megaorm/test demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.