UNPKG

assertsjs

Version:

ECMA6 Module for Javascript type validations

94 lines (92 loc) 2.96 kB
'use strict'; 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;