assertsjs
Version:
ECMA6 Module for Javascript type validations
94 lines (92 loc) • 2.96 kB
JavaScript
;
class Asserts {
/**
* @param {string} errorMessageArgument
*/
static doAssertFailure(errorMessageArgument) {
const errorMessage = errorMessageArgument || 'Assertion error';
throw {
message: errorMessage
}
}
/**
* @param {boolean} value
* @param {string} errorMessageArgument
*/
static assert(value, errorMessageArgument) {
if (value) {
return value;
} else {
this.doAssertFailure(errorMessageArgument);
}
}
/**
* @param {object} value
* @param {string} errorMessageArgument
*/
static assertObject(value, errorMessageArgument) {
if (typeof value == 'object') {
return value;
} else {
const errorMessage = errorMessageArgument || 'Assertion error: object must be provided';
this.doAssertFailure(errorMessage);
}
}
/**
* @param {string} value
* @param {string} errorMessageArgument
*/
static assertString(value, errorMessageArgument) {
if (typeof value == 'string') {
return value;
} else {
const errorMessage = errorMessageArgument || 'Assertion error: string must be provided';
this.doAssertFailure(errorMessage);
}
}
/**
* @param {function} value
* @param {string} errorMessageArgument
*/
static assertFunction(value, errorMessageArgument) {
if (typeof value == 'function') {
return value;
} else {
const errorMessage = errorMessageArgument || 'Assertion error: function must be provided';
this.doAssertFailure(errorMessage);
}
}
/**
* @param {boolean} value
* @param {string} errorMessageArgument
*/
static assertBoolean(value, errorMessageArgument) {
if (typeof value == 'boolean') {
return value;
} else {
const errorMessage = errorMessageArgument || 'Assertion error: boolean must be provided';
this.doAssertFailure(errorMessage);
}
}
/**
* @param {*} value His typeof result should equal type argument
* @param {string} type
* @param {string} errorMessageArgument
*/
static assertType(value, type, errorMessageArgument) {
this.assertString(type, 'Assertion error: Type must be an string');
if (typeof value === type) {
return value;
} else {
const errorMessage = errorMessageArgument || 'Assertion error: ' + type + ' must be provided';
this.doAssertFailure(errorMessage);
}
}
/**
* @param {string} errorMessageArgument
*/
static fail(errorMessageArgument) {
this.doAssertFailure(errorMessageArgument);
}
}
module.exports = Asserts;