⚠️ Advertencia sobre Modificaciones del Core: Si bien BaP Framework permite modificar cualquier archivo en 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ámetroTipoRequeridoDescripción
typeStringTipo de componente de notificación ("ALERT" o "TOAST").
severityStringNivel de severidad ("SUCCESS", "INFO", "WARNING", "ERROR").
msgStringMensaje principal de la notificación.
errorObjAnyOpcionalObjeto 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ámetroTipoRequeridoDescripción
timestampNumber | StringTimestamp en milisegundos o cadena ISO de fecha.
langStringOpcionalCódigo de idioma ("es", "en"). Por defecto "es".
formatStringOpcionalFormato 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ámetroTipoRequeridoDescripción
stringString | BooleanCadena 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ámetroTipoRequeridoDescripción
hrefStringNombre 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