About stdlib...
We believe in a future in which the web is a preferred environment for numerical computation. To help realize this future, we've built stdlib. stdlib is a standard library, with an emphasis on numerical and scientific computation, written in JavaScript (and C) for execution in browsers and in Node.js.
The library is fully decomposable, being architected in such a way that you can swap out and mix and match APIs and functionality to cater to your exact preferences and use cases.
When you use stdlib, you can be absolutely certain that you are using the most thorough, rigorous, well-written, studied, documented, tested, measured, and high-quality code out there.
To join us in bringing numerical computing to the web, get started by checking us out on GitHub, and please consider financially supporting stdlib. We greatly appreciate your continued support!
Assert
Assertion utilities.
Installation
npm install @stdlib/assert
Usage
var assert = require( '@stdlib/assert' );
assert
Namespace providing utilities for data type testing and feature detection.
var o = assert;
To validate the built-in JavaScript data types, the namespace includes the following assertion utilities:
For primitive types having corresponding object wrappers, assertion utilities provide isObject
and isPrimitive
methods to test for either objects or primitives, respectively.
var Boolean = require( '@stdlib/boolean/ctor' );
var isBoolean = require( '@stdlib/assert/is-boolean' );
var bool = isBoolean.isObject( new Boolean( false ) );
bool = isBoolean.isObject( false );
bool = isBoolean.isPrimitive( false );
Many of the assertion utilities have corresponding packages that test whether array elements are of the given data type:
Where applicable, similar to the assertion utilities for built-in data types, array assertion utilities provides methods for testing for an array of primitives or objects.
var isStringArray = require( '@stdlib/assert/is-string-array' );
var bool = isStringArray( [ 'hello', 'world' ] );
bool = isStringArray.primitives( [ 'hello', 'world' ] );
bool = isStringArray.objects( [ 'hello', 'world' ] );
bool = isStringArray.objects( [ new String( 'hello' ), new String( 'world' ) ] );
The namespace also contains utilities to test for numbers within a certain range or for numbers satisfying a particular "type":
The namespace provides utilities for validating typed arrays:
The namespace includes utilities for validating ndarray
s (n-dimensional arrays).
The namespace includes utilities for validating complex numbers and arrays of complex numbers:
The namespace includes utilities for validating other special arrays or buffers:
To test for error objects, the namespace includes the following utilities:
The namespace exposes the following constants concerning the current running process:
IS_BIG_ENDIAN
: check if an environment is big endian.IS_BROWSER
: check if the runtime is a web browser.IS_DARWIN
: boolean indicating if the current process is running on Darwin.IS_DOCKER
: check if the process is running in a Docker container.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_ELECTRON
: check if the runtime is Electron.IS_LITTLE_ENDIAN
: check if an environment is little endian.IS_MOBILE
: check if the current environment is a mobile device.IS_NODE
: check if the runtime is Node.js.IS_TOUCH_DEVICE
: check if the current environment is a touch device.IS_WEB_WORKER
: check if the runtime is a web worker.IS_WINDOWS
: boolean indicating if the current process is running on Windows.
To test whether a runtime environment supports certain features, the namespace includes the following utilities:
The remaining namespace utilities are as follows:
contains( val, searchValue[, position] )
: test if an array-like value contains a search value.deepEqual( a, b )
: test for deep equality between two values.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.hasUTF16SurrogatePairAt( string, position )
: test if a position in a string marks the start of a UTF-16 surrogate pair.instanceOf( value, constructor )
: test whether a value has in its prototype chain a specified constructor as a prototype property.isAbsoluteHttpURI( value )
: test whether a value is an absolute HTTP(S) URI.isAbsolutePath( value )
: test if a value is an absolute path.isAbsoluteURI( value )
: test whether a value is an absolute URI.isAccessorPropertyIn( value, property )
: test if an object's own or inherited property has an accessor descriptor.isAccessorProperty( value, property )
: test if an object's own property has an accessor descriptor.isAlphagram( value )
: test if a value is an alphagram.isAlphaNumeric( value )
: test whether a string contains only alphanumeric characters.isAnagram( str, value )
: test if a value is an anagram.isArguments( value )
: test if a value is an arguments object.isArrowFunction( value )
: test if a value is an arrow function
.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.isBigInt( value )
: test if a value is a BigInt.isBinaryString( value )
: test if a value is a binary string.isBlankString( value )
: test if a value is a blank string.isBoxedPrimitive( value )
: test if a value is a JavaScript boxed primitive.isBuffer( value )
: test if a value is a Buffer object.isCamelcase( value )
: test if a value is a camelcase string.isCapitalized( value )
: test if a value is a string having an uppercase first character.isCircular( value )
: test if a value is a plain object containing a circular reference.isCircular( value )
: test if an object-like value contains a circular reference.isClass( value )
: test if a value is a class.isCollection( value )
: test if a value is a collection.isComposite( value )
: test if a value is a composite number.isConfigurablePropertyIn( value, property )
: test if an object's own or inherited property is configurable.isConfigurableProperty( value, property )
: test if an object's own property is configurable.isConstantcase( value )
: test if a value is a constantcase string.isCurrentYear( value )
: test if a value is the current year.isDataPropertyIn( value, property )
: test if an object's own or inherited property has a data descriptor.isDataProperty( value, property )
: test if an object's own property has a data descriptor.isDataView( value )
: test if a value is a DataView.isDigitString( value )
: test whether a string contains only numeric digits.isDomainName( value )
: test if a value is a domain name.isDurationString( value )
: test if a value is a duration string.isEmailAddress( value )
: test if a value is an email address.isEmptyCollection( value )
: test if a value is an empty collection.isEmptyObject( value )
: test if a value is an empty object.isEmptyString( value )
: test if a value is an empty string.isEnumerablePropertyIn( value, property )
: test if an object's own or inherited property is enumerable.isEnumerableProperty( value, property )
: test if an object's own 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.isGeneratorObjectLike( value )
: test if a value is generator
object-like.isGeneratorObject( value )
: test if a value is a generator
object.isgzipBuffer( value )
: test if a value is a gzip buffer.isHexString( value )
: test whether a string contains only hexadecimal digits.isInfinite( value )
: test if a value is an infinite number.isInheritedProperty( value, property )
: test if an object has an inherited property.isIterableLike( value )
: test if a value is iterable
-like.isIteratorLike( value )
: test if a value is iterator
-like.isJSON( value )
: test if a value is a parseable JSON string.isKebabcase( value )
: test if a value is a string in kebab case.isLeapYear( [value] )
: test if a value corresponds to a leap year in the Gregorian calendar.isLocalhost( value )
: test whether a value is a localhost hostname.isLowercase( value )
: test if a value is a lowercase string.isMethodIn( value, property )
: test if an object has a specified method name, either own or inherited.isMethod( value, property )
: test if an object has a specified method name.isMultiSlice( value )
: test if a value is a MultiSlice
.isNamedTypedTupleLike( value )
: test if a value is named typed tuple-like.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.isNonConfigurablePropertyIn( value, property )
: test if an object's own or inherited property is non-configurable.isNonConfigurableProperty( value, property )
: test if an object's own property is non-configurable.isNonEnumerablePropertyIn( value, property )
: test if an object's own or inherited property is non-enumerable.isNonEnumerableProperty( value, property )
: test if an object's own property is non-enumerable.isObjectLike( value )
: test if a value is object-like.isOdd( value )
: test if a value is an odd number.isPascalcase( value )
: test if a value is a string in Pascal case.isPlainObject( value )
: test if a value is a plain object.isPositiveZero( value )
: test if a value is a number equal to positive zero.isPrime( value )
: test if a value is a prime number.isPrimitive( value )
: test if a value is a JavaScript primitive.isPRNGLike( value )
: test if a value is PRNG-like.isProbability( value )
: test if a value is a probability.isPropertyKey( value )
: test whether a value is a property key.isPrototypeOf( obj, prototype )
: test if an object's prototype chain contains a provided prototype.isReadOnlyPropertyIn( value, property )
: test if an object's own or inherited property is read-only.isReadOnlyProperty( value, property )
: test if an object's own property is read-only.isReadWritePropertyIn( value, property )
: test if an object's own or inherited property is readable and writable.isReadWriteProperty( value, property )
: test if an object's own property is readable and writable.isReadablePropertyIn( value, property )
: test if an object's own or inherited property is readable.isReadableProperty( value, property )
: test if an object's own property is readable.isRegExpString( value )
: test if a value is a regular expression string.isRelativePath( value )
: test if a value is a relative path.isRelativeURI( value )
: test whether a value is a relative URI.isSameComplex128( v1, v2 )
: test if two arguments are both double-precision complex floating-point numbers and have the same value.isSameComplex64( v1, v2 )
: test if two arguments are both single-precision complex floating-point numbers and have the same value.isSameNativeClass( a, b )
: test if two arguments have the same native class.isSameType( a, b )
: test if two arguments have the same type.isSameValueZero( a, b )
: test if two arguments are the same value.isSameValue( a, b )
: test if two arguments are the same value.isSemVer( value )
: test if a value is a semantic version string.isSlice( value )
: test if a value is a Slice
.isSnakecase( value )
: test if a value is a string in snake case.isStartcase( value )
: test if a value is a startcase string.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.isWritablePropertyIn( value, property )
: test if an object's own or inherited property is writable.isWritableProperty( value, property )
: test if an object's own property is writable.isWriteOnlyPropertyIn( value, property )
: test if an object's own or inherited property is write-only.isWriteOnlyProperty( value, property )
: test if an object's own property is write-only.tools
: assertion utility tools.
Examples
var objectKeys = require( '@stdlib/utils/keys' );
var assert = require( '@stdlib/assert' );
console.log( objectKeys( assert ) );
Notice
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
License
See LICENSE.
Copyright
Copyright © 2016-2024. The Stdlib Authors.