1. Home
  2. ChevronRightReferencia de la API de Plugins
  3. ChevronRightCaches

Caches

PluginCachesAPI — caché de transformación, caché de rutas y caché FIFO en memoria para plugins de Boltdocs.

ctx.caches — PluginCachesAPILink

Tres tipos de caché, cada uno vinculado a un scope namespaced para evitar colisiones entre plugins.


caches.transform(namespace)Link

Caché sharded con clave hash, respaldada por el TransformCache del core. Se recomienda un namespace por plugin.

const cache = ctx.caches.transform('mi-plugin')

const cached = await cache.get('una-clave-unica')
// → string | null

cache.set('una-clave-unica', `<transformado>...</transformado>`)

await cache.flush()

caches.routesLink

Wrapper sobre el caché de documentos parseados. Los plugins pueden leer, escribir e invalidar rutas individuales por ruta absoluta.

const route = ctx.caches.routes.get('/ruta/absoluta/pagina.mdx')
// → RouteMeta | null

ctx.caches.routes.set('/ruta/absoluta/pagina.mdx', {
  title: 'Mi Página',
  path: '/docs/guias/mi-pagina',
} as RouteMeta)

ctx.caches.routes.invalidate('/ruta/absoluta/pagina.mdx')
ctx.caches.routes.invalidateAll()
AlertTriangle
Contrato del caché de rutas

set() escribe un registro parcial. La capa de parsing siempre gana en el próximo refresh — las entradas escritas por plugins se sobrescriben en el siguiente tick del watcher de archivos.


caches.memory<V>(namespace, opts?)Link

Caché FIFO en proceso que vive durante toda la vida del dev server / build. Respaldado por un Map nativo — sin dependencias externas.

const cache = ctx.caches.memory<MiResultado>('mi-plugin', { max: 50, ttl: 60_000 })

cache.set('clave', { procesado: true })
const val = cache.get('clave')   // → MiResultado | undefined
cache.has('clave')               // → boolean

OpcionesLink

OpciónTipoPredeterminadoDescripción
maxnumber100Número máximo de entradas antes de eliminar las más antiguas.
ttlnumber0Tiempo de vida en milisegundos. 0 significa sin expiración.

Ver tambiénLink

Last updated on July 27, 2026

Was this page helpful?