/** * @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;