3Dlink - validations
3D link validations es una librería que compila en una función reductora, las validaciones esenciales para aplicar a los campos de los formularios.
Uso
Para utilizar 3Dlink validations en tu proyecto, primero tendrás que importar la función reductora validateField
. Esta función acepta un objeto que contiene las propiedades específicas necesarias para realizar la validación deseada. Todas las validaciones requieren la propiedad validation
para especificar el tipo de validación que se quiere realizar.
Aquí hay un ejemplo básico de cómo puedes utilizar la función validateField
en tu código:
import { validateField } from '3Dlink-validations';
const result = validateField({
validation: 'required',
value: 'contenido del campo'
});
console.log(result);
Cada validación tiene sus propios parámetros específicos que debes proporcionar para que funcione correctamente. Por ejemplo, para la validación minLength
, necesitarás proporcionar la propiedad min
con el valor mínimo de longitud:
const result = validateField({
validation: 'minLength',
value: 'contenido del campo',
min: 5
});
console.log(result);
Puedes encontrar una lista completa de las validaciones disponibles y los parámetros requeridos en la sección Validaciones de este documento.
3Dlink validations está diseñado para ser fácil de usar y flexible, permitiéndote realizar una amplia variedad de comprobaciones en los campos de tus formularios de manera sencilla y eficiente. Simplemente elige la validación que necesitas, proporciona los parámetros requeridos, y deja que 3Dlink se encargue del resto.
Importante
Ten en cuenta que algunas validaciones requieren parámetros específicos. Si no se proporcionan los parámetros requeridos, la función arrojará un error. Asegúrate de revisar la documentación de cada validación para comprender completamente qué parámetros necesitas proporcionar.
Añadir validaciones a la librería
-
Función de Validación: Crea una nueva función de validación que realice la verificación específica que deseas implementar. Puedes usar expresiones regulares o cualquier otro método para realizar la validación.
const validateNewFeature = (value, ...props) => {
}
-
Switch Case en validateField
: Añade un nuevo caso en el switch dentro de la función validateField
que llame a la nueva función de validación.
case 'newFeature':
return validateNewFeature(value, ...props);
-
Test: Agrega pruebas unitarias para la nueva función de validación utilizando jest
. Crea una nueva serie de pruebas en el archivo de pruebas que cubra casos de éxito y error para la nueva validación.
it('validates new feature', () => {
expect(validateField({ validation: 'newFeature', value: ... })).toBe(...);
});
-
Documentación: Añade una descripción de la nueva validación en el archivo README en la sección "Validaciones". Asegúrate de que la documentación sea clara y explique qué hace la nueva validación.
N. **newFeature**: Descripción de lo que hace la nueva validación.
Al seguir esta estructura, puedes asegurarte de que la biblioteca sea coherente y fácil de mantener, y de que los nuevos features se integren sin problemas.
Validaciones
Aquí tienes una lista actualizada de las validaciones disponibles en el módulo formValidations
:
-
required: Comprueba si el campo es requerido. Si el campo está vacío, devolverá false
.
-
minLength: Comprueba si el valor del campo tiene al menos la longitud mínima especificada. Necesitas proporcionar la propiedad min
con el valor mínimo de longitud.
-
maxLength: Comprueba si el valor del campo no excede la longitud máxima especificada. Necesitas proporcionar la propiedad max
con el valor máximo de longitud.
-
exactLength: Comprueba si el valor del campo tiene exactamente la longitud especificada. Necesitas proporcionar la propiedad length
con el valor exacto de longitud.
-
isNumber: Comprueba si el valor del campo contiene solo números.
-
isEmail: Comprueba si el valor del campo es un correo electrónico válido.
-
isDate: Comprueba si el valor del campo es una fecha válida. Por defecto, valida en formato YYYY-MM-DD. Si necesitas otro formato, tendrás que usar una función personalizada.
-
range: Comprueba si el valor del campo es un número dentro de un rango especificado. Necesitas proporcionar las propiedades min
y max
con los valores límite del rango.
-
isUrl: Comprueba si el valor del campo es una URL válida.
-
match: Comprueba si el valor del campo coincide con el de otro campo. Necesitas proporcionar la propiedad matchValue
con el valor del campo con el que se debe comparar.
-
hasUpperCase: Comprueba si el valor del campo contiene al menos una letra mayúscula.
-
hasLowerCase: Comprueba si el valor del campo contiene al menos una letra minúscula.
-
hasSpecialChar: Comprueba si el valor del campo contiene al menos un carácter especial.
-
hasNonNumeric: Comprueba si el valor del campo contiene al menos un carácter no numérico.
-
onlyLetters: Comprueba si el valor del campo contiene solo letras. Puedes especificar si se permiten espacios proporcionando la propiedad spaces
.
-
isTrue: Verifica si una variable tiene el valor buleano de true.
-
noConsecutiveNumbers: Comprueba si el valor del campo contiene números iguales consecutivos. Si contiene números iguales seguidos, devolverá false
.
-
hasMinNumericChar: Comprueba si el valor del campo contiene al menos el mínimo especificado de caracteres numéricos. Necesitas proporcionar la propiedad min
con el número mínimo de caracteres numéricos requeridos.