Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fenextjs-validator

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fenextjs-validator - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

203

cjs/index.d.ts
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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc