@@ -2,26 +2,30 @@ import Foundation
22import PowerSync
33
44final class KotlinPowerSyncDatabaseImpl : PowerSyncDatabaseProtocol {
5- private let kmpDatabase : PowerSync . PowerSyncDatabase
5+ private let kotlinDatabase : PowerSync . PowerSyncDatabase
66
77 var currentStatus : SyncStatus {
8- get { kmpDatabase . currentStatus }
8+ get { kotlinDatabase . currentStatus }
99 }
1010
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 }
22-
22+
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 }
2630
2731 func connect(
@@ -30,44 +34,46 @@ final class KotlinPowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
3034 retryDelayMs: Int64 = 5000 ,
3135 params: [ String : JsonParam ? ] = [ : ]
3236 ) async throws {
33- try await kmpDatabase. connect (
34- connector: connector,
37+ let connectorProxy = PowerSyncBackendConnectorAdapter ( swiftBackendConnector: connector)
38+
39+ try await kotlinDatabase. connect (
40+ connector: connectorProxy,
3541 crudThrottleMs: crudThrottleMs,
3642 retryDelayMs: retryDelayMs,
3743 params: params
3844 )
3945 }
4046
4147 func getCrudBatch( limit: Int32 = 100 ) async throws -> CrudBatch ? {
42- try await kmpDatabase . getCrudBatch ( limit: limit)
48+ try await kotlinDatabase . getCrudBatch ( limit: limit)
4349 }
4450
4551 func getNextCrudTransaction( ) async throws -> CrudTransaction ? {
46- try await kmpDatabase . getNextCrudTransaction ( )
52+ try await kotlinDatabase . getNextCrudTransaction ( )
4753 }
4854
4955 func getPowerSyncVersion( ) async throws -> String {
50- try await kmpDatabase . getPowerSyncVersion ( )
56+ try await kotlinDatabase . getPowerSyncVersion ( )
5157 }
5258
5359 func disconnect( ) async throws {
54- try await kmpDatabase . disconnect ( )
60+ try await kotlinDatabase . disconnect ( )
5561 }
5662
5763 func disconnectAndClear( clearLocal: Bool = true ) async throws {
58- try await kmpDatabase . disconnectAndClear ( clearLocal: clearLocal)
64+ try await kotlinDatabase . disconnectAndClear ( clearLocal: clearLocal)
5965 }
6066
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 }
6470
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
@@ -79,7 +85,7 @@ final class KotlinPowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
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
@@ -91,7 +97,7 @@ final class KotlinPowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
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
@@ -105,7 +111,7 @@ final class KotlinPowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
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
@@ -118,29 +124,29 @@ final class KotlinPowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
118124 }
119125
120126 func writeTransaction< R> ( callback: @escaping ( any PowerSyncTransactionProtocol ) async throws -> R ) async throws -> R {
121- let wrappedCallback = SuspendTaskWrapper { [ kmpDatabase ] in
127+ let wrappedCallback = SuspendTaskWrapper { [ kotlinDatabase ] in
122128 // Create a wrapper that converts the KMP transaction to our Swift protocol
123- if let kmpTransaction = kmpDatabase as? PowerSyncTransactionProtocol {
129+ if let kmpTransaction = kotlinDatabase as? PowerSyncTransactionProtocol {
124130 return try await callback ( kmpTransaction)
125131 } else {
126132 throw PowerSyncError . invalidTransaction
127133 }
128134 }
129135
130- return try await kmpDatabase . writeTransaction ( callback: wrappedCallback) as! R
136+ return try await kotlinDatabase . writeTransaction ( callback: wrappedCallback) as! R
131137 }
132138
133139 func readTransaction< R> ( callback: @escaping ( any PowerSyncTransactionProtocol ) async throws -> R ) async throws -> R {
134- let wrappedCallback = SuspendTaskWrapper { [ kmpDatabase ] in
140+ let wrappedCallback = SuspendTaskWrapper { [ kotlinDatabase ] in
135141 // Create a wrapper that converts the KMP transaction to our Swift protocol
136- if let kmpTransaction = kmpDatabase as? PowerSyncTransactionProtocol {
142+ if let kmpTransaction = kotlinDatabase as? PowerSyncTransactionProtocol {
137143 return try await callback ( kmpTransaction)
138144 } else {
139145 throw PowerSyncError . invalidTransaction
140146 }
141147 }
142148
143- return try await kmpDatabase . readTransaction ( callback: wrappedCallback) as! R
149+ return try await kotlinDatabase . readTransaction ( callback: wrappedCallback) as! R
144150 }
145151}
146152
@@ -156,7 +162,7 @@ class SuspendTaskWrapper: KotlinSuspendFunction1 {
156162 }
157163
158164 @MainActor
159- func invoke ( p1: Any ? , completionHandler: @escaping ( Any ? , Error ? ) -> Void ) {
165+ func __invoke ( p1: Any ? , completionHandler: @escaping ( Any ? , Error ? ) -> Void ) {
160166 Task {
161167 do {
162168 let result = try await self . handle ( )
0 commit comments