fenextjs-validator
Advanced tools
Comparing version 2.0.0 to 2.0.1
import { ErrorFenextjs } from "fenextjs-error/cjs/Fenextjs"; | ||
import { ErrorCode } from "fenextjs-interface"; | ||
/** | ||
@@ -17,3 +18,68 @@ * Interfaz que define las propiedades del constructor de la clase FenextjsValidatorClass. | ||
export declare class FenextjsValidatorClass<T = any> { | ||
#private; | ||
/** Propiedad privada que almacena name del validador. */ | ||
private name?; | ||
/** Propiedad privada que almacena la clase superior. */ | ||
private parent?; | ||
/** Propiedad privada que almacena los datos a validar. */ | ||
private data; | ||
/** Bandera que indica si se debe aplicar la validación "isEqual". */ | ||
private equal; | ||
/** Valor con el que se compararán los datos en la validación "isEqual". */ | ||
private equalValue; | ||
/** Bandera que indica si se debe aplicar la validación "isRequired". */ | ||
private required; | ||
/** Bandera que indica si los datos deben ser un booleano en la validación "isBoolean". */ | ||
private boolean; | ||
/** Bandera que indica si los datos deben ser un número en la validación "isNumber". */ | ||
private number; | ||
/** Bandera que indica si los datos deben ser un email en la validación "onEmail". */ | ||
private email; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isString". */ | ||
private string; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isLength". */ | ||
private length; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isLength". */ | ||
private lengthValue; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isCompareRef". */ | ||
private compareRef; | ||
/** Valor que contiene key para cada propiedad del objeto en la validación "isCompareRef". */ | ||
private compareRefKey; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isCompareRef". */ | ||
private compareRefValue; | ||
/** Bandera que indica si los datos deben ser una fecha en la validación "isDate". */ | ||
private date; | ||
/** Bandera que indica si los datos deben ser un objeto en la validación "isObject". */ | ||
private object; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isObject". */ | ||
private objectValue; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isWhen". */ | ||
private when; | ||
/** Key que contiene la clave para validacion de "isWhen" */ | ||
private whenKey; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isWhen" en key. */ | ||
private whenIs; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isWhen" en key. */ | ||
private whenThen; | ||
/** Bandera que indica si los datos deben ser un array en la validación "isArray". */ | ||
private array; | ||
/** Valor que contiene las reglas de validación para cada elemento del array en la validación "isArray". */ | ||
private arrayValue; | ||
/** Bandera que indica si los datos deben ser mayor que un valor específico en la validación "isMin". */ | ||
private min; | ||
/** Bandera que indica si los datos deben ser mayor o igual que un valor específico en la validación "isMinOrEqual". */ | ||
private minOrEqual; | ||
/** Valor con el que se compararán los datos en las validaciones "isMin" y "isMinOrEqual". */ | ||
private minValue; | ||
/** Bandera que indica si los datos deben ser menor que un valor específico en la validación "isMax". */ | ||
private max; | ||
/** Bandera que indica si los datos deben ser menor o igual que un valor específico en la validación "isMaxOrEqual". */ | ||
private maxOrEqual; | ||
/** Valor con el que se compararán los datos en las validaciones "isMax" y "isMaxOrEqual". */ | ||
private maxValue; | ||
/** Bandera que indica si los datos deben ser una cadena que cumpla la regla regex. */ | ||
private regex; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isRegex". */ | ||
private regexValue; | ||
/** Mensaje personalizado para error */ | ||
private messageError; | ||
/** | ||
@@ -34,2 +100,18 @@ * Constructor de la clase FenextjsValidatorClass. | ||
/** | ||
* Método privado para obtener el nombre completo de la instancia actual de FenextjsValidatorClass. | ||
* Si esta instancia tiene un padre, obtiene el nombre completo que incluye el nombre de su padre. | ||
* Si no tiene un padre, devuelve solo el nombre asociado a esta instancia. | ||
* | ||
* @returns {string} - El nombre completo de la instancia actual de FenextjsValidatorClass. | ||
*/ | ||
getName(): any; | ||
/** | ||
* Método para establecer el padre de la instancia actual de FenextjsValidatorClass. | ||
* El padre es otra instancia de FenextjsValidatorClass que se utiliza como contexto superior. | ||
* | ||
* @param {FenextjsValidatorClass} parent - La instancia de FenextjsValidatorClass que se establecerá como padre. | ||
* @returns {FenextjsValidatorClass} - La instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos. | ||
*/ | ||
setParent(parent: FenextjsValidatorClass): this; | ||
/** | ||
* Método para definir la validación "isEqual". | ||
@@ -42,2 +124,10 @@ * Establece la regla de que los datos deben ser iguales al valor especificado. | ||
/** | ||
* Método privado que valida la regla "isEqual". | ||
* Verifica si los datos son iguales al valor especificado en la regla de validación "isEqual". | ||
* @throws {ErrorInputInvalid} Si los datos no son iguales al valor especificado. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
* @private | ||
*/ | ||
onEqual(): this | undefined; | ||
/** | ||
* Método para habilitar la validación "isRequired". | ||
@@ -49,2 +139,9 @@ * Establece la regla de que los datos deben estar presentes y no ser nulos o indefinidos. | ||
/** | ||
* Método privado que valida la regla "isRequired". | ||
* Verifica si los datos cumplen con la regla de ser requeridos (estar presentes y no ser nulos o indefinidos). | ||
* @throws {ErrorInputRequired} Si los datos son nulos, indefinidos o una cadena vacía. | ||
* @private | ||
*/ | ||
onRequered(): void; | ||
/** | ||
* Método para habilitar la validación "isBoolean". | ||
@@ -56,2 +153,9 @@ * Establece la regla de que los datos deben ser de tipo booleano. | ||
/** | ||
* Método privado que valida la regla "isBoolean". | ||
* Verifica si los datos cumplen con la regla de ser de tipo booleano. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo booleano. | ||
* @private | ||
*/ | ||
onBoolean(): void; | ||
/** | ||
* Método para habilitar la validación "isNumber". | ||
@@ -63,2 +167,9 @@ * Establece la regla de que los datos deben ser de tipo número. | ||
/** | ||
* Método privado que valida la regla "isNumber". | ||
* Verifica si los datos cumplen con la regla de ser de tipo número. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo número. | ||
* @private | ||
*/ | ||
onNumber(): void; | ||
/** | ||
* Método para habilitar la validación "isString". | ||
@@ -70,2 +181,9 @@ * Establece la regla de que los datos deben ser de tipo cadena (string). | ||
/** | ||
* Método privado que valida la regla "isString". | ||
* Verifica si los datos cumplen con la regla de ser de tipo cadena (string). | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo cadena (string). | ||
* @private | ||
*/ | ||
onString(): void; | ||
/** | ||
* Método para habilitar la validación de longitud. | ||
@@ -79,2 +197,11 @@ * Establece la regla de que los datos deben tener una longitud específica. | ||
/** | ||
* Método privado para validar la longitud de los datos. | ||
* Si se habilitó la validación de longitud con "isLength()", verifica que los datos cumplan con la longitud requerida. | ||
* Si no se cumple, lanza una excepción "ErrorInputInvalid" con el código "ErrorCode.INPUT_INVALID". | ||
* | ||
* @returns {void} | ||
* @throws {ErrorInputInvalid} - Si los datos no cumplen con la longitud requerida. | ||
*/ | ||
onLength(): void; | ||
/** | ||
* Método para habilitar la validación "isDate". | ||
@@ -86,2 +213,9 @@ * Establece la regla de que los datos deben ser de tipo Date (fecha). | ||
/** | ||
* Método privado que valida la regla "isDate". | ||
* Verifica si los datos cumplen con la regla de ser de tipo Date (fecha). | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo Date (fecha). | ||
* @private | ||
*/ | ||
onDate(): void; | ||
/** | ||
* Método para habilitar la validación "isObject". | ||
@@ -103,2 +237,9 @@ * Establece la regla de que los datos deben ser de tipo objeto. | ||
/** | ||
* Método privado que valida la regla "isObject". | ||
* Verifica si los datos cumplen con la regla de ser de tipo objeto y aplica las reglas de validación para cada propiedad del objeto. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo objeto o alguna propiedad no cumple con las reglas de validación. | ||
* @private | ||
*/ | ||
onObject(): void; | ||
/** | ||
* Método para habilitar la validación "isArray". | ||
@@ -111,2 +252,9 @@ * Establece la regla de que los datos deben ser un array. | ||
/** | ||
* Método privado que valida la regla "isArray". | ||
* Verifica si los datos cumplen con la regla de ser un array y aplica las reglas de validación para cada elemento del array. | ||
* @throws {ErrorInputInvalid} Si los datos no son un array o alguno de los elementos no cumple con las reglas de validación. | ||
* @private | ||
*/ | ||
onArray(): void; | ||
/** | ||
* Método para habilitar la validación "isMin". | ||
@@ -126,2 +274,9 @@ * Establece la regla de que los datos deben ser mayores que un valor específico. | ||
/** | ||
* Método privado que valida las reglas "isMin" y "isMinOrEqual". | ||
* Verifica si los datos cumplen con las reglas de ser mayores que un valor mínimo o mayores/iguales al valor mínimo. | ||
* @throws {ErrorInputInvalid} Si los datos no cumplen con las reglas de validación. | ||
* @private | ||
*/ | ||
onMin(): void; | ||
/** | ||
* Método para habilitar la validación "isMax". | ||
@@ -141,2 +296,9 @@ * Establece la regla de que los datos deben ser menores que un valor específico. | ||
/** | ||
* Método privado que valida las reglas "isMax" y "isMaxOrEqual". | ||
* Verifica si los datos cumplen con las reglas de ser menores que un valor máximo o menores/iguales al valor máximo. | ||
* @throws {ErrorInputInvalid} Si los datos no cumplen con las reglas de validación. | ||
* @private | ||
*/ | ||
onMax(): void; | ||
/** | ||
* Método para habilitar la comparación de valores de referencia. | ||
@@ -164,2 +326,20 @@ * Establece la regla de que los datos deben ser iguales a otro valor de referencia almacenado en la instancia. | ||
/** | ||
* Método privado para realizar la comparación de valores de referencia. | ||
* Si se habilitó la comparación de valores de referencia con "isCompareRef()", | ||
* verifica que los datos sean iguales al valor de referencia establecido con "setCompareRef()". | ||
* Si no se cumple, lanza una excepción "ErrorInputInvalid" con el código "ErrorCode.INPUT_INVALID". | ||
* | ||
* @returns {void} | ||
* @throws {ErrorInputInvalid} - Si los datos no son iguales al valor de referencia. | ||
*/ | ||
onCompareRef(): void; | ||
/** | ||
* Método privado para manejar errores en la validación. | ||
* | ||
* @param {ErrorCode} code - Opcional. El código de error que indica el tipo de error ocurrido. | ||
* @returns {void} | ||
* @throws {ErrorFenextjs} - Una excepción específica basada en el código de error proporcionado o una excepción general "ErrorFenextjs". | ||
*/ | ||
onError(code?: ErrorCode, message?: string): void; | ||
/** | ||
* Método para habilitar la validación "isWhen". | ||
@@ -175,2 +355,9 @@ * Establece la regla de que los comparacion cuando sea correcto la validacion. | ||
/** | ||
* Método privado que valida la regla "onWhen". | ||
* Verifica si los datos cumplen con whenIs y when Key para adicionar la la validacion whenThen. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo Date (fecha). | ||
* @private | ||
*/ | ||
onWhen(): void; | ||
/** | ||
* Método para habilitar la validación "isRegex". | ||
@@ -182,2 +369,9 @@ * Establece la regla de que los comparacion cuando sea correcto la validacion. | ||
/** | ||
* Método privado que valida la regla "onRegex". | ||
* Verifica si los datos cumplen con la comparacion con regexValue. | ||
* @throws {ErrorInputInvalid} Si los datos no cumplen con la compracion. | ||
* @private | ||
*/ | ||
onRegex(): void; | ||
/** | ||
* Método para habilitar la validación "isEmail". | ||
@@ -189,2 +383,9 @@ * Establece la regla de que los comparacion cuando sea correcto la validacion. | ||
/** | ||
* Método privado que valida la regla "onEmail". | ||
* Verifica si los datos cumplen con la comparacion con email. | ||
* @throws {ErrorInputInvalid} Si los datos no cumplen con la compracion. | ||
* @private | ||
*/ | ||
onEmail(): void; | ||
/** | ||
* Método para validar los datos proporcionados según las reglas establecidas. | ||
@@ -191,0 +392,0 @@ * Ejecuta todas las reglas de validación habilitadas previamente para los datos. |
456
cjs/index.js
@@ -13,69 +13,69 @@ "use strict"; | ||
/** Propiedad privada que almacena name del validador. */ | ||
#name; | ||
name; | ||
/** Propiedad privada que almacena la clase superior. */ | ||
#parent; | ||
parent; | ||
/** Propiedad privada que almacena los datos a validar. */ | ||
#data; | ||
data; | ||
// Propiedades privadas para definir diferentes reglas de validación. | ||
// Cada propiedad es un tipo de validación específico. | ||
/** Bandera que indica si se debe aplicar la validación "isEqual". */ | ||
#equal = false; | ||
equal = false; | ||
/** Valor con el que se compararán los datos en la validación "isEqual". */ | ||
#equalValue = undefined; | ||
equalValue = undefined; | ||
/** Bandera que indica si se debe aplicar la validación "isRequired". */ | ||
#required = false; | ||
required = false; | ||
/** Bandera que indica si los datos deben ser un booleano en la validación "isBoolean". */ | ||
#boolean = false; | ||
boolean = false; | ||
/** Bandera que indica si los datos deben ser un número en la validación "isNumber". */ | ||
#number = false; | ||
number = false; | ||
/** Bandera que indica si los datos deben ser un email en la validación "onEmail". */ | ||
#email = false; | ||
email = false; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isString". */ | ||
#string = false; | ||
string = false; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isLength". */ | ||
#length = false; | ||
length = false; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isLength". */ | ||
#lengthValue = undefined; | ||
lengthValue = undefined; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isCompareRef". */ | ||
#compareRef = false; | ||
compareRef = false; | ||
/** Valor que contiene key para cada propiedad del objeto en la validación "isCompareRef". */ | ||
#compareRefKey = undefined; | ||
compareRefKey = undefined; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isCompareRef". */ | ||
#compareRefValue = undefined; | ||
compareRefValue = undefined; | ||
/** Bandera que indica si los datos deben ser una fecha en la validación "isDate". */ | ||
#date = false; | ||
date = false; | ||
/** Bandera que indica si los datos deben ser un objeto en la validación "isObject". */ | ||
#object = false; | ||
object = false; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isObject". */ | ||
#objectValue = undefined; | ||
objectValue = undefined; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isWhen". */ | ||
#when = false; | ||
when = false; | ||
/** Key que contiene la clave para validacion de "isWhen" */ | ||
#whenKey = undefined; | ||
whenKey = undefined; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isWhen" en key. */ | ||
#whenIs = undefined; | ||
whenIs = undefined; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isWhen" en key. */ | ||
#whenThen = undefined; | ||
whenThen = undefined; | ||
/** Bandera que indica si los datos deben ser un array en la validación "isArray". */ | ||
#array = false; | ||
array = false; | ||
/** Valor que contiene las reglas de validación para cada elemento del array en la validación "isArray". */ | ||
#arrayValue = undefined; | ||
arrayValue = undefined; | ||
/** Bandera que indica si los datos deben ser mayor que un valor específico en la validación "isMin". */ | ||
#min = false; | ||
min = false; | ||
/** Bandera que indica si los datos deben ser mayor o igual que un valor específico en la validación "isMinOrEqual". */ | ||
#minOrEqual = false; | ||
minOrEqual = false; | ||
/** Valor con el que se compararán los datos en las validaciones "isMin" y "isMinOrEqual". */ | ||
#minValue = undefined; | ||
minValue = undefined; | ||
/** Bandera que indica si los datos deben ser menor que un valor específico en la validación "isMax". */ | ||
#max = false; | ||
max = false; | ||
/** Bandera que indica si los datos deben ser menor o igual que un valor específico en la validación "isMaxOrEqual". */ | ||
#maxOrEqual = false; | ||
maxOrEqual = false; | ||
/** Valor con el que se compararán los datos en las validaciones "isMax" y "isMaxOrEqual". */ | ||
#maxValue = undefined; | ||
maxValue = undefined; | ||
/** Bandera que indica si los datos deben ser una cadena que cumpla la regla regex. */ | ||
#regex = false; | ||
regex = false; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isRegex". */ | ||
#regexValue = undefined; | ||
regexValue = undefined; | ||
/** Mensaje personalizado para error */ | ||
#messageError = {}; | ||
messageError = {}; | ||
/** | ||
@@ -93,3 +93,3 @@ * Constructor de la clase FenextjsValidatorClass. | ||
*/ | ||
this.#name = props?.name; | ||
this.name = props?.name; | ||
} | ||
@@ -106,3 +106,3 @@ /** | ||
*/ | ||
this.#name = name; | ||
this.name = name; | ||
return this; | ||
@@ -117,7 +117,7 @@ } | ||
*/ | ||
#getName() { | ||
if (this.#parent) { | ||
return this.#parent.#getName() + "." + this.#name; | ||
getName() { | ||
if (this.parent) { | ||
return this.parent.getName() + "." + this.name; | ||
} | ||
return this.#name; | ||
return this.name; | ||
} | ||
@@ -131,3 +131,3 @@ /** | ||
*/ | ||
#setParent(parent) { | ||
setParent(parent) { | ||
/** | ||
@@ -137,3 +137,3 @@ * El padre de la instancia actual de FenextjsValidatorClass. | ||
*/ | ||
this.#parent = parent; | ||
this.parent = parent; | ||
return this; | ||
@@ -148,5 +148,5 @@ } | ||
isEqual(d, msg) { | ||
this.#equal = true; | ||
this.#equalValue = [d].flat(2); | ||
this.#messageError.isEqual = msg ?? undefined; | ||
this.equal = true; | ||
this.equalValue = [d].flat(2); | ||
this.messageError.isEqual = msg ?? undefined; | ||
return this; | ||
@@ -161,11 +161,11 @@ } | ||
*/ | ||
#onEqual() { | ||
onEqual() { | ||
// Si la validación "isEqual" no está habilitada, no se hace nada. | ||
if (!this.#equal || !this.#equalValue || this.#equalValue.length == 0) { | ||
if (!this.equal || !this.equalValue || this.equalValue.length == 0) { | ||
return; | ||
} | ||
// Compara el valor almacenado en #equalValue con los datos a validar (#data). | ||
// Compara el valor almacenado en equalValue con los datos a validar (data). | ||
// Si no son iguales, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (!this.#data || !this.#equalValue.includes(this.#data)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_NOT_EQUAL, this.#messageError?.isEqual); | ||
if (!this.data || !this.equalValue.includes(this.data)) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_NOT_EQUAL, this.messageError?.isEqual); | ||
} | ||
@@ -180,4 +180,4 @@ return this; | ||
isRequired(msg) { | ||
this.#required = true; | ||
this.#messageError.isRequered = msg; | ||
this.required = true; | ||
this.messageError.isRequered = msg; | ||
return this; | ||
@@ -191,5 +191,5 @@ } | ||
*/ | ||
#onRequered() { | ||
onRequered() { | ||
// Si la validación "isRequired" no está habilitada, no se hace nada. | ||
if (!this.#required) { | ||
if (!this.required) { | ||
return; | ||
@@ -199,6 +199,4 @@ } | ||
// Si se cumple alguna de estas condiciones, lanza un ErrorInputRequired para indicar que la validación falló. | ||
if (this.#data === null || | ||
this.#data == undefined || | ||
this.#data === "") { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_REQUIRED, this.#messageError?.isRequered); | ||
if (this.data === null || this.data == undefined || this.data === "") { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_REQUIRED, this.messageError?.isRequered); | ||
} | ||
@@ -212,4 +210,4 @@ } | ||
isBoolean(msg) { | ||
this.#boolean = true; | ||
this.#messageError.isBoolean = msg; | ||
this.boolean = true; | ||
this.messageError.isBoolean = msg; | ||
return this; | ||
@@ -223,5 +221,5 @@ } | ||
*/ | ||
#onBoolean() { | ||
onBoolean() { | ||
// Si la validación "isBoolean" no está habilitada, no se hace nada. | ||
if (!this.#boolean) { | ||
if (!this.boolean) { | ||
return; | ||
@@ -231,4 +229,4 @@ } | ||
// Si no son de tipo booleano, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "boolean") { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isBoolean); | ||
if (typeof this.data !== "boolean") { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isBoolean); | ||
} | ||
@@ -242,4 +240,4 @@ } | ||
isNumber(msg) { | ||
this.#number = true; | ||
this.#messageError.isNumber = msg; | ||
this.number = true; | ||
this.messageError.isNumber = msg; | ||
return this; | ||
@@ -253,5 +251,5 @@ } | ||
*/ | ||
#onNumber() { | ||
onNumber() { | ||
// Si la validación "isNumber" no está habilitada, no se hace nada. | ||
if (!this.#number) { | ||
if (!this.number) { | ||
return; | ||
@@ -261,4 +259,4 @@ } | ||
// Si no son de tipo número, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "number") { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isNumber); | ||
if (typeof this.data !== "number") { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isNumber); | ||
} | ||
@@ -272,4 +270,4 @@ } | ||
isString(msg) { | ||
this.#string = true; | ||
this.#messageError.isString = msg; | ||
this.string = true; | ||
this.messageError.isString = msg; | ||
return this; | ||
@@ -283,5 +281,5 @@ } | ||
*/ | ||
#onString() { | ||
onString() { | ||
// Si la validación "isString" no está habilitada, no se hace nada. | ||
if (!this.#string) { | ||
if (!this.string) { | ||
return; | ||
@@ -291,4 +289,4 @@ } | ||
// Si no son de tipo cadena (string), lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "string") { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isString); | ||
if (typeof this.data !== "string") { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isString); | ||
} | ||
@@ -304,5 +302,5 @@ } | ||
isLength(length, msg) { | ||
this.#length = true; | ||
this.#lengthValue = length; | ||
this.#messageError.isLength = msg; | ||
this.length = true; | ||
this.lengthValue = length; | ||
this.messageError.isLength = msg; | ||
return this; | ||
@@ -318,10 +316,10 @@ } | ||
*/ | ||
#onLength() { | ||
if (!this.#length || !this.#lengthValue) { | ||
onLength() { | ||
if (!this.length || !this.lengthValue) { | ||
return; | ||
} | ||
if (Array.isArray(this.#data) || typeof this.#data == "string") { | ||
if (this.#data?.length !== this.#lengthValue) { | ||
if (Array.isArray(this.data) || typeof this.data == "string") { | ||
if (this.data?.length !== this.lengthValue) { | ||
// Lanza una excepción "ErrorInputInvalid" con el código "ErrorCode.INPUT_INVALID". | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_LENGTH, this.#messageError?.isLength); | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_LENGTH, this.messageError?.isLength); | ||
} | ||
@@ -336,4 +334,4 @@ } | ||
isDate(msg) { | ||
this.#date = true; | ||
this.#messageError.isDate = msg; | ||
this.date = true; | ||
this.messageError.isDate = msg; | ||
return this; | ||
@@ -347,5 +345,5 @@ } | ||
*/ | ||
#onDate() { | ||
onDate() { | ||
// Si la validación "isDate" no está habilitada, no se hace nada. | ||
if (!this.#date) { | ||
if (!this.date) { | ||
return; | ||
@@ -355,4 +353,4 @@ } | ||
// Si no son de tipo Date (fecha), lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (!(this.#data instanceof Date)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isDate); | ||
if (!(this.data instanceof Date)) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isDate); | ||
} | ||
@@ -367,5 +365,5 @@ } | ||
isObject(obj, msg) { | ||
this.#object = true; | ||
this.#objectValue = obj; | ||
this.#messageError.isObject = msg; | ||
this.object = true; | ||
this.objectValue = obj; | ||
this.messageError.isObject = msg; | ||
return this; | ||
@@ -378,3 +376,3 @@ } | ||
getObjectValidator() { | ||
return this.#object ? this.#objectValue : undefined; | ||
return this.object ? this.objectValue : undefined; | ||
} | ||
@@ -387,5 +385,5 @@ /** | ||
*/ | ||
#onObject() { | ||
onObject() { | ||
// Si la validación "isObject" no está habilitada , no se hace nada. | ||
if (!this.#object) { | ||
if (!this.object) { | ||
return; | ||
@@ -395,27 +393,27 @@ } | ||
// Si no son de tipo objeto, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "object") { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isObject); | ||
if (typeof this.data !== "object") { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isObject); | ||
} | ||
// Si la validación "isObject" no se proporcionaron reglas de validación (#objectValue), no se hace nada. | ||
if (!this.#objectValue) { | ||
// Si la validación "isObject" no se proporcionaron reglas de validación (objectValue), no se hace nada. | ||
if (!this.objectValue) { | ||
return; | ||
} | ||
// Obtiene las claves (propiedades) del objeto con las reglas de validación (#objectValue). | ||
const keys = Object.keys(this.#objectValue); | ||
// Obtiene las claves (propiedades) del objeto con las reglas de validación (objectValue). | ||
const keys = Object.keys(this.objectValue); | ||
// Itera sobre cada propiedad del objeto y aplica las reglas de validación correspondientes. | ||
for (let i = 0; i < keys.length; i++) { | ||
const key = keys[i]; | ||
const validator = this.#objectValue[key]; | ||
if (!validator.#name) { | ||
const validator = this.objectValue[key]; | ||
if (!validator.name) { | ||
validator.setName(key); | ||
} | ||
if (validator.#compareRef) { | ||
validator.setCompareRef(this.#data?.[validator.#compareRefKey]); | ||
if (validator.compareRef) { | ||
validator.setCompareRef(this.data?.[validator.compareRefKey]); | ||
} | ||
validator.#setParent(this); | ||
validator.setParent(this); | ||
} | ||
for (let i = 0; i < keys.length; i++) { | ||
const key = keys[i]; | ||
const validator = this.#objectValue[key]; | ||
const r = validator.onValidate(this.#data?.[key]); | ||
const validator = this.objectValue[key]; | ||
const r = validator.onValidate(this.data?.[key]); | ||
// Si alguna propiedad no cumple con las reglas de validación, se lanza el error devuelto por la validación. | ||
@@ -434,5 +432,5 @@ if (r !== true) { | ||
isArray(item = undefined, msg) { | ||
this.#array = true; | ||
this.#arrayValue = item; | ||
this.#messageError.isArray = msg; | ||
this.array = true; | ||
this.arrayValue = item; | ||
this.messageError.isArray = msg; | ||
return this; | ||
@@ -446,5 +444,5 @@ } | ||
*/ | ||
#onArray() { | ||
onArray() { | ||
// Si la validación "isArray" no está habilitada, no se hace nada. | ||
if (!this.#array) { | ||
if (!this.array) { | ||
return; | ||
@@ -454,15 +452,15 @@ } | ||
// Si no son un array, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (!Array.isArray(this.#data)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isArray); | ||
if (!Array.isArray(this.data)) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isArray); | ||
return; | ||
} | ||
// Si la validación "isArray" no se proporcionó una regla de validación para los elementos del array (#arrayValue), no se hace nada. | ||
if (!this.#arrayValue) { | ||
// Si la validación "isArray" no se proporcionó una regla de validación para los elementos del array (arrayValue), no se hace nada. | ||
if (!this.arrayValue) { | ||
return; | ||
} | ||
// Itera sobre cada elemento del array y aplica las reglas de validación definidas en #arrayValue. | ||
const validator = this.#arrayValue; | ||
validator.#setParent(this); | ||
for (let i = 0; i < this.#data.length; i++) { | ||
const item = this.#data[i]; | ||
// Itera sobre cada elemento del array y aplica las reglas de validación definidas en arrayValue. | ||
const validator = this.arrayValue; | ||
validator.setParent(this); | ||
for (let i = 0; i < this.data.length; i++) { | ||
const item = this.data[i]; | ||
validator.setName(`${i}`); | ||
@@ -483,5 +481,5 @@ const r = validator.onValidate(item); | ||
isMin(min, msg) { | ||
this.#min = true; | ||
this.#minValue = min; | ||
this.#messageError.isMin = msg; | ||
this.min = true; | ||
this.minValue = min; | ||
this.messageError.isMin = msg; | ||
return this; | ||
@@ -496,5 +494,5 @@ } | ||
isMinOrEqual(min, msg) { | ||
this.#minOrEqual = true; | ||
this.#minValue = min; | ||
this.#messageError.isMinOrEqual = msg; | ||
this.minOrEqual = true; | ||
this.minValue = min; | ||
this.messageError.isMinOrEqual = msg; | ||
return this; | ||
@@ -508,38 +506,38 @@ } | ||
*/ | ||
#onMin() { | ||
onMin() { | ||
// Variable para almacenar el valor numérico o longitud (si el objeto es un array o cadena) de los datos. | ||
let minValidate = undefined; | ||
// Determina el valor numérico o la longitud según el tipo de dato para realizar la comparación con el valor mínimo (#minValue). | ||
if (Array.isArray(this.#data)) { | ||
minValidate = this.#data.length; | ||
// Determina el valor numérico o la longitud según el tipo de dato para realizar la comparación con el valor mínimo (minValue). | ||
if (Array.isArray(this.data)) { | ||
minValidate = this.data.length; | ||
} | ||
else if (typeof this.#data === "number") { | ||
minValidate = this.#data; | ||
else if (typeof this.data === "number") { | ||
minValidate = this.data; | ||
} | ||
else if (typeof this.#data === "string") { | ||
minValidate = this.#data.length; | ||
else if (typeof this.data === "string") { | ||
minValidate = this.data.length; | ||
} | ||
else if (this.#data instanceof Date) { | ||
minValidate = this.#data.getTime(); | ||
else if (this.data instanceof Date) { | ||
minValidate = this.data.getTime(); | ||
} | ||
// Obtiene el valor mínimo (#minValue) para realizar la comparación. | ||
let nMinValue = this.#minValue; | ||
// Obtiene el valor mínimo (minValue) para realizar la comparación. | ||
let nMinValue = this.minValue; | ||
if (nMinValue instanceof Date) { | ||
nMinValue = nMinValue.getTime(); | ||
} | ||
// Verifica si se habilitó la regla "isMin" y si los datos no superan el valor mínimo (#minValue). | ||
// Verifica si se habilitó la regla "isMin" y si los datos no superan el valor mínimo (minValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#min && | ||
if (this.min && | ||
!(minValidate != undefined && | ||
nMinValue != undefined && | ||
minValidate > nMinValue)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_LOW, this.#messageError?.isMin); | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_LOW, this.messageError?.isMin); | ||
} | ||
// Verifica si se habilitó la regla "isMinOrEqual" y si los datos no superan o igualan el valor mínimo (#minValue). | ||
// Verifica si se habilitó la regla "isMinOrEqual" y si los datos no superan o igualan el valor mínimo (minValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#minOrEqual && | ||
if (this.minOrEqual && | ||
!(minValidate != undefined && | ||
nMinValue != undefined && | ||
minValidate >= nMinValue)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_LOW, this.#messageError?.isMinOrEqual); | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_LOW, this.messageError?.isMinOrEqual); | ||
} | ||
@@ -554,5 +552,5 @@ } | ||
isMax(max, msg) { | ||
this.#max = true; | ||
this.#maxValue = max; | ||
this.#messageError.isMax = msg; | ||
this.max = true; | ||
this.maxValue = max; | ||
this.messageError.isMax = msg; | ||
return this; | ||
@@ -567,5 +565,5 @@ } | ||
isMaxOrEqual(max, msg) { | ||
this.#maxOrEqual = true; | ||
this.#maxValue = max; | ||
this.#messageError.isMaxOrEqual = msg; | ||
this.maxOrEqual = true; | ||
this.maxValue = max; | ||
this.messageError.isMaxOrEqual = msg; | ||
return this; | ||
@@ -579,38 +577,38 @@ } | ||
*/ | ||
#onMax() { | ||
onMax() { | ||
// Variable para almacenar el valor numérico o longitud (si el objeto es un array o cadena) de los datos. | ||
let maxValidate = undefined; | ||
// Determina el valor numérico o la longitud según el tipo de dato para realizar la comparación con el valor máximo (#maxValue). | ||
if (Array.isArray(this.#data)) { | ||
maxValidate = this.#data.length; | ||
// Determina el valor numérico o la longitud según el tipo de dato para realizar la comparación con el valor máximo (maxValue). | ||
if (Array.isArray(this.data)) { | ||
maxValidate = this.data.length; | ||
} | ||
else if (typeof this.#data === "number") { | ||
maxValidate = this.#data; | ||
else if (typeof this.data === "number") { | ||
maxValidate = this.data; | ||
} | ||
else if (typeof this.#data === "string") { | ||
maxValidate = this.#data.length; | ||
else if (typeof this.data === "string") { | ||
maxValidate = this.data.length; | ||
} | ||
else if (this.#data instanceof Date) { | ||
maxValidate = this.#data.getTime(); | ||
else if (this.data instanceof Date) { | ||
maxValidate = this.data.getTime(); | ||
} | ||
// Obtiene el valor máximo (#maxValue) para realizar la comparación. | ||
let nMaxValue = this.#maxValue; | ||
// Obtiene el valor máximo (maxValue) para realizar la comparación. | ||
let nMaxValue = this.maxValue; | ||
if (nMaxValue instanceof Date) { | ||
nMaxValue = nMaxValue.getTime(); | ||
} | ||
// Verifica si se habilitó la regla "isMax" y si los datos no son menores que el valor máximo (#maxValue). | ||
// Verifica si se habilitó la regla "isMax" y si los datos no son menores que el valor máximo (maxValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#max && | ||
if (this.max && | ||
!(maxValidate != undefined && | ||
nMaxValue != undefined && | ||
maxValidate < nMaxValue)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_HIGH, this.#messageError?.isMax); | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_HIGH, this.messageError?.isMax); | ||
} | ||
// Verifica si se habilitó la regla "isMaxOrEqual" y si los datos no son menores o iguales al valor máximo (#maxValue). | ||
// Verifica si se habilitó la regla "isMaxOrEqual" y si los datos no son menores o iguales al valor máximo (maxValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#maxOrEqual && | ||
if (this.maxOrEqual && | ||
!(maxValidate != undefined && | ||
nMaxValue != undefined && | ||
maxValidate <= nMaxValue)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_HIGH, this.#messageError?.isMaxOrEqual); | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_VALUE_TOO_HIGH, this.messageError?.isMaxOrEqual); | ||
} | ||
@@ -626,5 +624,5 @@ } | ||
isCompareRef(refKey, msg) { | ||
this.#compareRef = true; | ||
this.#compareRefKey = refKey; | ||
this.#messageError.isCompareRef = msg; | ||
this.compareRef = true; | ||
this.compareRefKey = refKey; | ||
this.messageError.isCompareRef = msg; | ||
return this; | ||
@@ -638,3 +636,3 @@ } | ||
getCompareRef() { | ||
return this.#compareRef ? this.#compareRefKey : undefined; | ||
return this.compareRef ? this.compareRefKey : undefined; | ||
} | ||
@@ -649,3 +647,3 @@ /** | ||
setCompareRef(refValue) { | ||
this.#compareRefValue = refValue; | ||
this.compareRefValue = refValue; | ||
return this; | ||
@@ -662,9 +660,9 @@ } | ||
*/ | ||
#onCompareRef() { | ||
if (!this.#compareRef || !this.#compareRefValue) { | ||
onCompareRef() { | ||
if (!this.compareRef || !this.compareRefValue) { | ||
return; | ||
} | ||
if (this.#compareRefValue !== this.#data) { | ||
if (this.compareRefValue !== this.data) { | ||
// Lanza una excepción "ErrorInputInvalid" con el código "ErrorCode.INPUT_INVALID". | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_NOT_EQUAL, this.#messageError?.isCompareRef); | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_NOT_EQUAL, this.messageError?.isCompareRef); | ||
} | ||
@@ -679,6 +677,6 @@ } | ||
*/ | ||
#onError(code, message) { | ||
onError(code, message) { | ||
// Crear un objeto que mapea los códigos de error a las clases de error correspondientes. | ||
const props = { | ||
input: this.#getName(), | ||
input: this.getName(), | ||
message, | ||
@@ -690,3 +688,3 @@ }; | ||
...props, | ||
equal: this.#equalValue, | ||
equal: this.equalValue, | ||
}), | ||
@@ -696,11 +694,11 @@ INPUT_INVALID: new Input_1.ErrorInputInvalid(props), | ||
...props, | ||
max: this.#maxValue, | ||
max: this.maxValue, | ||
}), | ||
INPUT_VALUE_TOO_LOW: new Input_1.ErrorInputValueTooLow({ | ||
...props, | ||
min: this.#minValue, | ||
min: this.minValue, | ||
}), | ||
INPUT_LENGTH: new Input_1.ErrorInputLength({ | ||
...props, | ||
length: this.#lengthValue, | ||
length: this.lengthValue, | ||
}), | ||
@@ -717,6 +715,6 @@ }; | ||
isWhen(data) { | ||
this.#when = true; | ||
this.#whenKey = data.key; | ||
this.#whenIs = data.is; | ||
this.#whenThen = data.then; | ||
this.when = true; | ||
this.whenKey = data.key; | ||
this.whenIs = data.is; | ||
this.whenThen = data.then; | ||
return this; | ||
@@ -730,18 +728,18 @@ } | ||
*/ | ||
#onWhen() { | ||
onWhen() { | ||
// Si la validación "isWhen" no está habilitada, no se hace nada. | ||
if (!this.#when) { | ||
if (!this.when) { | ||
return; | ||
} | ||
// Si la validación "parent" no existe, no se hace nada. | ||
if (!this.#parent) { | ||
if (!this.parent) { | ||
return; | ||
} | ||
// Si la validación de datos necesarios no existen, no se hace nada. | ||
if (!this.#whenIs || !this.#whenKey || !this.#whenThen) { | ||
if (!this.whenIs || !this.whenKey || !this.whenThen) { | ||
return; | ||
} | ||
// Si whenIs es corrento ejecuta la validacion | ||
if (this.#whenIs.onValidate(this.#parent.#data[this.#whenKey]) === true) { | ||
const result = this.#whenThen.onValidate(this.#data); | ||
if (this.whenIs.onValidate(this.parent.data[this.whenKey]) === true) { | ||
const result = this.whenThen.onValidate(this.data); | ||
if (result !== true) { | ||
@@ -758,5 +756,5 @@ throw result; | ||
isRegex(data, msg) { | ||
this.#regex = true; | ||
this.#regexValue = data; | ||
this.#messageError.isRegex = msg; | ||
this.regex = true; | ||
this.regexValue = data; | ||
this.messageError.isRegex = msg; | ||
return this; | ||
@@ -770,19 +768,19 @@ } | ||
*/ | ||
#onRegex() { | ||
onRegex() { | ||
// Si la validación "isRegex" no está habilitada, no se hace nada. | ||
if (!this.#regex) { | ||
if (!this.regex) { | ||
return; | ||
} | ||
// Si la validación de datos necesarios no existen, no se hace nada. | ||
if (!this.#regexValue) { | ||
if (!this.regexValue) { | ||
return; | ||
} | ||
// Si la validación de datos sean string. | ||
if (!(typeof this.#data == "string")) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isRegex); | ||
if (!(typeof this.data == "string")) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isRegex); | ||
return; | ||
} | ||
// Si la validación de datos sean cumplan con el regex. | ||
if (!this.#regexValue.test(this.#data)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isRegex); | ||
if (!this.regexValue.test(this.data)) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isRegex); | ||
return; | ||
@@ -797,4 +795,4 @@ } | ||
isEmail(msg) { | ||
this.#email = true; | ||
this.#messageError.isEmail = msg; | ||
this.email = true; | ||
this.messageError.isEmail = msg; | ||
return this; | ||
@@ -808,10 +806,10 @@ } | ||
*/ | ||
#onEmail() { | ||
onEmail() { | ||
// Si la validación "isEmail" no está habilitada, no se hace nada. | ||
if (!this.#email) { | ||
if (!this.email) { | ||
return; | ||
} | ||
// Si la validación de datos sean string. | ||
if (!(typeof this.#data == "string")) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isEmail); | ||
if (!(typeof this.data == "string")) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isEmail); | ||
return; | ||
@@ -822,4 +820,4 @@ } | ||
// Si la validación de datos sean cumplan con el email. | ||
if (!validateEmail.test(this.#data)) { | ||
this.#onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.#messageError?.isEmail); | ||
if (!validateEmail.test(this.data)) { | ||
this.onError(fenextjs_interface_1.ErrorCode.INPUT_INVALID, this.messageError?.isEmail); | ||
return; | ||
@@ -837,19 +835,19 @@ } | ||
// Asigna los datos proporcionados para su validación. | ||
this.#data = d; | ||
this.data = d; | ||
// Ejecuta todas las reglas de validación habilitadas para los datos. | ||
this.#onWhen(); | ||
this.#onEqual(); | ||
this.#onRequered(); | ||
this.#onBoolean(); | ||
this.#onNumber(); | ||
this.#onString(); | ||
this.#onRegex(); | ||
this.#onEmail(); | ||
this.#onLength(); | ||
this.#onDate(); | ||
this.#onObject(); | ||
this.#onArray(); | ||
this.#onMin(); | ||
this.#onMax(); | ||
this.#onCompareRef(); | ||
this.onWhen(); | ||
this.onEqual(); | ||
this.onRequered(); | ||
this.onBoolean(); | ||
this.onNumber(); | ||
this.onString(); | ||
this.onRegex(); | ||
this.onEmail(); | ||
this.onLength(); | ||
this.onDate(); | ||
this.onObject(); | ||
this.onArray(); | ||
this.onMin(); | ||
this.onMax(); | ||
this.onCompareRef(); | ||
// Si todas las reglas de validación se cumplen, retorna true para indicar que los datos son válidos. | ||
@@ -856,0 +854,0 @@ return true; |
{ | ||
"name": "fenextjs-validator", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "./cjs/index.js", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
90940
1210