FenextjsValidator

Clase para validar datos de entrada, proporcionando métodos para verificar requerimientos, longitudes, y tipos específicos de validaciones.

Importación

Para importar el componente FenextjsValidator, se puede hacer desde fenextjs

import { FenextjsValidator } from "fenextjs";

isEqual

Método para definir la validación 'isEqual'. Establece la regla de que los datos deben ser iguales al valor especificado.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
dT[] | TValor o lista de valores con los que se compararán los datos a validar.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de igualdad
const validator = FenextjsValidator();
validator.isEqual("value1");
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isEqual("value1", "Los valores no son iguales");

isRequired

Método para habilitar la validación 'isRequired'. Establece la regla de que los datos deben estar presentes y no ser nulos o indefinidos.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de requerimiento
const validator = FenextjsValidator();
validator.isRequired();
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isRequired("Los datos son obligatorios");

isBoolean

Método para habilitar la validación 'isBoolean'. Establece la regla de que los datos deben ser de tipo booleano.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de tipo booleano
const validator = FenextjsValidator();
validator.isBoolean();
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isBoolean("Debe ser un valor booleano");

isNumber

Método para habilitar la validación 'isNumber'. Establece la regla de que los datos deben ser de tipo número.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de tipo número
const validator = FenextjsValidator();
validator.isNumber();
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isNumber("Debe ser un número");

isString

Método para habilitar la validación 'isString'. Establece la regla de que los datos deben ser de tipo cadena (string).

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de tipo cadena
const validator = FenextjsValidator();
validator.isString();
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isString("Debe ser una cadena");

isLength

Método para habilitar la validación de longitud. Establece la regla de que los datos deben tener una longitud específica.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
lengthnumberLa longitud que deben tener los datos para que la validación sea válida.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de longitud
const validator = FenextjsValidator();
validator.isLength(5);
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isLength(5, "La longitud debe ser 5");

isDate

Método para habilitar la validación 'isDate'. Establece la regla de que los datos deben ser de tipo Date (fecha).

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de tipo fecha
const validator = FenextjsValidator();
validator.isDate();
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isDate("Debe ser una fecha válida");

isObject

Método para habilitar la validación 'isObject'. Establece la regla de que los datos deben ser de tipo objeto.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
obj{ [id in keyof T]?: FenextjsValidatorClass } | undefinedObjeto con las reglas de validación para cada propiedad del objeto.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de tipo objeto
const validator = FenextjsValidator();
validator.isObject({
  propertyName: FenextjsValidator().isString(),
});
  • Definir validación con reglas de propiedades y mensaje de error personalizado
const validator = FenextjsValidator();
validator.isObject(
  {
    propertyName: FenextjsValidator().isString("Debe ser una cadena"),
  },
  "El objeto no es válido",
);

isArray

Método para habilitar la validación 'isArray'. Establece la regla de que los datos deben ser un array.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
itemFenextjsValidatorClass | undefinednoInstancia de FenextjsValidatorClass que define las reglas de validación para cada elemento del array.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de tipo array
const validator = FenextjsValidator();
validator.isArray();
  • Definir validación de array con reglas para sus elementos
const validator = FenextjsValidator();
validator.isArray(FenextjsValidator().isString());
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isArray(
  FenextjsValidator().isString("Cada elemento debe ser una cadena"),
);

isMin

Método para habilitar la validación 'isMin'. Establece la regla de que los datos deben ser mayores que un valor específico.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
minnumber | DateValor mínimo que los datos deben superar para que la validación sea válida.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de valor mínimo
const validator = FenextjsValidator();
validator.isMin(10);
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isMin(10, "El valor debe ser mayor que 10");
  • Definir validación con valor mínimo de fecha
const validator = FenextjsValidator();
validator.isMin(new Date("2024-01-01"));

isMinOrEqual

Método para habilitar la validación 'isMinOrEqual'. Establece la regla de que los datos deben ser mayores o iguales que un valor específico.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
minnumber | DateValor mínimo que los datos deben superar o igualar para que la validación sea válida.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de valor mínimo o igual
const validator = FenextjsValidator();
validator.isMinOrEqual(10);
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isMinOrEqual(10, "El valor debe ser mayor o igual a 10");
  • Definir validación con valor mínimo o igual de fecha
const validator = FenextjsValidator();
validator.isMinOrEqual(new Date("2024-01-01"));

isMax

