Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

RequestContext

interfaz

Contexto de una petición HTTP: sesión, servicios, plataforma y estado propios de esa petición, nunca compartidos entre usuarios. Lo reciben los loaders, los handlers de API y RPC y los canales Socket.

ts
import type { RequestContext } from "@meekojs/meeko/server";

Código fuente src/server/runtime/request-context.ts:32

Declaración #

ts
interface RequestContext<out TServices = unknown, TEnv = unknown> {
	readonly request: Request
	readonly requestId: string
	readonly signal: AbortSignal
	readonly services: ContextServices<TServices>
	readonly session: SessionHandle<SessionData>
	readonly state: Map<string, unknown>
	readonly platform: ServerPlatform<TEnv>
	readonly idempotencyKey?: string | undefined
	readonly clientAddress?: string | undefined
}

Parámetros de tipo #

TServices = unknown

Tipo de services.

TEnv = unknown

Tipo del entorno de la plataforma.

Ejemplo #

ts
import { defineApiRoute } from "@meekojs/meeko/server";

export default defineApiRoute({
  auth: "required",
  handler: async ({ context }) => {
    const response = await fetch("https://api.example.com/report", { signal: context.signal });
    return { requestId: context.requestId, report: await response.json() };
  },
});

Propiedades #

request #

propiedad sólo lectura

readonly request: Request

Petición HTTP original.

requestId #

propiedad sólo lectura

readonly requestId: string

ID de la petición, que también va en x-request-id y llega a onError.

signal #

propiedad sólo lectura

readonly signal: AbortSignal

Se aborta si el cliente se desconecta o, con SessionRevokedError, si se revoca la sesión.

services #

propiedad sólo lectura

readonly services: ContextServices<TServices>

Servicios de server/runtime.ts. Sin TServices (o con unknown), desde 1.7 su tipo es AppServices, el que Meeko infiere de server/runtime.ts.

session #

propiedad sólo lectura

readonly session: SessionHandle<SessionData>

Sesión de la petición: leer, crear, rotar, revocar y verificar. Sus datos tienen el tipo de MeekoSession cuando la aplicación lo declara (desde 1.2), o unknown.

state #

propiedad sólo lectura

readonly state: Map<string, unknown>

Estado propio de la petición; véase useRequestState.

platform #

propiedad sólo lectura

readonly platform: ServerPlatform<TEnv>

Runtime que atiende la petición, con su entorno y el soporte de trabajo en segundo plano.

idempotencyKey #

propiedad sólo lectura opcional

readonly idempotencyKey?: string | undefined

Clave de idempotencia de la cabecera Idempotency-Key (borrador del IETF), validada como UUID y en minúsculas; undefined si no llegó o no es un UUID. La envían las mutaciones retrySafe y es la misma en cada reintento de una intención. Meeko no deduplica: guárdela con el resultado (por ejemplo, en una columna única) y responda lo mismo cuando se repita. Desde 1.2.

clientAddress #

propiedad sólo lectura opcional

readonly clientAddress?: string | undefined

IP del cliente (desde 1.2): la de la conexión que entrega el adaptador o, con MEEKO_TRUST_PROXY, la que añadió a X-Forwarded-For el proxy de confianza más externo o (con cloudflare, desde 1.8) la de CF-Connecting-IP. undefined si no se conoce. Sin MEEKO_TRUST_PROXY, X-Forwarded-For nunca se lee, porque cualquier cliente puede enviarlo. La usa rateLimit y sirve para registros y auditoría. Fuera de un contexto, como en un middleware de servidor, la misma IP la da clientAddress.

Véase también #

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/server/runtime/request-context.ts