@@ -233,19 +233,16 @@ public PowerSyncDatabase(PowerSyncDatabaseOptions options)
233233 } ) ;
234234
235235 var syncStreamStatusCts = CancellationTokenSource . CreateLinkedTokenSource ( masterCts . Token ) ;
236- var syncStreamStatusListener = syncStreamImplementation . ListenAsync ( syncStreamStatusCts . Token ) ;
236+ var syncStreamStatusListener = syncStreamImplementation . Events . OnStatusChanged . ListenAsync ( syncStreamStatusCts . Token ) ;
237237 var _ = Task . Run ( async ( ) =>
238238 {
239239 await foreach ( var update in syncStreamStatusListener )
240240 {
241- if ( update . StatusChanged != null )
241+ CurrentStatus = new SyncStatus ( new SyncStatusOptions ( update . Status . Options )
242242 {
243- CurrentStatus = new SyncStatus ( new SyncStatusOptions ( update . StatusChanged . Options )
244- {
245- HasSynced = CurrentStatus ? . HasSynced == true || update . StatusChanged . LastSyncedAt != null ,
246- } ) ;
247- Events . Emit ( new PowerSyncDBEvents . StatusChangedEvent ( CurrentStatus ) ) ;
248- }
243+ HasSynced = CurrentStatus ? . HasSynced == true || update . Status . LastSyncedAt != null ,
244+ } ) ;
245+ Events . Emit ( new PowerSyncDBEvents . StatusChangedEvent ( CurrentStatus ) ) ;
249246 }
250247 } ) ;
251248
@@ -784,7 +781,7 @@ public IAsyncEnumerable<WatchOnChangeEvent> OnChange(SQLWatchOptions? options =
784781 ? CancellationTokenSource . CreateLinkedTokenSource ( masterCts . Token , options . Signal . Value )
785782 : CancellationTokenSource . CreateLinkedTokenSource ( masterCts . Token ) ;
786783
787- var listener = Database . ListenAsync ( signal . Token ) ;
784+ var listener = Database . Events . OnTablesUpdated . ListenAsync ( signal . Token ) ;
788785
789786 // Return the actual IAsyncEnumerable here, using OnChange as a synchronous wrapper that blocks until the
790787 // connection is established
@@ -793,7 +790,7 @@ public IAsyncEnumerable<WatchOnChangeEvent> OnChange(SQLWatchOptions? options =
793790
794791 private async IAsyncEnumerable < WatchOnChangeEvent > OnChangeCore (
795792 HashSet < string > watchedTables ,
796- IAsyncEnumerable < DBAdapterEvent > listener ,
793+ IAsyncEnumerable < DBAdapterEvents . TablesUpdatedEvent > listener ,
797794 [ EnumeratorCancellation ] CancellationToken signal ,
798795 bool triggerImmediately
799796 )
@@ -807,7 +804,6 @@ bool triggerImmediately
807804 await foreach ( var e in listener )
808805 {
809806 if ( signal . IsCancellationRequested ) yield break ;
810- if ( e . TablesUpdated == null ) continue ;
811807
812808 changedTables . Clear ( ) ;
813809 GetTablesFromNotification ( e . TablesUpdated , changedTables ) ;
@@ -857,7 +853,7 @@ public IAsyncEnumerable<T[]> Watch<T>(
857853 // so that table changes between Watch() being called and iteration starting are not missed.
858854 // This mirrors the pattern used in OnChange().
859855 var initialRestartCts = CancellationTokenSource . CreateLinkedTokenSource ( signal . Token ) ;
860- var initialListener = Database . ListenAsync ( initialRestartCts . Token ) ;
856+ var initialListener = Database . Events . OnTablesUpdated . ListenAsync ( initialRestartCts . Token ) ;
861857
862858 return WatchCore < T > ( sql , parameters , options , signal , initialRestartCts , initialListener ) ;
863859 }
@@ -868,7 +864,7 @@ private async IAsyncEnumerable<T[]> WatchCore<T>(
868864 SQLWatchOptions options ,
869865 CancellationTokenSource signal ,
870866 CancellationTokenSource initialRestartCts ,
871- IAsyncEnumerable < DBAdapterEvent > initialListener
867+ IAsyncEnumerable < DBAdapterEvents . TablesUpdatedEvent > initialListener
872868 )
873869 {
874870 var schemaChanged = new TaskCompletionSource < bool > ( ) ;
@@ -930,7 +926,7 @@ IAsyncEnumerable<DBAdapterEvent> initialListener
930926 // Establish a new listener BEFORE resolving source tables in the next iteration,
931927 // so that changes during the async GetSourceTables call are not missed.
932928 currentRestartCts = CancellationTokenSource . CreateLinkedTokenSource ( signal . Token ) ;
933- currentListener = Database . ListenAsync ( currentRestartCts . Token ) ;
929+ currentListener = Database . Events . OnTablesUpdated . ListenAsync ( currentRestartCts . Token ) ;
934930
935931 break ;
936932 }
@@ -977,7 +973,7 @@ internal async Task<HashSet<string>> GetSourceTables(string sql, object?[]? para
977973
978974 private async IAsyncEnumerable < WatchOnChangeEvent > OnRawTableChange (
979975 HashSet < string > watchedTables ,
980- IAsyncEnumerable < DBAdapterEvent > listener ,
976+ IAsyncEnumerable < DBAdapterEvents . TablesUpdatedEvent > listener ,
981977 [ EnumeratorCancellation ] CancellationToken token ,
982978 bool triggerImmediately = false
983979 )
@@ -990,19 +986,16 @@ private async IAsyncEnumerable<WatchOnChangeEvent> OnRawTableChange(
990986 HashSet < string > changedTables = new ( ) ;
991987 await foreach ( var e in listener )
992988 {
993- if ( e . TablesUpdated != null )
994- {
995- if ( token . IsCancellationRequested ) break ;
989+ if ( token . IsCancellationRequested ) break ;
996990
997- // Extract the changed tables and intersect with the watched tables
998- changedTables . Clear ( ) ;
999- GetTablesFromNotification ( e . TablesUpdated , changedTables ) ;
1000- changedTables . IntersectWith ( watchedTables ) ;
991+ // Extract the changed tables and intersect with the watched tables
992+ changedTables . Clear ( ) ;
993+ GetTablesFromNotification ( e . TablesUpdated , changedTables ) ;
994+ changedTables . IntersectWith ( watchedTables ) ;
1001995
1002- if ( changedTables . Count == 0 ) continue ;
996+ if ( changedTables . Count == 0 ) continue ;
1003997
1004- yield return new WatchOnChangeEvent { ChangedTables = [ .. changedTables ] } ;
1005- }
998+ yield return new WatchOnChangeEvent { ChangedTables = [ .. changedTables ] } ;
1006999 }
10071000 }
10081001
0 commit comments