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

Referencia de la API de Plugins

Referencia completa de la API de Plugins de Boltdocs — PluginContext, caches, diagnostics, resolución de rutas y módulos virtuales. Cubre todos los campos y métodos expuestos a los hooks del lifecycle.

El objeto PluginContext que recibe cada hook del lifecycle incluye siete namespaces enriquecidos que otorgan a los plugins acceso seguro y tipado a la maquinaria interna del core: caches, diagnostics, paths, virtual modules, middleware, server y hmr.

Esta sección es la referencia oficial de la API. Léela junto con la descripción general del Sistema de Plugins para conocer la arquitectura y ejemplos.

Cada namespace tiene su propia página — usa el sidebar o las tarjetas a continuación para navegar.


PluginContextLink

Cada hook del lifecycle recibe un PluginContext como primer argumento:

interface PluginContext {
  readonly config: BoltdocsConfig
  readonly logger: PluginLogger
  readonly store: PluginStore
  readonly meta: PluginMeta
  readonly docsDir: string
  readonly rootDir: string
  readonly outDir: string
  readonly routes: RouteMeta[]

  // --- Nuevo en 3.2.0 ---
  readonly caches: PluginCachesAPI
  readonly diagnostics: PluginDiagnosticsAPI
  readonly paths: PluginPathsAPI
  readonly virtualModules: PluginVirtualModulesAPI
  readonly middleware: PluginMiddlewareAPI  // Registrar middleware transform
  readonly server: PluginServerAPI         // Registrar middleware HTTP
  readonly hmr: PluginHmrAPI               // Hooks de HMR
}

Campos baseLink

CampoTipoDescripción
configBoltdocsConfigObjeto de configuración resuelto y de solo lectura.
loggerPluginLoggerLogging estructurado — info(), warn(), error(), debug().
storePluginStoreAlmacén clave-valor con namespace para comunicación entre plugins.
metaPluginMetaIdentidad del plugin actual (name, version, boltdocsVersion).
docsDirstringRuta absoluta al directorio docs/.
rootDirstringRuta absoluta a la raíz del proyecto.
outDirstringDirectorio de salida del build (ej. dist/).
routesRouteMeta[]Todas las rutas de documentación generadas.

Namespaces enriquecidos (3.2.0+)Link

CampoPáginaDescripción
cachesCachesCaché de transformación, rutas y FIFO en memoria.
diagnosticsDiagnosticsCanal de diagnóstico estructurado con niveles de severidad.
pathsPathsResolución segura de rutas dentro del workspace.
virtualModulesVirtual ModulesDeclara módulos virtuales para resolución por Vite.
middlewareMiddlewareRegistra middleware de transformación en runtime.
serverServerRegistra middleware HTTP y callbacks del ciclo de vida.
hmrHMRConéctate al file-watching del dev server y envía eventos.

Ejemplo completoLink

Un plugin real que cachea una transformación costosa, reporta progreso, resuelve una ruta y registra un módulo virtual:

import { createPlugin } from 'boltdocs'

export default createPlugin({
  name: 'mi-plugin-inteligente',
  hooks: {
    async beforeBuild(ctx) {
      ctx.virtualModules.add('virtual:mi-plugin/config', () =>
        JSON.stringify({ mode: 'production' }),
      )
    },
    async transformMdx(ctx, { code, filePath }) {
      const cache = ctx.caches.memory<string>('mi-plugin', { max: 200 })
      const cached = cache.get(filePath)
      if (cached) return { code: cached }

      ctx.diagnostics.report('info', 'TRANSFORM_START', `Transformando ${filePath}`)
      const transformed = code.replace(/foo/g, 'bar')
      cache.set(filePath, transformed)
      return { code: transformed }
    },
    afterBuild(ctx) {
      const diagPath = ctx.paths.resolveDocs('diagnostics.json')
      ctx.logger.info(`Snapshot de diagnósticos en: ${diagPath}`)
    },
  },
})

Ver tambiénLink

Last updated on July 27, 2026

Was this page helpful?