UNPKG

bun-ws-router

Version:

Lightweight client/server WebSocket router for Bun with type-safe Zod/Valibot validation.

49 lines 1.68 kB
/** * Multi-handler dispatch for client-side message routing. * See @specs/client.md#multiple-handlers and @specs/rules.md#server-client-asymmetry. */ import type { AnyMessageSchema, MessageHandler } from "./types.js"; export declare class HandlerRegistry { private handlers; private schemas; /** * Registers a handler for a message type. * Returns unsubscribe function that removes only this handler. */ register<S extends AnyMessageSchema>(schema: S, handler: MessageHandler, extractType: (schema: S) => string): () => void; /** * Dispatches message to registered handlers. * Executes in registration order with error isolation. * Returns true if handlers were found, false otherwise. */ dispatch(msg: { type: string; [key: string]: unknown; }): boolean; /** * Gets schema for validation by message type. */ getSchema(type: string): AnyMessageSchema | undefined; /** * Validates message against registered schema. * Returns { success: true, data } if validation succeeds. * Returns { success: false, reason: "no-schema" } if no schema registered. * Returns { success: false, reason: "validation-failed" } if validation fails. */ validate(msg: unknown, safeParse: (schema: AnyMessageSchema, data: unknown) => { success: boolean; data?: unknown; error?: unknown; }): { success: true; data: unknown; } | { success: false; reason: "no-schema"; } | { success: false; reason: "validation-failed"; error: unknown; }; } //# sourceMappingURL=handlers.d.ts.map