API de registro de ruta
Estas utilidades le permiten administrar patrones de ruta registrados y compilar rutas parametrizadas dinámicamente.
registerRoute
Registra manualmente un patrón de ruta con el motor de coincidencia central. Esto se realiza automáticamente mediante etiquetas <page-route>, pero se puede hacer imperativamente en JS.
typescript
interface RegisterRouteOptions {
exact?: boolean
meta?: Record<string, unknown>
name?: string
}
function registerRoute(
pattern: string,
options?: RegisterRouteOptions | boolean
): void- Si se pasa un valor booleano como segundo argumento, se trata como la configuración
exact.
Ejemplo
javascript
import { registerRoute } from '@beforesemicolon/router'
registerRoute('/dashboard')
registerRoute('/admin', { exact: false })
registerRoute('/users/:userId', {
exact: true,
name: 'user-routes',
meta: { title: 'User Details', requiresAuth: true },
})isRegisteredRoute
Comprueba si un nombre de ruta concreto coincide con algún patrón de ruta registrado.
typescript
function isRegisteredRoute(pathname: string): booleanEjemplo
javascript
import { isRegisteredRoute } from '@beforesemicolon/router'
isRegisteredRoute('/dashboard') // true
isRegisteredRoute('/users/42') // true, when /users/:userId is registered
isRegisteredRoute('/invalid-path') // falseparsePathname
Toma un patrón de ruta que contiene parámetros y lo compila en una ruta URL completa utilizando valores de la ubicación activa actual.
typescript
function parsePathname(pattern: string): stringEjemplo
javascript
// Browser location is: /users/42
// Current parameters: { userId: '42' }
import { parsePathname } from '@beforesemicolon/router'
const path = parsePathname('/users/:userId/details')
// Returns: "/users/42/details"