UNPKG

syncable-server

Version:
18 lines (17 loc) 1.6 kB
import { BroadcastChange, Change, ClientBroadcastChangeData, GeneralQueuedBroadcastChange, QueuedBroadcastChange, Removal, ServerCreation, Subscription, Syncable } from 'syncable'; import { Server, Socket, Visibility } from './server'; export declare abstract class SyncableDefinition<TSyncable extends Syncable, TSubscription extends Subscription, TSession, TClientSession, TServer extends Server<TSession, TClientSession>> { readonly server: TServer; /** Override to customize. */ pruneBroadcastChange(change: QueuedBroadcastChange): BroadcastChange; /** Override to customize. */ testVisibility(_object: TSyncable, _subscription: TSubscription, _socket: Socket<TClientSession>): Visibility; /** Override to customize. */ loadSnapshotsUponRequest(_resources: string[], _subscription: TSubscription, _socket: Socket<TClientSession>): Promise<TSyncable[]>; abstract onChange(change: GeneralQueuedBroadcastChange, changeSession: TSession, subscription: TSubscription, socket: Socket<TClientSession>): boolean; abstract loadSnapshots(subscription: TSubscription, socket: Socket<TClientSession>): Promise<TSyncable[]>; abstract loadChanges(subscription: TSubscription, socket: Socket<TClientSession>): Promise<ClientBroadcastChangeData<BroadcastChange, TClientSession>[]>; abstract create(change: ServerCreation, timestamp: number, session: TSession): Promise<TSyncable>; abstract update(change: Change, timestamp: number, session: TSession): Promise<TSyncable>; abstract remove(change: Removal, timestamp: number, session: TSession): Promise<void>; }