Skip to content
Meeko
Type to search the guides and the API reference. Open it from any page with / or Ctrl K; move with the arrow keys and open a result with Enter.
Get started

Contents

On this page

Not translated yet

This page has not been translated into English yet, so it is shown in Spanish.

PluginApp

interfaz Since 1.2.0

Aplicación que recibe un plugin de app/plugins (o de un módulo) al arrancar. En el navegador hay una por pestaña, antes de la hidratación; en el servidor, una por petición de página, antes del render.

ts
import type { PluginApp } from "@meekojs/meeko/framework";

Source code src/app/definitions/define-plugin.ts:77

Declaración #

ts
interface PluginApp {
	readonly side: 'client' | 'server'
	readonly route: RouteState
	readonly request: Request | undefined
	provide<T>(key: ContextKey<T>, value: T): void
	addHead(input: () => HeadInput): void
	beforeNavigate(handler: (url: URL, routeId: string | null) => boolean | void | Promise<boolean | void>): void
	resolveLink(resolver: LinkResolver): void
	onError(handler: PluginErrorHandler): void
}

Example #

ts
// app/plugins/analytics.client.ts
import { definePlugin } from "@meekojs/meeko/framework";

export default definePlugin((app) => {
  console.log("arranca en", app.side, "con la ruta", app.route.path.value);
  app.onError((error) => navigator.sendBeacon("/api/errors", String(error)));
});

Miembros #

side #

propiedad sólo lectura

readonly side: 'client' | 'server'

"client" en el navegador y "server" durante el render de una petición.

route #

propiedad sólo lectura

readonly route: RouteState

Ruta de la aplicación, como la de useRoute(). En el servidor es la de la petición; en el navegador sigue a la ruta confirmada, así que un effect que la lee se repite al navegar.

request #

propiedad sólo lectura

readonly request: Request | undefined

Petición HTTP que se renderiza; undefined en el navegador.

provide #

método

provide<T>(key: ContextKey<T>, value: T): void

Publica un valor para todos los componentes de la aplicación, que lo leen con inject(key). En el servidor el valor es de esta petición; no comparta en él estado mutable entre peticiones.

addHead #

método

addHead(input: () => HeadInput): void

Adds document attributes and tags to every render root of this plugin.

beforeNavigate #

método

beforeNavigate(handler: (url: URL, routeId: string | null) => boolean | void | Promise<boolean | void>): void

Runs before a client navigation; return false after taking over navigation.

método

resolveLink(resolver: LinkResolver): void

Registra un resolvedor del href de cada <MeekoLink> de la aplicación (desde 1.8.0), por ejemplo para añadir el prefijo del idioma. Varios resolvedores se encadenan en el orden de registro: cada uno recibe el href del anterior. Un enlace con bind:resolve="false" no pasa por ellos. Véase LinkResolver.

onError #

método

onError(handler: PluginErrorHandler): void

Registra un observador de errores de la aplicación. En el navegador recibe lo mismo que mountClientApp({ onError }); en el servidor, los fallos del render de esta petición, además del onError de server/runtime.ts.

See also #

Was this page helpful?

Add a comment

It is sent when you choose “Yes” or “No”. Only the page, your answer and the comment are stored: no cookies and no personal data.

0 of 2000 characters

Edit on GitHub: packages/meeko/src/app/definitions/define-plugin.ts