src/_main/, ten en cuenta que al actualizar a una nueva versión de BaP en el futuro, cualquier cambio manual en los archivos del núcleo se sobrescribirá y perderá. Se sugiere contactar al referente o mantenedor del framework para sugerir mejoras o cambios antes de alterar el motor localmente.Módulo util.js
Caja de herramientas de utilidades generales: generación de UUIDs criptográficos, formato de fechas, notificaciones Toast, conversión de tipos y utilidades DOM.
Funciones Exportadas (export function / export const)
1. generateUUID()
Firma: generateUUID(): string
Propósito: Genera un UUID v4 no predecible mediante la Web Crypto API (`crypto.randomUUID`), garantizando unicidad en identificadores DOM.
Ejemplo de uso:
import { generateUUID } from "../../_main/util.js";
const uniqueId = generateUUID();
console.log("UUID autogenerado:", uniqueId);2. bapNotify(type, severity, msg, errorObj)
Firma: bapNotify(type: string, severity: string, msg: string, errorObj?: any): void
Propósito: Emite un evento global para desplegar alertas o notificaciones tipo Toast mediante el componente `
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
type | String | Sí | Tipo de componente de notificación ("ALERT" o "TOAST"). |
severity | String | Sí | Nivel de severidad ("SUCCESS", "INFO", "WARNING", "ERROR"). |
msg | String | Sí | Mensaje principal de la notificación. |
errorObj | Any | Opcional | Objeto de error o detalle técnico de excepción. |
Ejemplo de uso:
import { bapNotify } from "../../_main/util.js";
bapNotify("ALERT", "SUCCESS", "Guardado", "Información actualizada correctamente.");3. timestampToHumanDate(timestamp, lang, format)
Firma: timestampToHumanDate(timestamp: number|string, lang?: string, format?: string): string
Propósito: Convierte marcas de tiempo UNIX o cadenas ISO en fechas legibles para el usuario formateadas según la localización configurada.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
timestamp | Number | String | Sí | Timestamp en milisegundos o cadena ISO de fecha. |
lang | String | Opcional | Código de idioma ("es", "en"). Por defecto "es". |
format | String | Opcional | Formato visual deseado (ej. "DD/MM/YYYY"). |
Ejemplo de uso:
import { timestampToHumanDate } from "../../_main/util.js";
const fecha = timestampToHumanDate(Date.now(), "es", "DD/MM/YYYY");
console.log("Fecha legible:", fecha);4. setStringIntoBoolean(string)
Firma: setStringIntoBoolean(string: string|boolean): boolean
Propósito: Convierte cadenas de texto como `"true"` o `"false"` a sus equivalentes booleanos estrictos (`true`/`false`).
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
string | String | Boolean | Sí | Cadena de texto o booleano a convertir. |
Ejemplo de uso:
import { setStringIntoBoolean } from "../../_main/util.js";
const boolValue = setStringIntoBoolean("true");
// Resultado: true (boolean)5. isCSSIncluded(href)
Firma: isCSSIncluded(href: string): boolean
Propósito: Verifica si un archivo de hoja de estilos CSS ya se encuentra cargado e inyectado en la cabecera `
` del DOM.| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
href | String | Sí | Nombre o ruta del archivo CSS a verificar en el DOM. |
Ejemplo de uso:
import { isCSSIncluded } from "../../_main/util.js";
const isLoaded = isCSSIncluded("/style/main.css");
console.log("CSS ya incluido:", isLoaded);6. isMobile()
Firma: isMobile(): boolean
Propósito: Detecta si el agente de usuario o resolución corresponde a un dispositivo móvil o tablet.
Ejemplo de uso:
import { isMobile } from "../../_main/util.js";
if (isMobile()) {
console.log("Optimizando vista para pantalla móvil.");
}Buenas Prácticas
- Unicidad criptográfica: Usar
generateUUID()para IDs únicos en el cliente en lugar deMath.random().