API REFERENCE
Hooks
import type { HookName, HookHandler } from '@rasenganjs/futon';
HookSystem isn't imported directly — every Futon instance owns one at app.hooks. See Hooks for the full lifecycle explanation and examples.
HookSystem
class HookSystem { on(name: HookName, handler: HookHandler): void; off(name: HookName, handler: HookHandler): void; has(name: HookName): boolean; emit(name: HookName, ...args: unknown[]): Promise<void>; clear(): void; }
const onRequest = (ctx) => console.log(ctx.request.method, ctx.request.url); app.hooks.on('beforeRequest', onRequest); app.hooks.off('beforeRequest', onRequest);
HookName
type HookName = 'beforeRequest' | 'afterResponse' | 'onError';
HookHandler
type HookHandler = (...args: unknown[]) => void | Promise<void>;
The generic handler shape — its effective arguments depend on which HookName it's registered under (see the table above).
Adapters
Errors
