UNPKG

server-state-sync

Version:
25 lines (24 loc) 1 kB
import SocketClient from './SocketClient'; export interface StateConfiguration<T, K> { initialValue: T; allowConnectingClient?: (clientInformation: K) => Boolean; interceptStateUpdate?: (updates: Partial<T>, clientInformation: K) => Partial<T> | null; selfDestruct?: (numberOfClients: number, timeOfCreation: Date) => Boolean; ttl?: number; } export default class State<T, K> { private connectedClients; private value; private timeOfCreation; private allowConnectingClient; private interceptStateUpdate; private selfDestruct; private destructionHandler; constructor(config: StateConfiguration<T, K>, destructionHandler: () => {}); connectClient: (socketClient: SocketClient<T, K>) => void; disconnectClient: (socketClient: SocketClient<T, K>) => void; mutate: (updates: Partial<T>, clientInformation: K) => Boolean; broadcastStateUpdate: (updates: Partial<T>) => void; getState(): T; private destroy; }