Método para habilitar la validación 'isMax'. Establece la regla de que los datos deben ser menores que un valor específico.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
maxnumber | DateValor máximo que los datos deben ser menores que él para que la validación sea válida.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de valor máximo
const validator = FenextjsValidator();
validator.isMax(100);
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isMax(100, "El valor debe ser menor que 100");
  • Definir validación con valor máximo de fecha
const validator = FenextjsValidator();
validator.isMax(new Date("2024-01-01"));

isMaxOrEqual

Método para habilitar la validación 'isMaxOrEqual'. Establece la regla de que los datos deben ser menores o iguales que un valor específico.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
maxnumber | DateValor máximo que los datos deben ser menores o iguales que él para que la validación sea válida.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de valor máximo o igual
const validator = FenextjsValidator();
validator.isMaxOrEqual(100);
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isMaxOrEqual(100, "El valor debe ser menor o igual que 100");
  • Definir validación con valor máximo o igual de fecha
const validator = FenextjsValidator();
validator.isMaxOrEqual(new Date("2024-01-01"));

isCompareRef

Método para habilitar la comparación de valores de referencia. Establece la regla de que los datos deben ser iguales a otro valor de referencia almacenado en la instancia.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
refKeystringLa clave que identifica el valor de referencia almacenado en la instancia para la comparación.
msgstringnoMensaje de error personalizado que se mostrará si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación de comparación con valor de referencia
const validator = FenextjsValidator();
validator.isCompareRef("myRefKey");
  • Definir validación con mensaje de error personalizado
const validator = FenextjsValidator();
validator.isCompareRef("myRefKey", "Los valores no coinciden");

isWhen

Método para habilitar la validación 'isWhen'. Establece la regla de comparación cuando se cumpla una condición específica.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
dataFenextjsValidatorClassIsWhenPropsObjeto que contiene las reglas de validación a aplicar cuando la condición especificada sea verdadera. La estructura de 'FenextjsValidatorClassIsWhenProps' incluye los campos 'key', 'is', 'then', 'otherwise', y opcionalmente 'dataIsCurrent'.

Condiciones en 'isWhen'

El método 'isWhen' permite aplicar validaciones condicionales basadas en los valores de las propiedades. A continuación se describen las posibles condiciones y el comportamiento de cada una:

CondiciónDescripción
keyEl campo 'key' es el nombre de la propiedad a evaluar. Se usará para determinar si la validación debe aplicarse a esa propiedad.
isLa propiedad 'is' contiene una instancia de 'FenextjsValidatorClass' que define las reglas de validación para aplicar cuando se cumpla la condición.
thenLa propiedad 'then' contiene una instancia de 'FenextjsValidatorClass' que define las reglas de validación a aplicar si la condición es verdadera.
otherwiseLa propiedad 'otherwise' contiene una instancia de 'FenextjsValidatorClass' que define las reglas de validación a aplicar si la condición es falsa. Este campo es opcional.
dataIsCurrentLa propiedad 'dataIsCurrent' es un valor booleano opcional que indica si se debe comparar la propiedad con los datos actuales. Si no se establece, se asumirá como 'false'.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia de la clase para permitir el encadenamiento de métodos.

Usos

  • Definir validación 'isWhen' con una condición
const validator = FenextjsValidator();
validator.isWhen({
  key: "age",
  is: validator.isNumber(),
  then: validator.isMin(18),
});
  • Definir validación 'isWhen' con condiciones múltiples y alternativa
const validator = FenextjsValidator();
validator.isWhen({
  key: "age",
  is: validator.isNumber(),
  then: validator.isMin(18),
  otherwise: validator.isMax(65),
});
validator.isWhen({
  key: "name",
  is: validator.isString(),
  then: validator.isLength(3),
});

isRegex

Método para habilitar la validación 'isRegex'. Establece la regla de que los datos deben coincidir con una expresión regular especificada.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
dataRegExpExpresión regular con la que los datos deben coincidir para que la validación sea éxitosa.
msgstringnoMensaje de error personalizado que se muestra si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.

Usos

  • Habilitar validación 'isRegex'
const validator = FenextjsValidator();
validator.isRegex(
  /^[a-zA-Z0-9]+$/,
  "El valor debe contener solo caracteres alfanuméricos",
);

isEmail

Método para habilitar la validación 'isEmail'. Establece la regla de que los datos deben ser un correo electrónico válido.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
msgstringnoMensaje de error personalizado que se muestra si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.

