11diff --git a/android/build.gradle b/android/build.gradle
2- index d36fd855813e87b17da43156be64782b325b2733..751355645c0b6e28e2df01e9bdc32f545d8dc83c 100644
2+ index 08631df..9ef3a95 100644
33--- a/android/build.gradle
44+++ b/android/build.gradle
55@@ -1,5 +1,4 @@
@@ -8,7 +8,7 @@ index d36fd855813e87b17da43156be64782b325b2733..751355645c0b6e28e2df01e9bdc32f54
88
99 buildscript {
1010 ext.getExtOrDefault = {name ->
11- @@ -27,57 +26,16 @@ def getExtOrIntegerDefault(name) {
11+ @@ -27,56 +26,16 @@ def getExtOrIntegerDefault(name) {
1212 return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["OPSQLite_" + name]).toInteger()
1313 }
1414
@@ -33,7 +33,7 @@ index d36fd855813e87b17da43156be64782b325b2733..751355645c0b6e28e2df01e9bdc32f54
3333- // Start from the root + 1 level up (to avoid detecting the op-sqlite/package.json) and traverse upwards to find the first package.json
3434- File currentDir = new File("$rootDir/../")
3535- packageJsonFile = null
36- -
36+ -
3737- // Try to find package.json by traversing upwards
3838- while (currentDir != null) {
3939- File potential = new File(currentDir, "package.json")
@@ -54,22 +54,21 @@ index d36fd855813e87b17da43156be64782b325b2733..751355645c0b6e28e2df01e9bdc32f54
5454-
5555- if(opsqliteConfig) {
5656- println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + packageJsonFile.absolutePath
57- - useSQLCipher = opsqliteConfig["sqlcipher"]
58- - useCRSQLite = opsqliteConfig["crsqlite"]
59- - useSqliteVec = opsqliteConfig["sqliteVec"]
57+ - useSQLCipher = !! opsqliteConfig["sqlcipher"]
58+ - useCRSQLite = !! opsqliteConfig["crsqlite"]
59+ - useSqliteVec = !! opsqliteConfig["sqliteVec"]
6060- performanceMode = opsqliteConfig["performanceMode"]
6161- sqliteFlags = opsqliteConfig["sqliteFlags"] ? opsqliteConfig["sqliteFlags"] : ""
62- - enableFTS5 = opsqliteConfig["fts5"]
63- - useLibsql = opsqliteConfig["libsql"]
64- - enableRtree = opsqliteConfig["rtree"]
62+ - enableFTS5 = !! opsqliteConfig["fts5"]
63+ - useLibsql = !! opsqliteConfig["libsql"]
64+ - enableRtree = !! opsqliteConfig["rtree"]
6565- tokenizers = opsqliteConfig["tokenizers"] ? opsqliteConfig["tokenizers"] : []
6666- }
67- -
67+
6868 if(useSQLCipher) {
6969 println "[OP-SQLITE] using sqlcipher."
70- } else if(useLibsql) {
7170diff --git a/android/cpp-adapter.cpp b/android/cpp-adapter.cpp
72- index 8feaf7719661ef248113f11b1643deedb4b510af..2393963bf982f80ccff2ed396f1538be7ee18fcb 100644
71+ index 5912d7b..495880e 100644
7372--- a/android/cpp-adapter.cpp
7473+++ b/android/cpp-adapter.cpp
7574@@ -19,8 +19,8 @@ struct OPSQLiteBridge : jni::JavaClass<OPSQLiteBridge> {
@@ -95,7 +94,7 @@ index 8feaf7719661ef248113f11b1643deedb4b510af..2393963bf982f80ccff2ed396f1538be
9594
9695 JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *) {
9796diff --git a/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt b/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt
98- index 44f86df6a21a6f7272b2c79b196586ef8fec886b..9d9f7100fd34361701b2addf09a4f36e33b35d56 100644
97+ index 44f86df..8c003db 100644
9998--- a/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt
10099+++ b/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt
101100@@ -12,6 +12,7 @@ class OPSQLiteBridge {
@@ -110,49 +109,50 @@ index 44f86df6a21a6f7272b2c79b196586ef8fec886b..9d9f7100fd34361701b2addf09a4f36e
110109 clearStateNativeJsi()
111110 }
112111
113- + fun deleteAllDBs() {
114- + deleteAllDBsJsi()
112+ + fun deleteAllDBs(): Boolean {
113+ + return deleteAllDBsJsi()
115114+ }
116115+
117116 companion object {
118117 val instance = OPSQLiteBridge()
119118 }
120119diff --git a/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt b/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt
121- index 688832fa2f9a7f91d16cd50495caa8c9f8873864..9ea814bfa63f27356e804b82e941b7121152db3a 100644
120+ index 8d341b7..33d3d7d 100644
122121--- a/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt
123122+++ b/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt
124- @@ -13,7 +13,7 @@ import java.io.OutputStream
123+ @@ -12,7 +12,7 @@ import java.io.InputStream
124+ import java.io.OutputStream
125125 import com.facebook.react.util.RNLog;
126126
127- //@ReactModule(name = OPSQLiteModule.NAME)
128127- internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) {
129128+ class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) {
130129 override fun getName(): String {
131130 return NAME
132131 }
133- @@ -56 ,6 +56,17 @@ internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextB
134- return true
132+ @@ -54 ,6 +54,18 @@ internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextB
133+ throw Exception("Do not call getDylibPath on Android")
135134 }
136135
137136+ @ReactMethod(isBlockingSynchronousMethod = true)
138- + fun closeAllConnections() {
137+ + fun closeAllConnections(): Boolean {
139138+ OPSQLiteBridge.instance.invalidate()
139+ + return true
140140+ }
141141+
142142+ @ReactMethod(isBlockingSynchronousMethod = true)
143- + fun deleteAllDBs() {
144- + OPSQLiteBridge.instance.deleteAllDBs();
143+ + fun deleteAllDBs(): Boolean {
144+ + return OPSQLiteBridge.instance.deleteAllDBs();
145145+ }
146146+
147147+
148148 @ReactMethod
149149 fun moveAssetsDatabase(args: ReadableMap, promise: Promise) {
150150 val filename = args.getString("filename")!!
151151diff --git a/cpp/DBHostObject.cpp b/cpp/DBHostObject.cpp
152- index 85710eea286d45685aa526ed3851e8f1e1411039..8cf10f21ba467dea430aab106d43dd4e2adeacd6 100644
152+ index 9682941..c0b9c21 100644
153153--- a/cpp/DBHostObject.cpp
154154+++ b/cpp/DBHostObject.cpp
155- @@ -889 ,6 +889 ,10 @@ void DBHostObject::invalidate() {
155+ @@ -682 ,6 +682 ,10 @@ void DBHostObject::invalidate() {
156156 #endif
157157 }
158158
@@ -164,23 +164,23 @@ index 85710eea286d45685aa526ed3851e8f1e1411039..8cf10f21ba467dea430aab106d43dd4e
164164
165165 } // namespace opsqlite
166166diff --git a/cpp/DBHostObject.h b/cpp/DBHostObject.h
167- index cc174b7c8c5ce500a6ffe5dc6fe092d282d2554c..ff36f742a22b8a84f37d6dd28441dbe9d0c6c873 100644
167+ index 002b8c9..f3a2e1f 100644
168168--- a/cpp/DBHostObject.h
169169+++ b/cpp/DBHostObject.h
170- @@ -73 ,6 +73 ,7 @@ class JSI_EXPORT DBHostObject : public jsi::HostObject {
171- void on_commit();
172- void on_rollback();
173- void invalidate();
174- + void drop();
175- ~DBHostObject() override;
170+ @@ -68 ,6 +68 ,7 @@ public:
171+ void on_commit();
172+ void on_rollback();
173+ void invalidate();
174+ + void drop();
175+ ~DBHostObject() override;
176176
177- private:
178- diff --git a/cpp/bindings .cpp b/cpp/bindings .cpp
179- index 5e1c1de234e7bdb131769728fc862d389f9995a5..dc21c6503ffe18f3ae1cf99f327e8aa1fc587b71 100644
180- --- a/cpp/bindings .cpp
181- +++ b/cpp/bindings .cpp
182- @@ -36 ,6 +36 ,13 @@ void invalidate() {
183- dbs.clear();
177+ private:
178+ diff --git a/cpp/OPSqlite .cpp b/cpp/OPSqlite .cpp
179+ index e33579a..791fa70 100644
180+ --- a/cpp/OPSqlite .cpp
181+ +++ b/cpp/OPSqlite .cpp
182+ @@ -42 ,6 +42 ,13 @@ void invalidate() {
183+ dbs.clear();
184184 }
185185
186186+ bool deleteAllDbs() {
@@ -191,12 +191,12 @@ index 5e1c1de234e7bdb131769728fc862d389f9995a5..dc21c6503ffe18f3ae1cf99f327e8aa1
191191+ }
192192+
193193 void install(jsi::Runtime &rt,
194- const std::shared_ptr<react::CallInvoker> &invoker ,
194+ const std::shared_ptr<react::CallInvoker> &_invoker ,
195195 const char *base_path, const char *crsqlite_path,
196- diff --git a/cpp/bindings.h b/cpp/bindings.h
197- index 91511ab8dff0cbd34c6b8b844c1783c39d4317cb..cc73dfe4405d568cbfbbfa5a9c879a1d88f260bf 100644
198- --- a/cpp/bindings.h
199- +++ b/cpp/bindings.h
196+ diff --git a/cpp/OPSqlite.hpp b/cpp/OPSqlite.hpp
197+ index 91511ab..cc73dfe 100644
198+ --- a/cpp/OPSqlite.hpp
199+ +++ b/cpp/OPSqlite.hpp
200200@@ -14,6 +14,7 @@ void install(jsi::Runtime &rt,
201201 const char *base_path, const char *crsqlite_path,
202202 const char *sqlite_vec_path);
@@ -206,17 +206,17 @@ index 91511ab8dff0cbd34c6b8b844c1783c39d4317cb..cc73dfe4405d568cbfbbfa5a9c879a1d
206206
207207 } // namespace opsqlite
208208diff --git a/op-sqlite.podspec b/op-sqlite.podspec
209- index 375cc3ef0838a3cffb87ec970f636880a8676bb3..e6fce21630ed00aa863f2baae7b3d04de783dcb0 100644
209+ index e717811..147f516 100644
210210--- a/op-sqlite.podspec
211211+++ b/op-sqlite.podspec
212212@@ -1,4 +1,3 @@
213213- require "json"
214214 require_relative "./generate_tokenizers_header_file"
215215
216216 log_message = lambda do |message|
217- @@ -39 ,11 +38 ,10 @@ else
218- app_package = JSON.parse(File.read(File.join(__dir__, "example", "package.json")))
219- end
217+ @@ -38 ,11 +37 ,10 @@ end
218+
219+ app_package = JSON.parse(File.read(package_json_path))
220220
221221- op_sqlite_config = app_package["op-sqlite"]
222222- use_sqlcipher = false
@@ -228,7 +228,7 @@ index 375cc3ef0838a3cffb87ec970f636880a8676bb3..e6fce21630ed00aa863f2baae7b3d04d
228228 phone_version = false
229229 sqlite_flags = ""
230230 fts5 = false
231- @@ -51,37 +49,6 @@ rtree = false
231+ @@ -50,36 +48,7 @@ rtree = false
232232 use_sqlite_vec = false
233233 tokenizers = []
234234
@@ -247,22 +247,34 @@ index 375cc3ef0838a3cffb87ec970f636880a8676bb3..e6fce21630ed00aa863f2baae7b3d04d
247247-
248248- if phone_version then
249249- if use_sqlcipher then
250- - raise "SQLCipher is not supported with phone version"
250+ - raise "SQLCipher is not supported with phone version. It cannot load extensions. "
251251- end
252252-
253253- if use_crsqlite then
254- - raise "CRSQLite is not supported with phone version"
254+ - raise "CRSQLite is not supported with phone version. It cannot load extensions. "
255255- end
256- -
256+
257257- if rtree then
258- - raise "RTree is not supported with phone version"
258+ - raise "RTree is not supported with phone version. It cannot load extensions. "
259259- end
260260-
261261- if use_sqlite_vec then
262- - raise "SQLite Vec is not supported with phone version"
262+ - raise "SQLite Vec is not supported with phone version. It cannot load extensions. "
263263- end
264264- end
265- -
265+
266266 Pod::Spec.new do |s|
267267 s.name = "op-sqlite"
268- s.version = package["version"]
268+ @@ -158,12 +127,6 @@ Pod::Spec.new do |s|
269+ xcconfig[:GCC_PREPROCESSOR_DEFINITIONS] += " SQLITE_ENABLE_RTREE=1"
270+ end
271+
272+ - if phone_version then
273+ - log_message.call("[OP-SQLITE] using iOS embedded SQLite 📱")
274+ - xcconfig[:GCC_PREPROCESSOR_DEFINITIONS] += " OP_SQLITE_USE_PHONE_VERSION=1"
275+ - exclude_files += ["cpp/sqlite3.c", "cpp/sqlite3.h"]
276+ - s.library = "sqlite3"
277+ - end
278+
279+ if performance_mode then
280+ log_message.call("[OP-SQLITE] Performance mode enabled")
0 commit comments