Saltar al contenido principal

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