103 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @filedescription Validation Strategy
 | |
|  */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Class
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| /**
 | |
|  * Container class for several different validation strategies.
 | |
|  */
 | |
| class ValidationStrategy {
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is an array.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static array(value) {
 | |
|         if (!Array.isArray(value)) {
 | |
|             throw new TypeError("Expected an array.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is a boolean.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static boolean(value) {
 | |
|         if (typeof value !== "boolean") {
 | |
|             throw new TypeError("Expected a Boolean.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is a number.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static number(value) {
 | |
|         if (typeof value !== "number") {
 | |
|             throw new TypeError("Expected a number.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is a object.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static object(value) {
 | |
|         if (!value || typeof value !== "object") {
 | |
|             throw new TypeError("Expected an object.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is a object or null.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static "object?"(value) {
 | |
|         if (typeof value !== "object") {
 | |
|             throw new TypeError("Expected an object or null.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is a string.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static string(value) {
 | |
|         if (typeof value !== "string") {
 | |
|             throw new TypeError("Expected a string.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Validates that a value is a non-empty string.
 | |
|      * @param {*} value The value to validate.
 | |
|      * @returns {void}
 | |
|      * @throws {TypeError} If the value is invalid. 
 | |
|      */
 | |
|     static "string!"(value) {
 | |
|         if (typeof value !== "string" || value.length === 0) {
 | |
|             throw new TypeError("Expected a non-empty string.");
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| exports.ValidationStrategy = ValidationStrategy;
 |