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 router.js
Motor de enrutamiento SPA (Single Page Application). Controla el estado de la sesión, redirecciones seguras y parseo de parámetros URL.
Funciones Exportadas (export function)
1. goTo(route, params)
Firma: goTo(route: Object|string, params?: Object): Promise<void>
Propósito: Navega programáticamente hacia una ruta registrada en la aplicación actualizando la URL mediante `window.history.pushState`.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
route | Object | String | Sí | Objeto de ruta registrado en routes o string con la ruta (ej. "/pages/core/"). |
params | Object | Opcional | Parámetros de consulta (query params) a adjuntar en la URL. |
Ejemplo de uso:
import { goTo } from "../../_main/router.js";
import { routes } from "../../_main/routerPaths.js";
// Navegar programáticamente a la vista de componentes
goTo(routes.components);2. sessionStartedControl(route, initSession, redirectionCallbackOnNoSession)
Firma: sessionStartedControl(route: Object, initSession?: boolean, redirectionCallbackOnNoSession?: Function): void
Propósito: Evalúa los permisos de la ruta actual (`requireAuth`). Si requiere autenticación y el usuario no tiene sesión iniciada, ejecuta la redirección o el callback configurado.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
route | Object | Sí | Objeto de ruta que contiene las reglas de validación en validate.signIn. |
initSession | Boolean | Opcional | Si es true, dispara automáticamente el flujo de inicio de sesión si no hay sesión activa. |
redirectionCallbackOnNoSession | Function | Opcional | Callback personalizado a ejecutar en caso de ausencia de sesión. |
Ejemplo de uso:
import { sessionStartedControl } from "../../_main/router.js";
import { routes } from "../../_main/routerPaths.js";
// Validar inicio de sesión antes de renderizar una vista protegida
sessionStartedControl(routes.core, false);3. getQueryParams()
Firma: getQueryParams(): Object
Propósito: Parsea los parámetros de consulta (`searchParams`) de la URL actual de forma segura y devuelve un objeto JavaScript sanitizado.
Ejemplo de uso:
import { getQueryParams } from "../../_main/router.js";
// Leer query params de la URL (ej. ?view=full&id=123)
const params = getQueryParams();
console.log("ID de consulta:", params.id);Buenas Prácticas
- Navegación controlada: Usar
goTo()en lugar dewindow.location.hrefpara evitar recargas completas de la página.