@capgo/capacitor-fast-sql 8.0.47 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/android/src/main/java/app/capgo/capacitor/fastsql/CapgoCapacitorFastSqlPlugin.java +5 -3
- package/android/src/main/java/app/capgo/capacitor/fastsql/EncryptedSQLDatabase.java +2 -3
- package/android/src/main/java/app/capgo/capacitor/fastsql/SQLDatabase.java +2 -3
- package/android/src/main/java/app/capgo/capacitor/fastsql/SQLPerformanceConfig.java +28 -0
- package/dist/esm/definitions.d.ts +14 -0
- package/dist/esm/definitions.d.ts.map +1 -1
- package/dist/esm/performance-config.d.ts +8 -0
- package/dist/esm/performance-config.d.ts.map +1 -0
- package/dist/esm/performance-config.js +14 -0
- package/dist/esm/web.d.ts.map +1 -1
- package/dist/esm/web.js +2 -0
- package/dist/plugin.cjs.js +16 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +16 -0
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/CapgoCapacitorFastSqlPlugin/CapgoCapacitorFastSqlPlugin.swift +32 -9
- package/ios/Sources/CapgoCapacitorFastSqlPlugin/SQLDatabase.swift +22 -3
- package/ios/Sources/CapgoCapacitorFastSqlPlugin/SQLHTTPServer.swift +34 -5
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ class SQLHTTPServer {
|
|
|
12
12
|
let port: Int
|
|
13
13
|
let token: String
|
|
14
14
|
private var databases: [String: SQLDatabase]
|
|
15
|
+
private let databasesLock = NSLock()
|
|
15
16
|
private var server: Server?
|
|
16
17
|
private var isRunning = false
|
|
17
18
|
|
|
@@ -24,6 +25,34 @@ class SQLHTTPServer {
|
|
|
24
25
|
self.server = Server()
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
/// Registers a newly-connected database with the HTTP server.
|
|
29
|
+
///
|
|
30
|
+
/// Must be called after every `connect()` that finds the server already running,
|
|
31
|
+
/// because `SQLHTTPServer` holds a **value-type copy** of the databases dictionary
|
|
32
|
+
/// and cannot observe subsequent mutations made to the plugin's own copy.
|
|
33
|
+
func addDatabase(_ db: SQLDatabase, forKey key: String) {
|
|
34
|
+
databasesLock.lock()
|
|
35
|
+
defer { databasesLock.unlock() }
|
|
36
|
+
databases[key] = db
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/// Removes a disconnected database from the HTTP server's registry.
|
|
40
|
+
///
|
|
41
|
+
/// Call whenever a database is disconnected so in-flight HTTP requests for it
|
|
42
|
+
/// receive a timely "not found" response rather than accessing a closed handle.
|
|
43
|
+
func removeDatabase(forKey key: String) {
|
|
44
|
+
databasesLock.lock()
|
|
45
|
+
defer { databasesLock.unlock() }
|
|
46
|
+
databases.removeValue(forKey: key)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/// Returns the open database for `key`, or `nil` if not registered.
|
|
50
|
+
private func registeredDatabase(forKey key: String) -> SQLDatabase? {
|
|
51
|
+
databasesLock.lock()
|
|
52
|
+
defer { databasesLock.unlock() }
|
|
53
|
+
return databases[key]
|
|
54
|
+
}
|
|
55
|
+
|
|
27
56
|
func start() throws {
|
|
28
57
|
guard !isRunning else { return }
|
|
29
58
|
guard let server = server else {
|
|
@@ -180,7 +209,7 @@ class SQLHTTPServer {
|
|
|
180
209
|
}
|
|
181
210
|
|
|
182
211
|
// Check if database exists
|
|
183
|
-
guard let db =
|
|
212
|
+
guard let db = registeredDatabase(forKey: database) else {
|
|
184
213
|
let bodyData = "Database not found".data(using: .utf8)!
|
|
185
214
|
return HTTPResponse(.notFound, body: bodyData)
|
|
186
215
|
}
|
|
@@ -219,7 +248,7 @@ class SQLHTTPServer {
|
|
|
219
248
|
}
|
|
220
249
|
|
|
221
250
|
// Check if database exists
|
|
222
|
-
guard let db =
|
|
251
|
+
guard let db = registeredDatabase(forKey: database) else {
|
|
223
252
|
let bodyData = "Database not found".data(using: .utf8)!
|
|
224
253
|
return HTTPResponse(.notFound, body: bodyData)
|
|
225
254
|
}
|
|
@@ -267,7 +296,7 @@ class SQLHTTPServer {
|
|
|
267
296
|
}
|
|
268
297
|
|
|
269
298
|
// Check if database exists
|
|
270
|
-
guard let db =
|
|
299
|
+
guard let db = registeredDatabase(forKey: database) else {
|
|
271
300
|
let bodyData = "Database not found".data(using: .utf8)!
|
|
272
301
|
return HTTPResponse(.notFound, body: bodyData)
|
|
273
302
|
}
|
|
@@ -296,7 +325,7 @@ class SQLHTTPServer {
|
|
|
296
325
|
}
|
|
297
326
|
|
|
298
327
|
// Check if database exists
|
|
299
|
-
guard let db =
|
|
328
|
+
guard let db = registeredDatabase(forKey: database) else {
|
|
300
329
|
let bodyData = "Database not found".data(using: .utf8)!
|
|
301
330
|
return HTTPResponse(.notFound, body: bodyData)
|
|
302
331
|
}
|
|
@@ -325,7 +354,7 @@ class SQLHTTPServer {
|
|
|
325
354
|
}
|
|
326
355
|
|
|
327
356
|
// Check if database exists
|
|
328
|
-
guard let db =
|
|
357
|
+
guard let db = registeredDatabase(forKey: database) else {
|
|
329
358
|
let bodyData = "Database not found".data(using: .utf8)!
|
|
330
359
|
return HTTPResponse(.notFound, body: bodyData)
|
|
331
360
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capgo/capacitor-fast-sql",
|
|
3
|
-
"version": "8.0
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"description": "High-performance native SQLite plugin with custom protocol for efficient sync operations and IndexedDB replacement",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|