@@ -2,110 +2,116 @@ import Foundation
22import PowerSync
33
44final class KotlinPowerSyncDatabaseImpl : PowerSyncDatabaseProtocol {
5- private let kmpDatabase : PowerSync . PowerSyncDatabase
6-
5+ private let kotlinDatabase : PowerSync . PowerSyncDatabase
6+
77 var currentStatus : SyncStatus {
8- get { kmpDatabase . currentStatus }
8+ get { kotlinDatabase . currentStatus }
99 }
10-
10+
1111 init (
1212 schema: Schema ,
1313 dbFilename: String
1414 ) {
1515 let factory = PowerSync . DatabaseDriverFactory ( )
16- self . kmpDatabase = PowerSyncDatabase (
16+ self . kotlinDatabase = PowerSyncDatabase (
1717 factory: factory,
1818 schema: KotlinAdapter . Schema. toKotlin ( schema) ,
1919 dbFilename: dbFilename
2020 )
2121 }
2222
23+ init ( kotlinDatabase: KotlinPowerSyncDatabase ) {
24+ self . kotlinDatabase = kotlinDatabase
25+ }
26+
2327 func waitForFirstSync( ) async throws {
24- try await kmpDatabase . waitForFirstSync ( )
28+ try await kotlinDatabase . waitForFirstSync ( )
2529 }
26-
30+
2731 func connect(
2832 connector: PowerSyncBackendConnector ,
2933 crudThrottleMs: Int64 = 1000 ,
3034 retryDelayMs: Int64 = 5000 ,
3135 params: [ String : JsonParam ? ] = [ : ]
3236 ) async throws {
33- try await kmpDatabase. connect (
34- connector: connector,
37+ let connectorAdapter = PowerSyncBackendConnectorAdapter ( swiftBackendConnector: connector)
38+
39+ try await kotlinDatabase. connect (
40+ connector: connectorAdapter,
3541 crudThrottleMs: crudThrottleMs,
3642 retryDelayMs: retryDelayMs,
3743 params: params
3844 )
3945 }
40-
46+
4147 func getCrudBatch( limit: Int32 = 100 ) async throws -> CrudBatch ? {
42- try await kmpDatabase . getCrudBatch ( limit: limit)
48+ try await kotlinDatabase . getCrudBatch ( limit: limit)
4349 }
44-
50+
4551 func getNextCrudTransaction( ) async throws -> CrudTransaction ? {
46- try await kmpDatabase . getNextCrudTransaction ( )
52+ try await kotlinDatabase . getNextCrudTransaction ( )
4753 }
48-
54+
4955 func getPowerSyncVersion( ) async throws -> String {
50- try await kmpDatabase . getPowerSyncVersion ( )
56+ try await kotlinDatabase . getPowerSyncVersion ( )
5157 }
52-
58+
5359 func disconnect( ) async throws {
54- try await kmpDatabase . disconnect ( )
60+ try await kotlinDatabase . disconnect ( )
5561 }
56-
62+
5763 func disconnectAndClear( clearLocal: Bool = true ) async throws {
58- try await kmpDatabase . disconnectAndClear ( clearLocal: clearLocal)
64+ try await kotlinDatabase . disconnectAndClear ( clearLocal: clearLocal)
5965 }
60-
66+
6167 func execute( sql: String , parameters: [ Any ] ? ) async throws -> Int64 {
62- Int64 ( truncating: try await kmpDatabase . execute ( sql: sql, parameters: parameters) )
68+ Int64 ( truncating: try await kotlinDatabase . execute ( sql: sql, parameters: parameters) )
6369 }
64-
70+
6571 func get< RowType> (
6672 sql: String ,
6773 parameters: [ Any ] ? ,
6874 mapper: @escaping ( SqlCursor ) -> RowType
6975 ) async throws -> RowType {
70- try await kmpDatabase . get (
76+ try await kotlinDatabase . get (
7177 sql: sql,
7278 parameters: parameters,
7379 mapper: mapper
7480 ) as! RowType
7581 }
76-
82+
7783 func getAll< RowType> (
7884 sql: String ,
7985 parameters: [ Any ] ? ,
8086 mapper: @escaping ( SqlCursor ) -> RowType
8187 ) async throws -> [ RowType ] {
82- try await kmpDatabase . getAll (
88+ try await kotlinDatabase . getAll (
8389 sql: sql,
8490 parameters: parameters,
8591 mapper: mapper
8692 ) as! [ RowType ]
8793 }
88-
94+
8995 func getOptional< RowType> (
9096 sql: String ,
9197 parameters: [ Any ] ? ,
9298 mapper: @escaping ( SqlCursor ) -> RowType
9399 ) async throws -> RowType ? {
94- try await kmpDatabase . getOptional (
100+ try await kotlinDatabase . getOptional (
95101 sql: sql,
96102 parameters: parameters,
97103 mapper: mapper
98104 ) as! RowType ?
99105 }
100-
106+
101107 func watch< RowType> (
102108 sql: String ,
103109 parameters: [ Any ] ? ,
104110 mapper: @escaping ( SqlCursor ) -> RowType
105111 ) -> AsyncStream < [ RowType ] > {
106112 AsyncStream { continuation in
107113 Task {
108- for await values in self . kmpDatabase . watch (
114+ for await values in self . kotlinDatabase . watch (
109115 sql: sql,
110116 parameters: parameters,
111117 mapper: mapper
@@ -116,15 +122,15 @@ final class KotlinPowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
116122 }
117123 }
118124 }
119-
125+
120126 public func writeTransaction< R> ( callback: @escaping ( any PowerSyncTransaction ) async throws -> R ) async throws -> R {
121- return try await kmpDatabase . writeTransaction ( callback: SuspendTaskWrapper { transaction in
127+ return try await kotlinDatabase . writeTransaction ( callback: SuspendTaskWrapper { transaction in
122128 return try await callback ( transaction)
123129 } ) as! R
124130 }
125-
131+
126132 public func readTransaction< R> ( callback: @escaping ( any PowerSyncTransaction ) async throws -> R ) async throws -> R {
127- return try await kmpDatabase . writeTransaction ( callback: SuspendTaskWrapper { transaction in
133+ return try await kotlinDatabase . writeTransaction ( callback: SuspendTaskWrapper { transaction in
128134 return try await callback ( transaction)
129135 } ) as! R
130136 }
@@ -152,4 +158,3 @@ class SuspendTaskWrapper: KotlinSuspendFunction1 {
152158 }
153159 }
154160}
155-
0 commit comments