MeekoHooks
interfaz Desde 1.2.0
Hooks de build que un módulo registra con meeko.hooks.hook(nombre, handler). Se ejecutan en
Node, en el orden en que se registraron, y Meeko espera cada uno.
import type { MeekoHooks } from "@meekojs/meeko/framework";Código fuente src/modules/define-meeko-module.ts:155
Declaración #
interface MeekoHooks {
ready(): void | Promise<void>
'routes:resolved'(context: { readonly routes: readonly RouteRecord[] }): void | Promise<void>
'build:before'(context: { readonly adapter: MeekoAdapterName; readonly output: string }): void | Promise<void>
'build:done'(context: { readonly adapter: MeekoAdapterName; readonly output: string }): void | Promise<void>
'prerender:routes'(context: { readonly urls: string[] }): void | Promise<void>
'sitemap:resolved'(context: { readonly urls: SitemapResolvedUrl[] }): void | Promise<void>
}Ejemplo #
import type { MeekoHooks } from "@meekojs/meeko/framework";
const onRoutes: MeekoHooks["routes:resolved"] = ({ routes }) => {
console.log(routes.map((route) => route.id));
};Miembros #
'routes:resolved'
#
'routes:resolved'(context: { readonly routes: readonly RouteRecord[] }): void | Promise<void>Meeko descubrió el manifiesto de rutas (aplicación, layers y módulos), con los archivos como
rutas absolutas: antes del build cliente en meeko build, y al arrancar y en cada
redescubrimiento en meeko dev.
'build:before'
#
'build:before'(context: { readonly adapter: MeekoAdapterName; readonly output: string }): void | Promise<void>Empieza meeko build; output es la carpeta absoluta del adaptador.
'build:done'
#
'build:done'(context: { readonly adapter: MeekoAdapterName; readonly output: string }): void | Promise<void>meeko build terminó, prerender incluido; un módulo puede añadir archivos a output.
'prerender:routes'
#
'prerender:routes'(context: { readonly urls: string[] }): void | Promise<void>URL que se van a prerenderizar (pathname). Un módulo puede añadir o quitar entradas; cada
URL debe corresponder a una ruta de la aplicación.
'sitemap:resolved'
#
'sitemap:resolved'(context: { readonly urls: SitemapResolvedUrl[] }): void | Promise<void>URL que meeko build va a escribir en sitemap.xml (con la opción sitemap), ya ordenadas.
Un módulo puede sustituir, añadir o quitar entradas; por ejemplo, añadir alternates para que
cada URL declare sus versiones en otros idiomas.