@tldraw/sync-core
Version:
tldraw infinite canvas SDK (multiplayer sync).
8 lines (7 loc) • 1.93 kB
Source Map (JSON)
{
"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": []
}