🚀 Una librería de utilidades y componentes UI reutilizables para proyectos JavaScript y TypeScript. Compatible con utilsJS y ESM.
- Fechas (
src/dates
) - Números (
src/numbers
) - Imágenes (
src/images
) - Cadenas (
src/string
) - Descargas (
src/download
) - Plataforma (
src/platform
) - Formularios (
src/forms
)
Fechas src/dates
-
parseDate(date, timezone?)
: Convierte un string a objeto Date. -
convertTimeZone(date)
: Ajusta una fecha a la zona horaria local. -
formatDate(date, timezone?, format?)
: Formatea una fecha a string (YYYY-MM-DD
oDD/MM/YYYY
). -
formatDateTime(date, timezone?, format?)
: Formatea fecha y hora. -
formatDateLocal(date, timezone?)
: Formatea fecha a formato local. -
formatTimeString(date)
: Extrae la hora en formatoHH:mm
. -
nowTime()
: Fecha y hora actual en formato string. -
nowDate()
: Fecha actual en formato string. -
dateToStringEs(date, format?)
: Fecha en español, ej: "Lunes, 30 de Marzo del 2023". -
monthsToStringEs(month)
: Nombre del mes en español. -
monthsGenerate(count?, letters?)
: Array de nombres de meses. -
addDaysDate(days, date?)
: Suma días a una fecha. -
diffDate(date_start, date_end, type?)
: Diferencia entre fechas en días, meses o semanas. -
formatTimeSince(date)
: Tiempo transcurrido desde una fecha (ej: "Hace 2 horas").
Números src/numbers
-
sumFloat(...values)
: Suma valores como flotantes. -
calculateEqPercent(total, value)
: Calcula el porcentaje de un valor respecto a un total. -
defaultFloat(data, default_value?)
: Convierte a float, valor por defecto si no es válido. -
roundFloat(number, decimals?)
: Redondea un número flotante. -
calculateDiscount(price_a, price_b)
: Calcula el descuento entre dos precios. -
addTaxPorcent(price, tax_value, methodInverse?)
: Suma o resta porcentaje de impuesto. -
getUtility(pvp, price, methodInverse?)
: Calcula utilidad aplicada. -
getPercent(a, b)
: Calcula el porcentaje dea
respecto ab
.
Imágenes src/images
-
getDataUriFromImage(url, width?, height?)
: Convierte una imagen a Data URI (base64) con tamaño personalizado.
Cadenas src/string
-
fillSpaces(text, limit?, character?)
: Rellena un texto con caracteres hasta un límite. -
randomString(length?)
: Genera un string aleatorio. -
truncateText(message, length?, index?)
: Trunca un texto a una longitud máxima.
Descargas src/download
-
downloadBlob(data, fileName)
: Fuerza la descarga de un archivo Blob en el navegador.
Plataforma src/platform
-
getDeviceOS()
: Detecta el sistema operativo del dispositivo. -
getDeviceName()
: Devuelve el nombre del navegador y sistema operativo. -
isMobileDevice()
: Indica si el dispositivo es móvil (por ancho de pantalla).
Formularios src/forms
-
parseNumberDoc(number)
: Formatea un número de documento a001-001-xxxxxx
. -
setSequence(number, limit?, serie?)
: Formatea una secuencia numérica con ceros a la izquierda. -
toString(object, options?)
: Convierte cualquier valor a string, con opciones de formato.
-
isEmpty(data, minLength?)
: Verifica si un campo está vacío. -
isInteger(value)
: Verifica si es un entero. -
isFloat(value)
: Verifica si es un flotante. -
isUUID(value)
: Verifica si es un UUID válido. -
isNumberDocument(doc_number)
: Verifica formato de número de documento. -
isEmail(value)
: Verifica si es un email válido. -
isURL(value)
: Verifica si es una URL válida. -
isValidForm(inputs, rulesObject, toast?)
: Valida un objeto de formulario según reglas.
import {
formatDate,
sumFloat,
getDataUriFromImage,
fillSpaces,
downloadBlob,
getDeviceOS,
isValidForm
} from "royaltics/utils";
console.log(formatDate(new Date())); // "2023-03-30"
console.log(sumFloat("5,599", 2)); // 7.599
getDataUriFromImage("https://ejemplo.com/img.jpg").then(console.log);
console.log(fillSpaces("123", 6)); // "000123"
downloadBlob("Hola mundo", "saludo.txt");
console.log(getDeviceOS()); // "Windows", "Android", etc.
const formRules = {
email: { rules: ["req", "email"], name: "Correo" }
};
console.log(isValidForm({ email: "test@correo.com" }, formRules)); // true
Para compilar la librería:
pnpm build
Para ejecutar en modo desarrollo:
pnpm dev
MIT License © 2025 - Royaltics Solutions