Data - Visión General
Paquete: @tiendana/utils
Conjunto de funciones para conversión, parsing y validación de datos, incluyendo JSON seguro, conversión de strings a números y sanitización de emails.
Funciones Disponibles
tryJSONParse
Parse de JSON seguro que no lanza errores, con valor por defecto configurable.
const data = tryJSONParse('{"name":"Juan"}', {});
// { name: 'Juan' }
const invalid = tryJSONParse('invalid json', { default: true });
// { default: true }
strToNumber
Convierte strings a números de forma segura, lanzando error si la conversión no es posible.
const num = strToNumber('42');
// 42
const price = strToNumber('19.99');
// 19.99
sanitizeEmail
Limpia direcciones de email: recorta espacios y, si no cumplen Patterns.EMAIL, remueve caracteres no permitidos. No valida.
const email = sanitizeEmail(' juan@example.com ');
// 'juan@example.com'
const cleaned = sanitizeEmail('juan perez@example.com');
// 'juanperez@example.com'
Casos de Uso Comunes
Parse Seguro de API Responses
import { tryJSONParse } from '@tiendana/utils';
function loadUserPreferences() {
const stored = localStorage.getItem('preferences');
return tryJSONParse(stored, {
theme: 'light',
language: 'es'
});
}
Validación de Inputs
import { strToNumber, sanitizeEmail, Patterns } from '@tiendana/utils';
function validateForm(data: any) {
const errors: string[] = [];
try {
const age = strToNumber(data.age);
if (age < 18) errors.push('Debe ser mayor de edad');
} catch {
errors.push('Edad inválida');
}
const email = sanitizeEmail(data.email);
if (!Patterns.EMAIL.test(email)) errors.push('Email inválido');
return errors;
}
Procesamiento de Datos
import { tryJSONParse, strToNumber } from '@tiendana/utils';
function processApiData(rawData: string) {
const parsed = tryJSONParse(rawData, []);
return parsed.map((item: any) => ({
...item,
price: strToNumber(item.price),
quantity: strToNumber(item.quantity)
}));
}
Cuándo Usar Cada Función
| Función | Usar cuando... |
|---|---|
tryJSONParse | Necesitas parsear JSON de fuentes no confiables (localStorage, API, user input) |
strToNumber | Necesitas convertir strings a números con validación estricta |
sanitizeEmail | Necesitas limpiar el texto de un email (valida después con Patterns.EMAIL) |
Características Comunes
✅ Error handling: Manejo seguro de errores sin crashes
✅ Type-safe: Tipos TypeScript bien definidos
✅ Valores por defecto: Soporte para valores por defecto configurables
✅ Validación: Validación de datos antes de procesar
✅ Zero dependencies: Sin librerías externas
Ver También
- Validation - Funciones de validación de datos
- Strings - Manipulación de strings