lib/utils.js
function ThrowType(name, type, value, actual) {
		console.log('THIS:', this)
		let THS = this, pfx = (!!THS ? THS.Name||THS.Scheme : '');
		throw new TypeError(
			`${pfx} property, [${name}], must be one of the following, <${
				type.join('> or <').toTitleCase()
			}>. Got <${actual.toTitleCase()}> (${value}) instead.`
		);
	}
function ThrowType(name, type, value, actual) {
		console.log('THIS:', this)
		let THS = this, pfx = (!!THS ? THS.Name||THS.Scheme : '');
		throw new TypeError(
			`${pfx} property, [${name}], must be one of the following, <${
				type.join('> or <').toTitleCase()
			}>. Got <${actual.toTitleCase()}> (${value}) instead.`
		);
	}
function ThrowType ( name , type , value , actual ) { console . log ( 'THIS:' , this ) let THS = this , pfx = ( ! ! THS ? THS . Name || THS . Scheme : '' ) ; throw new TypeError ( ` ${ pfx } ${ name } ${ type . join ( '> or <' ) . toTitleCase ( ) } ${ actual . toTitleCase ( ) } ${ value } ` ) ; }
Throws a `TypeError` when a `type` requirement is not met

@param {String} name The `name` of the Property
@param {String} type The `type` the Property should have been
@param {any}    value The failed `value`
@param {String} actual The `type` the Value actual is
@private
Throws a TypeError when a type requirement is not met