@@ -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