release: WRNexusJS 0.8.0
This commit is contained in:
@@ -119,7 +119,7 @@ export interface RealtimeSecurityOptions {
|
||||
onViolation?(reason: string, client?: RoomClient): void;
|
||||
}
|
||||
|
||||
export interface RoomHandlers<TData = Record<string, unknown>> {
|
||||
export interface RoomHandlers<TData = Record<string, unknown>, TMessage = any> {
|
||||
/** Per-room abuse and payload controls. */
|
||||
security?: RealtimeSecurityOptions;
|
||||
/**
|
||||
@@ -130,20 +130,20 @@ export interface RoomHandlers<TData = Record<string, unknown>> {
|
||||
/** A client connected (a new tab joined the room). */
|
||||
onConnect?(client: RoomClient<TData>): void | Promise<void>;
|
||||
/** A message arrived (JSON is parsed; non-JSON arrives as a string). */
|
||||
onMessage?(client: RoomClient<TData>, message: any): void | Promise<void>;
|
||||
onMessage?(client: RoomClient<TData>, message: TMessage): void | Promise<void>;
|
||||
/** A client disconnected. */
|
||||
onLeave?(client: RoomClient<TData>): void | Promise<void>;
|
||||
}
|
||||
|
||||
export interface RoomDefinition<TData = Record<string, unknown>> {
|
||||
export interface RoomDefinition<TData = Record<string, unknown>, TMessage = any> {
|
||||
readonly __wrnexusRoom: true;
|
||||
readonly handlers: RoomHandlers<TData>;
|
||||
readonly handlers: RoomHandlers<TData, TMessage>;
|
||||
}
|
||||
|
||||
/** Define a realtime room. Export the result as the `default` of a realtime file. */
|
||||
export function defineRoom<TData = Record<string, unknown>>(
|
||||
handlers: RoomHandlers<TData>,
|
||||
): RoomDefinition<TData> {
|
||||
export function defineRoom<TData = Record<string, unknown>, TMessage = any>(
|
||||
handlers: RoomHandlers<TData, TMessage>,
|
||||
): RoomDefinition<TData, TMessage> {
|
||||
return { __wrnexusRoom: true, handlers };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user