UNPKG

@tldraw/sync-core

Version:

tldraw infinite canvas SDK (multiplayer sync).

8 lines (7 loc) 1.93 kB
{ "version": 3, "sources": ["../../src/lib/RoomSession.ts"], "sourcesContent": ["import { SerializedSchema, UnknownRecord } from '@tldraw/store'\nimport { TLRoomSocket } from './TLSyncRoom'\nimport { TLSocketServerSentDataEvent } from './protocol'\n\n/** @internal */\nexport const RoomSessionState = {\n\tAwaitingConnectMessage: 'awaiting-connect-message',\n\tAwaitingRemoval: 'awaiting-removal',\n\tConnected: 'connected',\n} as const\n\n/** @internal */\nexport type RoomSessionState = (typeof RoomSessionState)[keyof typeof RoomSessionState]\n\nexport const SESSION_START_WAIT_TIME = 10000\nexport const SESSION_REMOVAL_WAIT_TIME = 5000\nexport const SESSION_IDLE_TIMEOUT = 20000\n\n/** @internal */\nexport type RoomSession<R extends UnknownRecord, Meta> =\n\t| {\n\t\t\tstate: typeof RoomSessionState.AwaitingConnectMessage\n\t\t\tsessionId: string\n\t\t\tpresenceId: string | null\n\t\t\tsocket: TLRoomSocket<R>\n\t\t\tsessionStartTime: number\n\t\t\tmeta: Meta\n\t\t\tisReadonly: boolean\n\t\t\trequiresLegacyRejection: boolean\n\t }\n\t| {\n\t\t\tstate: typeof RoomSessionState.AwaitingRemoval\n\t\t\tsessionId: string\n\t\t\tpresenceId: string | null\n\t\t\tsocket: TLRoomSocket<R>\n\t\t\tcancellationTime: number\n\t\t\tmeta: Meta\n\t\t\tisReadonly: boolean\n\t\t\trequiresLegacyRejection: boolean\n\t }\n\t| {\n\t\t\tstate: typeof RoomSessionState.Connected\n\t\t\tsessionId: string\n\t\t\tpresenceId: string | null\n\t\t\tsocket: TLRoomSocket<R>\n\t\t\tserializedSchema: SerializedSchema\n\t\t\tlastInteractionTime: number\n\t\t\tdebounceTimer: ReturnType<typeof setTimeout> | null\n\t\t\toutstandingDataMessages: TLSocketServerSentDataEvent<R>[]\n\t\t\tmeta: Meta\n\t\t\tisReadonly: boolean\n\t\t\trequiresLegacyRejection: boolean\n\t }\n"], "mappings": "AAKO,MAAM,mBAAmB;AAAA,EAC/B,wBAAwB;AAAA,EACxB,iBAAiB;AAAA,EACjB,WAAW;AACZ;AAKO,MAAM,0BAA0B;AAChC,MAAM,4BAA4B;AAClC,MAAM,uBAAuB;", "names": [] }