Usos

  • Habilitar validación 'isEmail'
const validator = FenextjsValidator();
validator.isEmail("Por favor, ingresa un correo electrónico válido");

isCustom

Método para habilitar la validación 'onCustom'. Establece la regla de que los datos deben cumplir con una validación personalizada definida por una función.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
data(data: T) => true | ErrorFenextjsFunción que define la validación personalizada. Si la validación falla, debe retornar un error de tipo ErrorFenextjs.
msgstringnoMensaje de error personalizado que se muestra si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.

Usos

  • Habilitar validación 'isCustom'
const validator = FenextjsValidator();
validator.isCustom((data) => {
  if (data.length < 5) return new ErrorFenextjs("El valor es demasiado corto");
  return true;
}, "Error en validación personalizada");

isOr

Método para definir la validación 'isOr'. Establece la regla de que los datos deben cumplir al menos una validación de las proporcionadas.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
dFenextjsValidatorClass[]Lista de instancias de FenextjsValidatorClass que representan las validaciones a comparar con los datos.
msgstringnoMensaje de error personalizado que se muestra si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.

Usos

  • Habilitar validación 'isOr'
const validator = FenextjsValidator();
const validator1 = FenextjsValidator().isRequired();
const validator2 = FenextjsValidator().isEmail();
validator.isOr(
  [validator1, validator2],
  "Debe ser un valor requerido o un email válido",
);

isEnum

Método para habilitar la validación 'isEnum'. Establece la regla de que los datos deben coincidir con uno de los valores especificados en un objeto enumerado.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
dataobjectObjeto que define los valores permitidos para la validación. Los datos deben coincidir con uno de estos valores.
msgstringnoMensaje de error personalizado que se muestra si la validación falla.

Returns

ParametroTipoDescripcion
thisFenextjsValidatorClassDevuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.

Usos

  • Habilitar validación 'isEnum'
const validator = FenextjsValidator();
enum enumValues {
  "VALUE_1" = "VALUE_1",
  "VALUE_2" = "VALUE_2",
}
validator.isEnum(enumValues, "El valor debe estar en el enum especificado");

onValidate

Método para validar los datos proporcionados según las reglas establecidas. Ejecuta todas las reglas de validación habilitadas previamente para los datos.

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
dTDatos que se deben validar, los cuales serán evaluados contra las reglas de validación previamente habilitadas.

Returns

ParametroTipoDescripcion
truebooleanDevuelve 'true' si los datos cumplen con todas las reglas de validación habilitadas.
ErrorFenextjsErrorFenextjsSi alguna regla de validación falla, retorna el error que indica qué regla de validación falló.

Usos

  • Validación de datos con las reglas habilitadas
const validator = FenextjsValidator();
const data = { name: "Juan", age: 30 };
const result = validator.onValidate(data);
if (result === true) {
  console.log("Datos válidos");
} else {
  console.log("Error de validación:", result);
}

getObjectValidator

Método para obtener la validación 'isObject'. Devuelve el objeto con las reglas de validación definidas para las propiedades del objeto.

Returns

ParametroTipoDescripcion
objectValue{ [id in keyof T]?: FenextjsValidatorClass } | undefinedDevuelve el objeto con las reglas de validación para cada propiedad si 'isObject' está habilitado, o undefined si no lo está.

Usos

  • Obtener las reglas de validación del objeto
const validator = FenextjsValidator();
const objectValidator = validator.getObjectValidator();
console.log(objectValidator);

getArrayValue

Método público para obtener el valor de validación de array. Devuelve las reglas de validación definidas para los elementos del array.

Returns

ParametroTipoDescripcion
arrayValueFenextjsValidatorClassIsWhenProps | undefinedDevuelve el valor de validación del array si está habilitada, o undefined si no lo está.

Usos

  • Obtener el valor de validación de array
const validator = FenextjsValidator();
const arrayValidator = validator.getArrayValue();
console.log(arrayValidator);

getWhenValue

Método público para obtener el valor de validación de 'when'. Devuelve las condiciones definidas para la validación 'isWhen'.

Returns

ParametroTipoDescripcion
this.whenValueFenextjsValidatorClassIsWhenProps[] | undefinedDevuelve el valor de 'when' como un array de objetos de tipo 'FenextjsValidatorClassIsWhenProps', o 'undefined' si no se ha definido.

Usos

  • Obtener valor de validación 'when'
const whenValue = validator.getWhenValue();