Saltar al contenido principal

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ónUsar cuando...
tryJSONParseNecesitas parsear JSON de fuentes no confiables (localStorage, API, user input)
strToNumberNecesitas convertir strings a números con validación estricta
sanitizeEmailNecesitas 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​