Standard library assertion utilities.
var assert = require( '@stdlib/assert' );
Standard library assertion utilities. The namespace contains a comprehensive suite of assertion functions, ranging from packages to test for various data types to utilities testing for system support of certain JavaScript features.
var o = assert;
// returns {...}
To validate the native JavaScript data types, the following functions can be used:
isArray( value )
: test if a value is an array.isBoolean( value )
: test if a value is a boolean.isDateObject( value )
: test if a value is a Date object.isFunction( value )
: test if a value is a function.isnan( value )
: test if a value is NaN.isNull( value )
: test if a value is null.isNumber( value )
: test if a value is a number.isObject( value )
: test if a value is an object.isRegExp( value )
: test if a value is a regular expression.isString( value )
: test if a value is a string.isSymbol( value )
: test if a value is a symbol.isUndefined( value )
: test if a value is undefined.
For types that exist both as an object type and a primitive, the respective function exposes isObject
and isPrimitive
methods to test for the either of them.
var isBoolean = require( '@stdlib/assert/is-boolean' );
var bool = isBoolean.isObject( new Boolean( false ) );
// returns true
bool = isBoolean.isObject( false );
// returns false
bool = isBoolean.isPrimitive( false );
// returns true
Most of the assertion utilities have corresponding packages that test whether all elements of an array are of the given data type:
isArrayArray( value )
: test if a value is an array of arrays.isBooleanArray( value )
: test if a value is an array-like object of booleans.isFunctionArray( value )
: test if a value is an array-like object containing only functions.isNaNArray( value )
: test if a value is an array-like object containing only NaN values.isNullArray( value )
: test if a value is an array-like object containing only null values.isNumberArray( value )
: test if a value is an array-like object of numbers.isObjectArray( value )
: test if a value is an array-like object containing only objects.isStringArray( value )
: test if a value is an array of strings.isSymbolArray( value )
: test if a value is an array-like object containing only symbols.
Similar to the functions testing for an individual element, whenever applicable above functions have methods for validating an array of primitives or objects.
var isStringArray = require( '@stdlib/assert/is-string-array' );
var bool = isStringArray( [ 'hello', 'world' ] );
// returns true
bool = isStringArray.primitives( [ 'hello', 'world' ] );
// returns true
bool = isStringArray.objects( [ 'hello', 'world' ] );
// returns false
bool = isStringArray.objects( [ new String( 'hello' ), new String( 'world' ) ] );
// returns true
The namespace also contains functions to test for numbers in a certain range or arrays of such numbers:
isInteger( value )
: test if a value is a number having an integer value.isIntegerArray( value )
: test if a value is an array-like object containing only integers.isNegativeInteger( value )
: test if a value is a number having a negative integer value.isNegativeIntegerArray( value )
: test if a value is an array-like object containing only negative integers.isNegativeNumber( value )
: test if a value is a number having a negative value.isNegativeNumberArray( value )
: test if a value is an array-like object containing only negative numbers.isNonNegativeInteger( value )
: test if a value is a number having a nonnegative integer value.isNonNegativeIntegerArray( value )
: test if a value is an array-like object containing only nonnegative integers.isNonNegativeNumber( value )
: test if a value is a number having a nonnegative value.isNonNegativeNumberArray( value )
: test if a value is an array-like object containing only nonnegative numbers.isNonPositiveInteger( value )
: test if a value is a number having a nonpositive integer value.isNonPositiveIntegerArray( value )
: test if a value is an array-like object containing only nonpositive integers.isNonPositiveNumber( value )
: test if a value is a number having a nonpositive value.isNonPositiveNumberArray( value )
: test if a value is an array-like object containing only nonpositive numbers.isPositiveInteger( value )
: test if a value is a number having a positive integer value.isPositiveIntegerArray( value )
: test if a value is an array-like object containing only positive integers.isPositiveNumber( value )
: test if a value is a number having a positive value.isPositiveNumberArray( value )
: test if a value is an array-like object containing only positive numbers.isSafeInteger( value )
: test if a value is a number having a safe integer value.isSafeIntegerArray( value )
: test if a value is an array-like object containing only safe integers.
The namespace exposes various methods for validating typed arrays:
isFloat32Array( value )
: test if a value is a Float32Array.isFloat64Array( value )
: test if a value is a Float64Array.isInt16Array( value )
: test if a value is an Int16Array.isInt32Array( value )
: test if a value is an Int32Array.isInt8Array( value )
: test if a value is an Int8Array.isUint16Array( value )
: test if a value is a Uint16Array.isUint32Array( value )
: test if a value is a Uint32Array.isUint8Array( value )
: test if a value is a Uint8Array.isUint8ClampedArray( value )
: test if a value is a Uint8ClampedArray.
It also contains functions for validating ndarray
s of varying dimensions.
isMatrixLike( value )
: test if a value is 2-dimensional ndarray-like object.isndarrayLike( value )
: test if a value is ndarray-like.isVectorLike( value )
: test if a value is a 1-dimensional ndarray-like object.
In addition, the namespace contains functions validating other special arrays or buffers:
isArrayLength( value )
: test if a value is a valid array length.isArrayLike( value )
: test if a value is array-like.isArrayLikeObject( value )
: test if a value is an array-like object.isArrayBuffer( value )
: test if a value is an ArrayBuffer.isBetweenArray( value, a, b[, left, right] )
: test if a value is an array-like object where every element is between two values.isEmptyArray( value )
: test if a value is an empty array.isFalsyArray( value )
: test if a value is an array-like object containing only falsy values.isFiniteArray( value )
: test if a value is an array-like object containing only finite numbers.isNumericArray( value )
: test if a value is a numeric array.isPlainObjectArray( value )
: test if a value is an array-like object containing only plain objects.isProbabilityArray( value )
: test if a value is an array-like object containing only probabilities.isSharedArrayBuffer( value )
: test if a value is a SharedArrayBuffer.isTruthyArray( value )
: test if a value is an array-like object containing only truthy values.isTypedArray( value )
: test if a value is a typed array.isTypedArrayLength( value )
: test if a value is a valid typed array length.isTypedArrayLike( value )
: test if a value is typed-array-like.isUnityProbabilityArray( value )
: test if a value is an array of probabilities that sum to one.
To test for error objects, use any of the following functions:
isError( value )
: test if a value is an Error object.isEvalError( value )
: test if a value is an EvalError object.isRangeError( value )
: test if a value is a RangeError object.isReferenceError( value )
: test if a value is a ReferenceError object.isSyntaxError( value )
: test if a value is a SyntaxError object.isTypeError( value )
: test if a value is a TypeError object.isURIError( value )
: test if a value is a URIError object.
The following constants are exposed to indicate the environment the current process is running on:
IS_BROWSER
: check if the runtime is a web browser.IS_DARWIN
: boolean indicating if the current process is running on Darwin.IS_ELECTRON
: check if the runtime is Electron.IS_ELECTRON_MAIN
: check if the runtime is the main Electron process.IS_ELECTRON_RENDERER
: check if the runtime is the Electron renderer process.IS_LITTLE_ENDIAN
: check if an environment is little endian.IS_NODE
: check if the runtime is Node.js.IS_WEB_WORKER
: check if the runtime is a web worker.IS_WINDOWS
: boolean indicating if the current process is running on Windows.
Use the following functions to check whether a runtime environment supports a certain feature:
hasArrayBufferSupport()
: detect nativeArrayBuffer
support.hasAsyncAwaitSupport()
: detect nativeasync
/await
support.hasClassSupport()
: detect nativeclass
support.hasFloat32ArraySupport()
: detect nativeFloat32Array
support.hasFloat64ArraySupport()
: detect nativeFloat64Array
support.hasFunctionNameSupport()
: detect native functionname
support.hasGeneratorSupport()
: detect nativegenerator function
support.hasInt16ArraySupport()
: detect nativeInt16Array
support.hasInt32ArraySupport()
: detect nativeInt32Array
support.hasInt8ArraySupport()
: detect nativeInt8Array
support.hasMapSupport()
: detect nativeMap
support.hasNodeBufferSupport()
: detect nativeBuffer
support.hasProxySupport()
: detect nativeProxy
support.hasSetSupport()
: detect nativeSet
support.hasSharedArrayBufferSupport()
: detect nativeSharedArrayBuffer
support.hasSymbolSupport()
: detect nativeSymbol
support.hasSymbolSupport()
: detect nativeSymbol.toStringTag
support.hasUint16ArraySupport()
: detect nativeUint16Array
support.hasUint32ArraySupport()
: detect nativeUint32Array
support.hasUint8ArraySupport()
: detect nativeUint8Array
support.hasUint8ClampedArraySupport()
: detect nativeUint8ClampedArray
support.hasWebAssemblySupport()
: detect native WebAssembly support.hasWeakMapSupport()
: detect nativeWeakMap
support.hasWeakSetSupport()
: detect nativeWeakSet
support.
The remaining functions of the assert
namespace are:
contains( val, searchValue[, position] )
: test if an array-like value contains a search value.deepHasOwnProp( value, path[, options] )
: test whether an object contains a nested key path.deepHasProp( value, path[, options] )
: test whether an object contains a nested key path, either own or inherited.hasOwnProp( value, property )
: test if an object has a specified property.hasProp( value, property )
: test if an object has a specified property, either own or inherited.hasPrototype( obj, prototype )
: test if an object's prototype chain contains a provided prototype.instanceOf( value, constructor )
: test whether a value has in its prototype chain a specified constructor as a prototype property.isAbsolutePath( value )
: test if a value is an absolute path.isAlphagram( value )
: test if a value is an alphagram.isAnagram( str, value )
: test if a value is an anagram.isArguments( value )
: test if a value is an arguments object.isASCII( value )
: test whether a character belongs to the ASCII character set and whether this is true for all characters in a provided string.isBetween( value, a, b[, left, right] )
: test if a value is between two values.isBinaryString( value )
: test if a value is a binary string.isBuffer( value )
: test if a value is a Buffer object.isCapitalized( value )
: test if a value is a string having an uppercase first character.isCollection( value )
: test if a value is a collection.isComplex( value )
: test if a value is a 64-bit or 128-bit complex number.isComplex128( value )
: test if a value is a 128-bit complex number.isComplex64( value )
: test if a value is a 64-bit complex number.isDigitString( value )
: test whether a string contains only numeric digits.isEmailAddress( value )
: test if a value is an email address.isEmptyObject( value )
: test if a value is an empty object.isEmptyString( value )
: test if a value is an empty string.isEnumerableProperty( value, property )
: test if an object property is enumerable.isEven( value )
: test if a value is an even number.isFalsy( value )
: test if a value is falsy.isFinite( value )
: test if a value is a finite number.isHexString( value )
: test whether a string contains only hexadecimal digits.isInfinite( value )
: test if a value is an infinite number.isJSON( value )
: test if a value is a parseable JSON string.isLeapYear( [value] )
: test if a value corresponds to a leap year in the Gregorian calendar.isLowercase( value )
: test if a value is a lowercase string.isNativeFunction( value )
: test if a value is a native function.isNegativeZero( value )
: test if a value is a number equal to negative zero.isNodeBuiltin( value )
: test whether a string matches a Node.js built-in module name.isNodeDuplexStreamLike( value )
: test if a value is Node duplex stream-like.isNodeReadableStreamLike( value )
: test if a value is Node readable stream-like.isNodeREPL()
: check if running in a Node.js REPL environment.isNodeStreamLike( value )
: test if a value is Node stream-like.isNodeTransformStreamLike( value )
: test if a value is Node transform stream-like.isNodeWritableStreamLike( value )
: test if a value is Node writable stream-like.isObjectLike( value )
: test if a value is object-like.isOdd( value )
: test if a value is an odd number.isPlainObject( value )
: test if a value is a plain object.isPositiveZero( value )
: test if a value is a number equal to positive zero.isPrimitive( value )
: test if a value is a JavaScript primitive.isProbability( value )
: test if a value is a probability.isRegExpString( value )
: test if a value is a regular expression string.isRelativePath( value )
: test if a value is a relative path.isSameValue( a, b )
: test if two arguments are the same value.isStrictEqual( a, b )
: test if two arguments are strictly equal.isTruthy( value )
: test if a value is truthy.isUNCPath( value )
: test if a value is a UNC path.isUndefinedOrNull( value )
: test if a value is undefined or null.isUppercase( value )
: test if a value is an uppercase string.isURI( value )
: test if a value is a URI.isWhitespace( value )
: test whether a string contains only white space characters.
var getKeys = require( 'object-keys' ).shim();
var assert = require( '@stdlib/assert' );
console.log( getKeys( assert ) );