diff --git a/src/document/document.ts b/src/document/document.ts index d4bdb96f1..48dbaf810 100644 --- a/src/document/document.ts +++ b/src/document/document.ts @@ -370,6 +370,11 @@ export interface PresenceChangedEvent

} type DocumentEventCallbackMap

= { + default: NextFn< + | SnapshotEvent + | LocalChangeEvent + | RemoteChangeEvent + >; presence: NextFn< | InitializedEvent

| WatchedEvent

@@ -727,11 +732,7 @@ export class Document { * The callback will be called when the document is changed. */ public subscribe( - next: NextFn< - | SnapshotEvent - | LocalChangeEvent - | RemoteChangeEvent - >, + next: DocumentEventCallbackMap

['default'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; @@ -742,12 +743,7 @@ export class Document { */ public subscribe( type: 'presence', - next: NextFn< - | InitializedEvent

- | WatchedEvent

- | UnwatchedEvent

- | PresenceChangedEvent

- >, + next: DocumentEventCallbackMap

['presence'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; @@ -757,7 +753,7 @@ export class Document { */ public subscribe( type: 'my-presence', - next: NextFn | PresenceChangedEvent

>, + next: DocumentEventCallbackMap

['my-presence'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; @@ -768,7 +764,7 @@ export class Document { */ public subscribe( type: 'others', - next: NextFn | UnwatchedEvent

| PresenceChangedEvent

>, + next: DocumentEventCallbackMap

['others'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; @@ -778,7 +774,7 @@ export class Document { */ public subscribe( type: 'connection', - next: NextFn, + next: DocumentEventCallbackMap

['connection'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; @@ -788,7 +784,7 @@ export class Document { */ public subscribe( type: 'sync', - next: NextFn, + next: DocumentEventCallbackMap

['sync'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; @@ -812,7 +808,7 @@ export class Document { */ public subscribe( type: 'all', - next: NextFn>, + next: DocumentEventCallbackMap

['all'], error?: ErrorFn, complete?: CompleteFn, ): Unsubscribe; diff --git a/test/integration/client_test.ts b/test/integration/client_test.ts index 6ebd0dd7a..d87bf4008 100644 --- a/test/integration/client_test.ts +++ b/test/integration/client_test.ts @@ -140,7 +140,7 @@ describe.sequential('Client', function () { const unsub1 = { syncEvent: d1.subscribe('sync', (event) => { - eventCollectorSync1.add(event.value as DocumentSyncStatus); + eventCollectorSync1.add(event.value); }), doc: d1.subscribe((event) => { eventCollectorD1.add(event.type); @@ -148,7 +148,7 @@ describe.sequential('Client', function () { }; const unsub2 = { syncEvent: d2.subscribe('sync', (event) => { - eventCollectorSync2.add(event.value as DocumentSyncStatus); + eventCollectorSync2.add(event.value); }), doc: d2.subscribe((event) => { eventCollectorD2.add(event.type); @@ -236,7 +236,7 @@ describe.sequential('Client', function () { // 02. c2 changes the sync mode to realtime sync mode. const eventCollector = new EventCollector(); const unsub1 = d2.subscribe('sync', (event) => { - eventCollector.add(event.value as DocumentSyncStatus); + eventCollector.add(event.value); }); await c2.changeSyncMode(d2, SyncMode.Realtime); await eventCollector.waitFor(DocumentSyncStatus.Synced); // sync occurs when resuming @@ -414,7 +414,7 @@ describe.sequential('Client', function () { const eventCollector = new EventCollector(); const unsub1 = d2.subscribe('sync', (event) => { - eventCollector.add(event.value as DocumentSyncStatus); + eventCollector.add(event.value); }); // 01. c2 attach the doc with realtime sync mode at first. @@ -491,7 +491,7 @@ describe.sequential('Client', function () { // and sync with push-only mode: CP(2, 2) -> CP(3, 2) const eventCollector = new EventCollector(); const unsub = d1.subscribe('sync', (event) => { - eventCollector.add(event.value as DocumentSyncStatus); + eventCollector.add(event.value); }); d1.update((root) => { root.counter.increase(1);