HandlerContext
Unico parametro de un handler. Firma unica: async function handler(ctx); un segundo parametro esta prohibido
(tests/contract.test.mjs y _shared/validate.mjs lo comprueban).
Lo que fija el SERVIDOR (fiable): args, env, domain, user, settings, extension, services.
Lo que manda el NAVEGADOR (no fiable, validalo): emailContent, subject, to, from, sender, auth, slashArgs, contactId... ([clientContext]).
Firma
export interface HandlerContext<Args extends Record<string, any> = Record<string, any>, Env extends HandlerEnv = HandlerEnv> {
args: Args;
env: Env;
domain: HandlerDomain;
user: HandlerUser | null;
settings: Record<string, any> & { forUser(key: string, userId: string): unknown; getUserValue(key: string, userId: string): unknown; };
extension: HandlerExtensionInfo;
services: HandlerServices;
libs: HandlerLibs;
hook: { event: string; eventKey?: string; } | null;
auth?: { provider?: string; accessToken?: string; [provider: string]: any; };
emailContent?: string;
emailId?: string;
subject?: string;
to?: string[] | string;
from?: string;
sender?: { email?: string; name?: string; };
[clientContext: string]: any;
}Parámetros de tipo
Args· Restricción:Record<string, any>· Por defecto:Record<string, any>Env· Restricción:HandlerEnv· Por defecto:HandlerEnv
Miembros (17)
| Nombre | Tipo | Descripción |
|---|---|---|
| argsobligatorio | Args | CALL_BACKEND.args (+ formData de un FORM). SIEMPRE los del RPC; valida cada campo antes de usarlo. |
| envobligatorio | Env | Sin descripción. |
| domainobligatorio | HandlerDomain | Sin descripción. |
| userobligatorio | HandlerUser | null | Sin descripción. |
| settingsobligatorio | Record<string, any> & { forUser(key: string, userId: string): unknown; getUserValue(key: string, userId: string): unknown; } | Ajustes de la instalacion. Los secretos de dominio llegan por |
| extensionobligatorio | HandlerExtensionInfo | Sin descripción. |
| servicesobligatorio | HandlerServices | Sin descripción. |
| libsobligatorio | HandlerLibs | SDK de proveedores OAuth ( |
| hookobligatorio | { event: string; eventKey?: string; } | null | Procedencia de hook, FIJADA POR EL SERVIDOR (el cliente no puede enviarla): |
| authopcional | { provider?: string; accessToken?: string; [provider: string]: any; } | Cuentas vinculadas del usuario: |
| emailContentopcional | string | Sin descripción. |
| emailIdopcional | string | Sin descripción. |
| subjectopcional | string | Sin descripción. |
| toopcional | string[] | string | Sin descripción. |
| fromopcional | string | Sin descripción. |
| senderopcional | { email?: string; name?: string; } | Sin descripción. |
| [clientContext: string] | any | Sin descripción. |
Ejemplos
export async function greet(ctx) {
const name = String(ctx.args.name || "").trim();
if (!name) throw new Error("name es obligatorio");
return { text: "Hola " + name + " desde " + ctx.domain.name };
}Usado en / Referenciado por
Fuente: bloomx-extensions/_shared/sdk/ctx.d.ts:849 · ctx.d.ts