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.

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";

Source code 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
}

Type parameters #

TServices = unknown

Tipo de services.

TEnv = unknown

Tipo del entorno de la plataforma.

Example #

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.

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/server/runtime/request-context.ts