@@ -28,14 +28,14 @@ public class BasePowerSyncDatabaseOptions()
2828
2929} 
3030
31- public  abstract   class   DatabaseSource  {  } 
31+ public  interface   IDatabaseSource  {  } 
3232
33- public  class  DBAdapterSource ( IDBAdapter  Adapter )  :  DatabaseSource 
33+ public  class  DBAdapterSource ( IDBAdapter  Adapter )  :  IDatabaseSource 
3434{ 
3535    public  IDBAdapter  Adapter  {  get ;  init ;  }  =  Adapter ; 
3636} 
3737
38- public  class  OpenFactorySource ( ISQLOpenFactory  Factory )  :  DatabaseSource 
38+ public  class  OpenFactorySource ( ISQLOpenFactory  Factory )  :  IDatabaseSource 
3939{ 
4040    public  ISQLOpenFactory  Factory  {  get ;  init ;  }  =  Factory ; 
4141} 
@@ -45,8 +45,7 @@ public class PowerSyncDatabaseOptions() : BasePowerSyncDatabaseOptions()
4545    /// <summary>  
4646    /// Source for a SQLite database connection. 
4747    /// </summary> 
48-     public  DatabaseSource  Database  {  get ;  set ;  }  =  null ! ; 
49- 
48+     public  IDatabaseSource  Database  {  get ;  set ;  }  =  null ! ; 
5049} 
5150
5251public  class  PowerSyncDBEvent  :  StreamingSyncImplementationEvent 
@@ -63,6 +62,25 @@ public interface IPowerSyncDatabase : IEventStream<PowerSyncDBEvent>
6362    public  Task < CrudBatch ? >  GetCrudBatch ( int  limit ) ; 
6463
6564    public  Task < CrudTransaction ? >  GetNextCrudTransaction ( ) ; 
65+ 
66+     Task < NonQueryResult >  Execute ( string  query ,  object [ ] ?  parameters  =  null ) ; 
67+ 
68+     Task < T [ ] >  GetAll < T > ( string  sql ,  params  object [ ] ?  parameters ) ; 
69+ 
70+     Task < T ? >  GetOptional < T > ( string  sql ,  params  object [ ] ?  parameters ) ; 
71+ 
72+     Task < T >  Get < T > ( string  sql ,  params  object [ ] ?  parameters ) ; 
73+ 
74+     Task < T >  ReadLock < T > ( Func < ILockContext ,  Task < T > >  fn ,  DBLockOptions ?  options  =  null ) ; 
75+ 
76+     Task < T >  ReadTransaction < T > ( Func < ITransaction ,  Task < T > >  fn ,  DBLockOptions ?  options  =  null ) ; 
77+ 
78+     Task  WriteLock ( Func < ILockContext ,  Task >  fn ,  DBLockOptions ?  options  =  null ) ; 
79+     Task < T >  WriteLock < T > ( Func < ILockContext ,  Task < T > >  fn ,  DBLockOptions ?  options  =  null ) ; 
80+ 
81+     Task  WriteTransaction ( Func < ITransaction ,  Task >  fn ,  DBLockOptions ?  options  =  null ) ; 
82+     Task < T >  WriteTransaction < T > ( Func < ITransaction ,  Task < T > >  fn ,  DBLockOptions ?  options  =  null ) ; 
83+ 
6684} 
6785
6886public  class  PowerSyncDatabase  :  EventStream < PowerSyncDBEvent > ,  IPowerSyncDatabase 
@@ -102,9 +120,6 @@ public PowerSyncDatabase(PowerSyncDatabaseOptions options)
102120        } 
103121        else  if  ( options . Database  is  SQLOpenOptions  openOptions ) 
104122        { 
105-             // TODO default to MDSQLite factory for now 
106-             // Can be broken out, rename this class to Abstract 
107-             // `this.openDBAdapter(options)` 
108123            Database  =  new  MDSQLiteAdapter ( new  MDSQLiteAdapterOptions 
109124            { 
110125                Name  =  openOptions . DbFilename , 
@@ -346,7 +361,6 @@ public async Task DisconnectAndClear()
346361        await  Disconnect ( ) ; 
347362        await  WaitForReady ( ) ; 
348363
349-         // TODO CL bool clearLocal = options?.ClearLocal ?? false; 
350364        bool  clearLocal  =  true ; 
351365
352366        await  Database . WriteTransaction ( async  tx => 
@@ -364,12 +378,6 @@ await Database.WriteTransaction(async tx =>
364378        base . Close ( ) ; 
365379        await  WaitForReady ( ) ; 
366380
367-         // TODO CL 
368-         // if (options.Disconnect) 
369-         // { 
370-         //     await Disconnect(); 
371-         // } 
372- 
373381        syncStreamImplementation ? . Close ( ) ; 
374382        BucketStorageAdapter ? . Close ( ) ; 
375383
0 commit comments