Vista General - Validación
Paquete: @tiendana/utils
Utilidades para verificar valores, detectar tipos y validar patrones comunes como emails, contraseñas y números.
Funciones Disponibles
Type Guards
hasValue - Verifica que un valor no sea null, undefined, string vacío o NaN. Para arrays, verifica que tengan al menos un elemento.
hasValue('text') // true
hasValue(null) // false
hasValue([]) // false - array vacío
objHasValue - Verifica que un objeto tenga al menos una propiedad.
objHasValue({ name: 'Juan' }) // true
objHasValue({}) // false
Patrones Regex
Patterns - Colección de expresiones regulares comunes para validación.
Patterns.EMAIL // Validación de email
Patterns.PASSWORD // Contraseña fuerte (min 6 chars, mayúscula, minúscula, número)
Patterns.DOMAIN // Nombre de dominio válido
Patterns.NUMBER // Números (enteros y decimales)
Patterns.IMAGE // MIME type de imagen
Patterns.CC // Cédula/documento colombiano
Uso Común
Validación de Formularios
import { hasValue, Patterns } from '@tiendana/utils';
function validateForm(data: FormData) {
if (!hasValue(data.email)) {
return 'Email es requerido';
}
if (!Patterns.EMAIL.test(data.email)) {
return 'Email no es válido';
}
if (!hasValue(data.password)) {
return 'Contraseña es requerida';
}
if (!Patterns.PASSWORD.test(data.password)) {
return 'Contraseña debe tener min 6 caracteres, mayúscula, minúscula y número';
}
return null; // válido
}
Type Guards en TypeScript
import { hasValue, objHasValue } from '@tiendana/utils';
function processUser(user: User | null) {
if (hasValue(user)) {
// TypeScript sabe que user no es null aquí
console.log(user.name);
}
if (objHasValue(user?.settings)) {
// settings tiene propiedades
console.log(user.settings.theme);
}
}
Características
✅ Type-safe - Type guards para TypeScript
✅ Completo - Maneja casos edge (NaN, arrays vacíos, objetos vacíos)
✅ Reutilizable - Patrones regex listos para usar
✅ Sin dependencias - Código puro JavaScript