Import it from @grafloria/engine.
Binds one Replica to one SyncTransport.
The replica must be constructed with onLocalOp pointing at adapter.publish — use
{@link createSyncSession}, which does that wiring for you and cannot get it backwards.
tsclass SyncAdapter
Properties
| Name | Type | Default | Description |
|---|---|---|---|
awareness | Awareness | ||
stats | SyncStats |
Methods
constructor( readonly replica: Replica, private readonly transport: SyncTransport, private readonly options: SyncAdapterOptions = {} )get actor(): ActorIdget diagram(): DiagramModelget pendingOps(): Op[]— Ops still waiting on anaddthat has not arrived. Should return to 0.frontier(): VersionVectorJSON— What we tell peers we have.join(): void— Announce ourselves and ask for what we are missing.leave(): void— Say goodbye and stop. Best-effort — the peers' TTL is what actually guarantees it.sync(): void— An anti-entropy round: "here is my frontier; send me what I lack, and tell me yours."flush(): void— Push any queued local ops onto the wire now.publish(op: Op): void— Our own edits. Wired toReplica.onLocalOp— see {@link createSyncSession}.sharedHistory(): Op[]— THE LOG AS THE NETWORK SEES IT — our history, minus everything coalescing withheld.setAwareness(patch: Partial<AwarenessState>): void— Publish our cursor / selection / name.dispose(): void— Stop for good: leave (which DISCONNECTS the transport), drop every timer and unsubscribe from the transport.
Was this page helpful?