@op-engineering/op-sqlite 6.0.2-beta3 → 6.0.4

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.
@@ -5,6 +5,7 @@
5
5
  #else
6
6
  #include "bridge.h"
7
7
  #endif
8
+ #include "logs.h"
8
9
  #include "macros.h"
9
10
  #include "utils.h"
10
11
  #include <iostream>
@@ -26,7 +27,7 @@ void DBHostObject::auto_register_update_hook() {
26
27
  return;
27
28
  }
28
29
 
29
- auto hook = [this](std::string dbName, std::string table_name,
30
+ auto hook = [this](std::string name, std::string table_name,
30
31
  std::string operation, int rowId) {
31
32
  if (update_hook_callback != nullptr) {
32
33
  std::vector<JSVariant> params;
@@ -37,17 +38,17 @@ void DBHostObject::auto_register_update_hook() {
37
38
  if (operation != "DELETE") {
38
39
  std::string query = "SELECT * FROM " + table_name +
39
40
  " where rowid = " + std::to_string(rowId) + ";";
40
- opsqlite_execute(dbName, query, &params, &results, metadata);
41
+ opsqlite_execute(name, query, &params, &results, metadata);
41
42
  }
42
43
 
43
44
  jsCallInvoker->invokeAsync(
44
45
  [this,
45
46
  results = std::make_shared<std::vector<DumbHostObject>>(results),
46
- callback = update_hook_callback, tableName = std::move(table_name),
47
+ callback = update_hook_callback, table_name,
47
48
  operation = std::move(operation), &rowId] {
48
49
  auto res = jsi::Object(rt);
49
50
  res.setProperty(rt, "table",
50
- jsi::String::createFromUtf8(rt, tableName));
51
+ jsi::String::createFromUtf8(rt, table_name));
51
52
  res.setProperty(rt, "operation",
52
53
  jsi::String::createFromUtf8(rt, operation));
53
54
  res.setProperty(rt, "rowId", jsi::Value(rowId));
@@ -63,7 +64,6 @@ void DBHostObject::auto_register_update_hook() {
63
64
  }
64
65
 
65
66
  for (const auto &query_ptr : reactive_queries) {
66
-
67
67
  auto query = query_ptr.get();
68
68
  if (query->discriminators.size() == 0) {
69
69
  continue;
@@ -75,7 +75,6 @@ void DBHostObject::auto_register_update_hook() {
75
75
  if (discriminator.table != table_name) {
76
76
  continue;
77
77
  }
78
-
79
78
  // Table has matched
80
79
 
81
80
  // If no ids are specified, then we should fire
@@ -137,6 +136,23 @@ void DBHostObject::auto_register_update_hook() {
137
136
  }
138
137
  #endif
139
138
 
139
+ #ifdef OP_SQLITE_USE_LIBSQL
140
+ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &url,
141
+ std::string &auth_token,
142
+ std::shared_ptr<react::CallInvoker> js_call_invoker,
143
+ std::shared_ptr<ThreadPool> thread_pool)
144
+ : db_name(url), jsCallInvoker(js_call_invoker), thread_pool(thread_pool),
145
+ rt(rt) {
146
+ BridgeResult result = opsqlite_libsql_open_remote(url, auth_token);
147
+
148
+ if (result.type == SQLiteError) {
149
+ throw std::runtime_error(result.message);
150
+ }
151
+
152
+ create_jsi_functions();
153
+ }
154
+ #endif
155
+
140
156
  DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
141
157
  std::shared_ptr<react::CallInvoker> jsCallInvoker,
142
158
  std::shared_ptr<ThreadPool> thread_pool,
@@ -159,6 +175,10 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
159
175
  throw std::runtime_error(result.message);
160
176
  }
161
177
 
178
+ create_jsi_functions();
179
+ };
180
+
181
+ void DBHostObject::create_jsi_functions() {
162
182
  auto attach = HOSTFN("attach", 4) {
163
183
  if (count < 3) {
164
184
  throw jsi::JSError(rt,
@@ -311,11 +331,11 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
311
331
  }
312
332
 
313
333
  auto promiseCtr = rt.global().getPropertyAsFunction(rt, "Promise");
314
- auto promise = promiseCtr.callAsConstructor(rt, HOSTFN("executor", 2) {
334
+ auto promise = promiseCtr.callAsConstructor(rt, HOSTFN("executor", 2) {
315
335
  auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
316
336
  auto reject = std::make_shared<jsi::Value>(rt, args[1]);
317
337
 
318
- auto task = [&rt, db_name, query, params = std::move(params), resolve,
338
+ auto task = [&rt, this, query, params = std::move(params), resolve,
319
339
  reject, invoker = this->jsCallInvoker]() {
320
340
  try {
321
341
  std::vector<std::vector<JSVariant>> results;
@@ -360,7 +380,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
360
380
  return {};
361
381
  }));
362
382
 
363
- return promise;
383
+ return promise;
364
384
  });
365
385
 
366
386
  auto execute_async = HOSTFN("executeAsync", 2) {
@@ -377,7 +397,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
377
397
  auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
378
398
  auto reject = std::make_shared<jsi::Value>(rt, args[1]);
379
399
 
380
- auto task = [&rt, &db_name, query, params = std::move(params), resolve,
400
+ auto task = [&rt, this, query, params = std::move(params), resolve,
381
401
  reject, invoker = this->jsCallInvoker]() {
382
402
  try {
383
403
  std::vector<DumbHostObject> results;
@@ -486,7 +506,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
486
506
  auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
487
507
  auto reject = std::make_shared<jsi::Value>(rt, args[1]);
488
508
 
489
- auto task = [&rt, &db_name, &jsCallInvoker,
509
+ auto task = [&rt, this,
490
510
  commands =
491
511
  std::make_shared<std::vector<BatchArguments>>(commands),
492
512
  resolve, reject]() {
@@ -540,8 +560,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
540
560
  auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
541
561
  auto reject = std::make_shared<jsi::Value>(rt, args[1]);
542
562
 
543
- auto task = [&rt, &db_name, &jsCallInvoker, sqlFileName, resolve,
544
- reject]() {
563
+ auto task = [&rt, this, sqlFileName, resolve, reject]() {
545
564
  try {
546
565
  const auto importResult = importSQLFile(db_name, sqlFileName);
547
566
 
@@ -597,7 +616,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
597
616
  }
598
617
  commit_hook_callback = callback;
599
618
 
600
- auto hook = [&rt, jsCallInvoker, callback](std::string dbName) {
619
+ auto hook = [&rt, this, callback](std::string dbName) {
601
620
  jsCallInvoker->invokeAsync(
602
621
  [&rt, callback] { callback->asObject(rt).asFunction(rt).call(rt); });
603
622
  };
@@ -621,7 +640,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
621
640
  }
622
641
  rollback_hook_callback = callback;
623
642
 
624
- auto hook = [&rt, jsCallInvoker, callback](std::string db_name) {
643
+ auto hook = [&rt, this, callback](std::string db_name) {
625
644
  jsCallInvoker->invokeAsync(
626
645
  [&rt, callback] { callback->asObject(rt).asFunction(rt).call(rt); });
627
646
  };
@@ -764,6 +783,8 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
764
783
  function_map["delete"] = std::move(remove);
765
784
  function_map["executeBatch"] = std::move(execute_batch);
766
785
  function_map["executeBatchAsync"] = std::move(execute_batch_async);
786
+ function_map["prepareStatement"] = std::move(prepare_statement);
787
+ function_map["getDbPath"] = std::move(get_db_path);
767
788
  #ifndef OP_SQLITE_USE_LIBSQL
768
789
  function_map["loadFile"] = std::move(load_file);
769
790
  function_map["updateHook"] = std::move(update_hook);
@@ -772,9 +793,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
772
793
  function_map["loadExtension"] = std::move(load_extension);
773
794
  function_map["reactiveExecute"] = std::move(reactive_execute);
774
795
  #endif
775
- function_map["prepareStatement"] = std::move(prepare_statement);
776
- function_map["getDbPath"] = std::move(get_db_path);
777
- };
796
+ }
778
797
 
779
798
  std::vector<jsi::PropNameID> DBHostObject::getPropertyNames(jsi::Runtime &rt) {
780
799
  std::vector<jsi::PropNameID> keys;
@@ -1,5 +1,4 @@
1
- #ifndef DBHostObject_h
2
- #define DBHostObject_h
1
+ #pragma once
3
2
 
4
3
  #include "ThreadPool.h"
5
4
  #include "sqlite3.h"
@@ -34,16 +33,23 @@ public:
34
33
  std::string &path, std::string &crsqlite_path,
35
34
  std::string &encryption_key);
36
35
 
36
+ #ifdef OP_SQLITE_USE_LIBSQL
37
+ DBHostObject(jsi::Runtime &rt, std::string &url, std::string &auth_token,
38
+ std::shared_ptr<react::CallInvoker> js_call_invoker,
39
+ std::shared_ptr<ThreadPool> thread_pool);
40
+ #endif
41
+
37
42
  std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt);
38
43
  jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propNameID);
39
44
  void set(jsi::Runtime &rt, const jsi::PropNameID &name,
40
45
  const jsi::Value &value);
41
46
 
47
+ private:
42
48
  void auto_register_update_hook();
49
+ void create_jsi_functions();
43
50
 
44
51
  std::unordered_map<std::string, jsi::Value> function_map;
45
52
  std::string base_path;
46
-
47
53
  std::shared_ptr<jsi::Value> update_hook;
48
54
  std::shared_ptr<react::CallInvoker> jsCallInvoker;
49
55
  std::shared_ptr<ThreadPool> thread_pool;
@@ -57,5 +63,3 @@ public:
57
63
  };
58
64
 
59
65
  } // namespace opsqlite
60
-
61
- #endif /* DBHostObject_h */
package/cpp/bindings.cpp CHANGED
@@ -19,9 +19,9 @@ namespace opsqlite {
19
19
 
20
20
  namespace jsi = facebook::jsi;
21
21
 
22
- std::string basePath;
23
- std::string crsqlitePath;
24
- std::shared_ptr<react::CallInvoker> invoker;
22
+ std::string _base_path;
23
+ std::string _crsqlite_path;
24
+ std::shared_ptr<react::CallInvoker> _invoker;
25
25
  std::shared_ptr<ThreadPool> thread_pool = std::make_shared<ThreadPool>();
26
26
 
27
27
  // React native will try to clean the module on JS context invalidation
@@ -31,29 +31,28 @@ bool invalidated = false;
31
31
 
32
32
  void clearState() {
33
33
  invalidated = true;
34
- // Will terminate all operations and database connections
35
- // opsqlite_close_all();
34
+
35
+ #ifdef OP_SQLITE_USE_LIBSQL
36
+ opsqlite_libsql_close_all();
37
+ #else
38
+ opsqlite_close_all();
39
+ #endif
40
+
36
41
  // We then join all the threads before the context gets invalidated
37
42
  thread_pool->restartPool();
38
43
  }
39
44
 
40
- void install(jsi::Runtime &rt,
41
- std::shared_ptr<react::CallInvoker> js_call_invoker,
42
- const char *doc_path, const char *_crsqlitePath) {
43
-
45
+ void install(jsi::Runtime &rt, std::shared_ptr<react::CallInvoker> invoker,
46
+ const char *base_path, const char *crsqlite_path) {
44
47
  invalidated = false;
45
- basePath = std::string(doc_path);
46
- crsqlitePath = std::string(_crsqlitePath);
47
- invoker = js_call_invoker;
48
-
49
- auto open = HOSTFN("open", 3) {
50
- if (count == 0) {
51
- throw std::runtime_error("[op-sqlite][open] database name is required");
52
- }
48
+ _base_path = std::string(base_path);
49
+ _crsqlite_path = std::string(crsqlite_path);
50
+ _invoker = invoker;
53
51
 
52
+ auto open = HOSTFN("open", 1) {
54
53
  jsi::Object options = args[0].asObject(rt);
55
- std::string dbName = options.getProperty(rt, "name").asString(rt).utf8(rt);
56
- std::string path = std::string(basePath);
54
+ std::string name = options.getProperty(rt, "name").asString(rt).utf8(rt);
55
+ std::string path = std::string(_base_path);
57
56
  std::string location;
58
57
  std::string encryptionKey;
59
58
 
@@ -83,9 +82,9 @@ void install(jsi::Runtime &rt,
83
82
  }
84
83
  }
85
84
 
86
- std::shared_ptr<DBHostObject> db = std::make_shared<DBHostObject>(
87
- rt, basePath, invoker, thread_pool, dbName, path, crsqlitePath,
88
- encryptionKey);
85
+ std::shared_ptr<DBHostObject> db =
86
+ std::make_shared<DBHostObject>(rt, path, invoker, thread_pool, name,
87
+ path, _crsqlite_path, encryptionKey);
89
88
  return jsi::Object::createFromHostObject(rt, db);
90
89
  });
91
90
 
@@ -105,10 +104,26 @@ void install(jsi::Runtime &rt,
105
104
  #endif
106
105
  });
107
106
 
107
+ #ifdef OP_SQLITE_USE_LIBSQL
108
+ auto open_remote = HOSTFN("openRemote", 1) {
109
+ jsi::Object options = args[0].asObject(rt);
110
+ std::string url = options.getProperty(rt, "url").asString(rt).utf8(rt);
111
+ std::string auth_token =
112
+ options.getProperty(rt, "authToken").asString(rt).utf8(rt);
113
+
114
+ std::shared_ptr<DBHostObject> db = std::make_shared<DBHostObject>(
115
+ rt, url, auth_token, invoker, thread_pool);
116
+ return jsi::Object::createFromHostObject(rt, db);
117
+ });
118
+ #endif
119
+
108
120
  jsi::Object module = jsi::Object(rt);
109
121
  module.setProperty(rt, "open", std::move(open));
110
122
  module.setProperty(rt, "isSQLCipher", std::move(is_sqlcipher));
111
123
  module.setProperty(rt, "isLibsql", std::move(is_libsql));
124
+ #ifdef OP_SQLITE_USE_LIBSQL
125
+ module.setProperty(rt, "openRemote", std::move(open_remote));
126
+ #endif
112
127
 
113
128
  rt.global().setProperty(rt, "__OPSQLiteProxy", std::move(module));
114
129
  }
package/cpp/bindings.h CHANGED
@@ -9,9 +9,8 @@ namespace opsqlite {
9
9
  namespace jsi = facebook::jsi;
10
10
  namespace react = facebook::react;
11
11
 
12
- void install(jsi::Runtime &rt,
13
- std::shared_ptr<react::CallInvoker> jsCallInvoker,
14
- const char *docPath, const char *crsqlitePath);
12
+ void install(jsi::Runtime &rt, std::shared_ptr<react::CallInvoker> invoker,
13
+ const char *base_path, const char *crsqlite_path);
15
14
  void clearState();
16
15
 
17
16
  } // namespace opsqlite
@@ -42,15 +42,8 @@ std::string opsqlite_get_db_path(std::string const &db_name,
42
42
  return location + "/" + db_name;
43
43
  }
44
44
 
45
- #ifdef OP_SQLITE_USE_SQLCIPHER
46
- BridgeResult opsqlite_open(std::string const &dbName,
47
- std::string const &last_path,
48
- std::string const &crsqlitePath,
49
- std::string const &encryptionKey) {
50
- #else
51
45
  BridgeResult opsqlite_libsql_open(std::string const &name,
52
46
  std::string const &last_path) {
53
- #endif
54
47
  std::string path = opsqlite_get_db_path(name, last_path);
55
48
 
56
49
  int status = 0;
@@ -72,10 +65,29 @@ BridgeResult opsqlite_libsql_open(std::string const &name,
72
65
 
73
66
  db_map[name] = {.db = db, .c = c};
74
67
 
75
- #ifdef OP_SQLITE_USE_SQLCIPHER
76
- opsqlite_execute(dbName, "PRAGMA key = '" + encryptionKey + "'", nullptr,
77
- nullptr, nullptr);
78
- #endif
68
+ return {.type = SQLiteOk, .affectedRows = 0};
69
+ }
70
+
71
+ BridgeResult opsqlite_libsql_open_remote(std::string const &url,
72
+ std::string const &auth_token) {
73
+ int status = 0;
74
+ libsql_database_t db;
75
+ libsql_connection_t c;
76
+ const char *err = NULL;
77
+
78
+ status = libsql_open_remote(url.c_str(), auth_token.c_str(), &db, &err);
79
+
80
+ if (status != 0) {
81
+ return {.type = SQLiteError, .message = err};
82
+ }
83
+
84
+ status = libsql_connect(db, &c, &err);
85
+
86
+ if (status != 0) {
87
+ return {.type = SQLiteError, .message = err};
88
+ }
89
+
90
+ db_map[url] = {.db = db, .c = c};
79
91
 
80
92
  return {.type = SQLiteOk, .affectedRows = 0};
81
93
  }
@@ -96,6 +108,15 @@ BridgeResult opsqlite_libsql_close(std::string const &name) {
96
108
  };
97
109
  }
98
110
 
111
+ void opsqlite_libsql_close_all() {
112
+ // for (auto const &db : db_map) {
113
+ // libsql_close();
114
+ // }
115
+ for (auto const &db : db_map) {
116
+ opsqlite_libsql_close(db.first);
117
+ }
118
+ }
119
+
99
120
  BridgeResult opsqlite_libsql_attach(std::string const &mainDBName,
100
121
  std::string const &docPath,
101
122
  std::string const &databaseToAttach,
@@ -160,8 +181,6 @@ BridgeResult opsqlite_libsql_remove(std::string const &name,
160
181
 
161
182
  void opsqlite_libsql_bind_statement(libsql_stmt_t statement,
162
183
  const std::vector<JSVariant> *values) {
163
-
164
- // sqlite3_clear_bindings(statement);
165
184
  const char *err;
166
185
  size_t size = values->size();
167
186
 
@@ -30,6 +30,9 @@ std::string opsqlite_get_db_path(std::string const &name,
30
30
  BridgeResult opsqlite_libsql_open(std::string const &name,
31
31
  std::string const &path);
32
32
 
33
+ BridgeResult opsqlite_libsql_open_remote(std::string const &url,
34
+ std::string const &auth_token);
35
+
33
36
  BridgeResult opsqlite_libsql_close(std::string const &name);
34
37
 
35
38
  BridgeResult opsqlite_libsql_remove(std::string const &name,
@@ -57,18 +60,7 @@ BatchResult
57
60
  opsqlite_libsql_execute_batch(std::string const &name,
58
61
  std::vector<BatchArguments> *commands);
59
62
 
60
- // void opsqlite_close_all();
61
-
62
- // BridgeResult opsqlite_register_update_hook(std::string const &dbName,
63
- // UpdateCallback const callback);
64
- // BridgeResult opsqlite_deregister_update_hook(std::string const &dbName);
65
- // BridgeResult opsqlite_register_commit_hook(std::string const &dbName,
66
- // CommitCallback const callback);
67
- // BridgeResult opsqlite_deregister_commit_hook(std::string const &dbName);
68
- // BridgeResult opsqlite_register_rollback_hook(std::string const &dbName,
69
- // RollbackCallback const
70
- // callback);
71
- // BridgeResult opsqlite_deregister_rollback_hook(std::string const &dbName);
63
+ void opsqlite_libsql_close_all();
72
64
 
73
65
  libsql_stmt_t opsqlite_libsql_prepare_statement(std::string const &name,
74
66
  std::string const &query);
@@ -81,8 +73,4 @@ BridgeResult opsqlite_libsql_execute_prepared_statement(
81
73
  std::vector<DumbHostObject> *results,
82
74
  std::shared_ptr<std::vector<SmartHostObject>> metadatas);
83
75
 
84
- // BridgeResult opsqlite_load_extension(std::string const &db_name,
85
- // std::string &path,
86
- // std::string &entry_point);
87
-
88
76
  } // namespace opsqlite
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.open = exports.moveAssetsDatabase = exports.isSQLCipher = exports.isLibsql = exports.OPSQLite = exports.IOS_LIBRARY_PATH = exports.IOS_DOCUMENT_PATH = exports.ANDROID_FILES_PATH = exports.ANDROID_EXTERNAL_FILES_PATH = exports.ANDROID_DATABASE_PATH = void 0;
6
+ exports.openRemote = exports.open = exports.moveAssetsDatabase = exports.isSQLCipher = exports.isLibsql = exports.OPSQLite = exports.IOS_LIBRARY_PATH = exports.IOS_DOCUMENT_PATH = exports.ANDROID_FILES_PATH = exports.ANDROID_EXTERNAL_FILES_PATH = exports.ANDROID_DATABASE_PATH = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  // import NativeOPSQLite from './NativeOPSQLite';
9
9
 
@@ -91,6 +91,168 @@ function enhanceQueryResult(result) {
91
91
  result.rows.item = idx => result.rows?._array[idx];
92
92
  }
93
93
  }
94
+
95
+ // TODO de-dupe this function with open
96
+ const openRemote = options => {
97
+ if (!isLibsql()) {
98
+ throw new Error('This function is only available for libsql');
99
+ }
100
+ const db = OPSQLite.openRemote(options);
101
+ const lock = {
102
+ queue: [],
103
+ inProgress: false
104
+ };
105
+ const startNextTransaction = () => {
106
+ if (lock.inProgress) {
107
+ // Transaction is already in process bail out
108
+ return;
109
+ }
110
+ if (lock.queue.length) {
111
+ lock.inProgress = true;
112
+ const tx = lock.queue.shift();
113
+ if (!tx) {
114
+ throw new Error('Could not get a operation on database');
115
+ }
116
+ setImmediate(() => {
117
+ tx.start();
118
+ });
119
+ }
120
+ };
121
+
122
+ // spreading the object is not working, so we need to do it manually
123
+ let enhancedDb = {
124
+ delete: db.delete,
125
+ attach: db.attach,
126
+ detach: db.detach,
127
+ executeBatch: db.executeBatch,
128
+ executeBatchAsync: db.executeBatchAsync,
129
+ loadFile: db.loadFile,
130
+ updateHook: db.updateHook,
131
+ commitHook: db.commitHook,
132
+ rollbackHook: db.rollbackHook,
133
+ loadExtension: db.loadExtension,
134
+ executeRawAsync: db.executeRawAsync,
135
+ getDbPath: db.getDbPath,
136
+ reactiveExecute: db.reactiveExecute,
137
+ close: () => {
138
+ db.close();
139
+ delete locks[options.url];
140
+ },
141
+ execute: (query, params) => {
142
+ const sanitizedParams = params?.map(p => {
143
+ if (ArrayBuffer.isView(p)) {
144
+ return p.buffer;
145
+ }
146
+ return p;
147
+ });
148
+ const result = db.execute(query, sanitizedParams);
149
+ enhanceQueryResult(result);
150
+ return result;
151
+ },
152
+ executeAsync: async (query, params) => {
153
+ const sanitizedParams = params?.map(p => {
154
+ if (ArrayBuffer.isView(p)) {
155
+ return p.buffer;
156
+ }
157
+ return p;
158
+ });
159
+ const result = await db.executeAsync(query, sanitizedParams);
160
+ enhanceQueryResult(result);
161
+ return result;
162
+ },
163
+ prepareStatement: query => {
164
+ const stmt = db.prepareStatement(query);
165
+ return {
166
+ bind: params => {
167
+ const sanitizedParams = params.map(p => {
168
+ if (ArrayBuffer.isView(p)) {
169
+ return p.buffer;
170
+ }
171
+ return p;
172
+ });
173
+ stmt.bind(sanitizedParams);
174
+ },
175
+ execute: () => {
176
+ const res = stmt.execute();
177
+ enhanceQueryResult(res);
178
+ return res;
179
+ }
180
+ };
181
+ },
182
+ transaction: async fn => {
183
+ let isFinalized = false;
184
+
185
+ // Local transaction context object implementation
186
+ const execute = (query, params) => {
187
+ if (isFinalized) {
188
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
189
+ }
190
+ return enhancedDb.execute(query, params);
191
+ };
192
+ const executeAsync = (query, params) => {
193
+ if (isFinalized) {
194
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
195
+ }
196
+ return enhancedDb.executeAsync(query, params);
197
+ };
198
+ const commit = () => {
199
+ if (isFinalized) {
200
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
201
+ }
202
+ const result = enhancedDb.execute('COMMIT;');
203
+ isFinalized = true;
204
+ return result;
205
+ };
206
+ const rollback = () => {
207
+ if (isFinalized) {
208
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
209
+ }
210
+ const result = enhancedDb.execute('ROLLBACK;');
211
+ isFinalized = true;
212
+ return result;
213
+ };
214
+ async function run() {
215
+ try {
216
+ await enhancedDb.executeAsync('BEGIN TRANSACTION;');
217
+ await fn({
218
+ commit,
219
+ execute,
220
+ executeAsync,
221
+ rollback
222
+ });
223
+ if (!isFinalized) {
224
+ commit();
225
+ }
226
+ } catch (executionError) {
227
+ console.warn('transaction error', executionError);
228
+ if (!isFinalized) {
229
+ try {
230
+ rollback();
231
+ } catch (rollbackError) {
232
+ throw rollbackError;
233
+ }
234
+ }
235
+ throw executionError;
236
+ } finally {
237
+ lock.inProgress = false;
238
+ isFinalized = false;
239
+ startNextTransaction();
240
+ }
241
+ }
242
+ return await new Promise((resolve, reject) => {
243
+ const tx = {
244
+ start: () => {
245
+ run().then(resolve).catch(reject);
246
+ }
247
+ };
248
+ lock.queue.push(tx);
249
+ startNextTransaction();
250
+ });
251
+ }
252
+ };
253
+ return enhancedDb;
254
+ };
255
+ exports.openRemote = openRemote;
94
256
  const open = options => {
95
257
  const db = OPSQLite.open(options);
96
258
  const lock = {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","global","__OPSQLiteProxy","NativeModules","OPSQLite","Error","install","result","proxy","exports","IOS_DOCUMENT_PATH","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","ANDROID_FILES_PATH","ANDROID_EXTERNAL_FILES_PATH","getConstants","locks","enhanceQueryResult","rows","_array","length","item","idx","open","options","db","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","executeBatchAsync","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRawAsync","getDbPath","reactiveExecute","close","name","execute","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","executeAsync","prepareStatement","stmt","bind","res","transaction","fn","isFinalized","commit","rollback","run","executionError","console","warn","rollbackError","Promise","resolve","reject","then","catch","push","moveAssetsDatabase","args","isSQLCipher","isLibsql"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","global","__OPSQLiteProxy","NativeModules","OPSQLite","Error","install","result","proxy","exports","IOS_DOCUMENT_PATH","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","ANDROID_FILES_PATH","ANDROID_EXTERNAL_FILES_PATH","getConstants","locks","enhanceQueryResult","rows","_array","length","item","idx","openRemote","options","isLibsql","db","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","executeBatchAsync","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRawAsync","getDbPath","reactiveExecute","close","url","execute","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","executeAsync","prepareStatement","stmt","bind","res","transaction","fn","isFinalized","commit","rollback","run","executionError","console","warn","rollbackError","Promise","resolve","reject","then","catch","push","open","name","moveAssetsDatabase","args","isSQLCipher"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -80,6 +80,167 @@ function enhanceQueryResult(result) {
80
80
  result.rows.item = idx => result.rows?._array[idx];
81
81
  }
82
82
  }
83
+
84
+ // TODO de-dupe this function with open
85
+ export const openRemote = options => {
86
+ if (!isLibsql()) {
87
+ throw new Error('This function is only available for libsql');
88
+ }
89
+ const db = OPSQLite.openRemote(options);
90
+ const lock = {
91
+ queue: [],
92
+ inProgress: false
93
+ };
94
+ const startNextTransaction = () => {
95
+ if (lock.inProgress) {
96
+ // Transaction is already in process bail out
97
+ return;
98
+ }
99
+ if (lock.queue.length) {
100
+ lock.inProgress = true;
101
+ const tx = lock.queue.shift();
102
+ if (!tx) {
103
+ throw new Error('Could not get a operation on database');
104
+ }
105
+ setImmediate(() => {
106
+ tx.start();
107
+ });
108
+ }
109
+ };
110
+
111
+ // spreading the object is not working, so we need to do it manually
112
+ let enhancedDb = {
113
+ delete: db.delete,
114
+ attach: db.attach,
115
+ detach: db.detach,
116
+ executeBatch: db.executeBatch,
117
+ executeBatchAsync: db.executeBatchAsync,
118
+ loadFile: db.loadFile,
119
+ updateHook: db.updateHook,
120
+ commitHook: db.commitHook,
121
+ rollbackHook: db.rollbackHook,
122
+ loadExtension: db.loadExtension,
123
+ executeRawAsync: db.executeRawAsync,
124
+ getDbPath: db.getDbPath,
125
+ reactiveExecute: db.reactiveExecute,
126
+ close: () => {
127
+ db.close();
128
+ delete locks[options.url];
129
+ },
130
+ execute: (query, params) => {
131
+ const sanitizedParams = params?.map(p => {
132
+ if (ArrayBuffer.isView(p)) {
133
+ return p.buffer;
134
+ }
135
+ return p;
136
+ });
137
+ const result = db.execute(query, sanitizedParams);
138
+ enhanceQueryResult(result);
139
+ return result;
140
+ },
141
+ executeAsync: async (query, params) => {
142
+ const sanitizedParams = params?.map(p => {
143
+ if (ArrayBuffer.isView(p)) {
144
+ return p.buffer;
145
+ }
146
+ return p;
147
+ });
148
+ const result = await db.executeAsync(query, sanitizedParams);
149
+ enhanceQueryResult(result);
150
+ return result;
151
+ },
152
+ prepareStatement: query => {
153
+ const stmt = db.prepareStatement(query);
154
+ return {
155
+ bind: params => {
156
+ const sanitizedParams = params.map(p => {
157
+ if (ArrayBuffer.isView(p)) {
158
+ return p.buffer;
159
+ }
160
+ return p;
161
+ });
162
+ stmt.bind(sanitizedParams);
163
+ },
164
+ execute: () => {
165
+ const res = stmt.execute();
166
+ enhanceQueryResult(res);
167
+ return res;
168
+ }
169
+ };
170
+ },
171
+ transaction: async fn => {
172
+ let isFinalized = false;
173
+
174
+ // Local transaction context object implementation
175
+ const execute = (query, params) => {
176
+ if (isFinalized) {
177
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
178
+ }
179
+ return enhancedDb.execute(query, params);
180
+ };
181
+ const executeAsync = (query, params) => {
182
+ if (isFinalized) {
183
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
184
+ }
185
+ return enhancedDb.executeAsync(query, params);
186
+ };
187
+ const commit = () => {
188
+ if (isFinalized) {
189
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
190
+ }
191
+ const result = enhancedDb.execute('COMMIT;');
192
+ isFinalized = true;
193
+ return result;
194
+ };
195
+ const rollback = () => {
196
+ if (isFinalized) {
197
+ throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
198
+ }
199
+ const result = enhancedDb.execute('ROLLBACK;');
200
+ isFinalized = true;
201
+ return result;
202
+ };
203
+ async function run() {
204
+ try {
205
+ await enhancedDb.executeAsync('BEGIN TRANSACTION;');
206
+ await fn({
207
+ commit,
208
+ execute,
209
+ executeAsync,
210
+ rollback
211
+ });
212
+ if (!isFinalized) {
213
+ commit();
214
+ }
215
+ } catch (executionError) {
216
+ console.warn('transaction error', executionError);
217
+ if (!isFinalized) {
218
+ try {
219
+ rollback();
220
+ } catch (rollbackError) {
221
+ throw rollbackError;
222
+ }
223
+ }
224
+ throw executionError;
225
+ } finally {
226
+ lock.inProgress = false;
227
+ isFinalized = false;
228
+ startNextTransaction();
229
+ }
230
+ }
231
+ return await new Promise((resolve, reject) => {
232
+ const tx = {
233
+ start: () => {
234
+ run().then(resolve).catch(reject);
235
+ }
236
+ };
237
+ lock.queue.push(tx);
238
+ startNextTransaction();
239
+ });
240
+ }
241
+ };
242
+ return enhancedDb;
243
+ };
83
244
  export const open = options => {
84
245
  const db = OPSQLite.open(options);
85
246
  const lock = {
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","global","__OPSQLiteProxy","OPSQLite","Error","install","result","proxy","IOS_DOCUMENT_PATH","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","ANDROID_FILES_PATH","ANDROID_EXTERNAL_FILES_PATH","getConstants","locks","enhanceQueryResult","rows","_array","length","item","idx","open","options","db","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","executeBatchAsync","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRawAsync","getDbPath","reactiveExecute","close","name","execute","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","executeAsync","prepareStatement","stmt","bind","res","transaction","fn","isFinalized","commit","rollback","run","executionError","console","warn","rollbackError","Promise","resolve","reject","then","catch","push","moveAssetsDatabase","args","isSQLCipher","isLibsql"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","global","__OPSQLiteProxy","OPSQLite","Error","install","result","proxy","IOS_DOCUMENT_PATH","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","ANDROID_FILES_PATH","ANDROID_EXTERNAL_FILES_PATH","getConstants","locks","enhanceQueryResult","rows","_array","length","item","idx","openRemote","options","isLibsql","db","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","executeBatchAsync","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRawAsync","getDbPath","reactiveExecute","close","url","execute","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","executeAsync","prepareStatement","stmt","bind","res","transaction","fn","isFinalized","commit","rollback","run","executionError","console","warn","rollbackError","Promise","resolve","reject","then","catch","push","open","name","moveAssetsDatabase","args","isSQLCipher"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -121,9 +121,17 @@ type OPSQLiteProxy = {
121
121
  location?: string;
122
122
  encryptionKey?: string;
123
123
  }) => DB;
124
+ openRemote: (options: {
125
+ url: string;
126
+ authToken: string;
127
+ }) => DB;
124
128
  isSQLCipher: () => boolean;
125
129
  isLibsql: () => boolean;
126
130
  };
131
+ export declare const openRemote: (options: {
132
+ url: string;
133
+ authToken: string;
134
+ }) => DB;
127
135
  export declare const open: (options: {
128
136
  name: string;
129
137
  location?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@op-engineering/op-sqlite",
3
- "version": "6.0.2-beta3",
3
+ "version": "6.0.4",
4
4
  "description": "Next generation SQLite for React Native",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.ts CHANGED
@@ -194,6 +194,7 @@ type OPSQLiteProxy = {
194
194
  location?: string;
195
195
  encryptionKey?: string;
196
196
  }) => DB;
197
+ openRemote: (options: { url: string; authToken: string }) => DB;
197
198
  isSQLCipher: () => boolean;
198
199
  isLibsql: () => boolean;
199
200
  };
@@ -219,6 +220,204 @@ function enhanceQueryResult(result: QueryResult): void {
219
220
  }
220
221
  }
221
222
 
223
+ // TODO de-dupe this function with open
224
+ export const openRemote = (options: { url: string; authToken: string }): DB => {
225
+ if (!isLibsql()) {
226
+ throw new Error('This function is only available for libsql');
227
+ }
228
+
229
+ const db = OPSQLite.openRemote(options);
230
+
231
+ const lock = {
232
+ queue: [] as PendingTransaction[],
233
+ inProgress: false,
234
+ };
235
+
236
+ const startNextTransaction = () => {
237
+ if (lock.inProgress) {
238
+ // Transaction is already in process bail out
239
+ return;
240
+ }
241
+
242
+ if (lock.queue.length) {
243
+ lock.inProgress = true;
244
+ const tx = lock.queue.shift();
245
+
246
+ if (!tx) {
247
+ throw new Error('Could not get a operation on database');
248
+ }
249
+
250
+ setImmediate(() => {
251
+ tx.start();
252
+ });
253
+ }
254
+ };
255
+
256
+ // spreading the object is not working, so we need to do it manually
257
+ let enhancedDb = {
258
+ delete: db.delete,
259
+ attach: db.attach,
260
+ detach: db.detach,
261
+ executeBatch: db.executeBatch,
262
+ executeBatchAsync: db.executeBatchAsync,
263
+
264
+ loadFile: db.loadFile,
265
+ updateHook: db.updateHook,
266
+ commitHook: db.commitHook,
267
+ rollbackHook: db.rollbackHook,
268
+ loadExtension: db.loadExtension,
269
+ executeRawAsync: db.executeRawAsync,
270
+ getDbPath: db.getDbPath,
271
+ reactiveExecute: db.reactiveExecute,
272
+ close: () => {
273
+ db.close();
274
+ delete locks[options.url];
275
+ },
276
+ execute: (query: string, params?: any[] | undefined): QueryResult => {
277
+ const sanitizedParams = params?.map((p) => {
278
+ if (ArrayBuffer.isView(p)) {
279
+ return p.buffer;
280
+ }
281
+
282
+ return p;
283
+ });
284
+
285
+ const result = db.execute(query, sanitizedParams);
286
+ enhanceQueryResult(result);
287
+ return result;
288
+ },
289
+ executeAsync: async (
290
+ query: string,
291
+ params?: any[] | undefined
292
+ ): Promise<QueryResult> => {
293
+ const sanitizedParams = params?.map((p) => {
294
+ if (ArrayBuffer.isView(p)) {
295
+ return p.buffer;
296
+ }
297
+
298
+ return p;
299
+ });
300
+
301
+ const result = await db.executeAsync(query, sanitizedParams);
302
+ enhanceQueryResult(result);
303
+ return result;
304
+ },
305
+ prepareStatement: (query: string) => {
306
+ const stmt = db.prepareStatement(query);
307
+
308
+ return {
309
+ bind: (params: any[]) => {
310
+ const sanitizedParams = params.map((p) => {
311
+ if (ArrayBuffer.isView(p)) {
312
+ return p.buffer;
313
+ }
314
+
315
+ return p;
316
+ });
317
+
318
+ stmt.bind(sanitizedParams);
319
+ },
320
+ execute: () => {
321
+ const res = stmt.execute();
322
+ enhanceQueryResult(res);
323
+ return res;
324
+ },
325
+ };
326
+ },
327
+ transaction: async (
328
+ fn: (tx: Transaction) => Promise<void>
329
+ ): Promise<void> => {
330
+ let isFinalized = false;
331
+
332
+ // Local transaction context object implementation
333
+ const execute = (query: string, params?: any[]): QueryResult => {
334
+ if (isFinalized) {
335
+ throw Error(
336
+ `OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`
337
+ );
338
+ }
339
+ return enhancedDb.execute(query, params);
340
+ };
341
+
342
+ const executeAsync = (query: string, params?: any[] | undefined) => {
343
+ if (isFinalized) {
344
+ throw Error(
345
+ `OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`
346
+ );
347
+ }
348
+ return enhancedDb.executeAsync(query, params);
349
+ };
350
+
351
+ const commit = () => {
352
+ if (isFinalized) {
353
+ throw Error(
354
+ `OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`
355
+ );
356
+ }
357
+ const result = enhancedDb.execute('COMMIT;');
358
+ isFinalized = true;
359
+ return result;
360
+ };
361
+
362
+ const rollback = () => {
363
+ if (isFinalized) {
364
+ throw Error(
365
+ `OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`
366
+ );
367
+ }
368
+ const result = enhancedDb.execute('ROLLBACK;');
369
+ isFinalized = true;
370
+ return result;
371
+ };
372
+
373
+ async function run() {
374
+ try {
375
+ await enhancedDb.executeAsync('BEGIN TRANSACTION;');
376
+
377
+ await fn({
378
+ commit,
379
+ execute,
380
+ executeAsync,
381
+ rollback,
382
+ });
383
+
384
+ if (!isFinalized) {
385
+ commit();
386
+ }
387
+ } catch (executionError) {
388
+ console.warn('transaction error', executionError);
389
+ if (!isFinalized) {
390
+ try {
391
+ rollback();
392
+ } catch (rollbackError) {
393
+ throw rollbackError;
394
+ }
395
+ }
396
+
397
+ throw executionError;
398
+ } finally {
399
+ lock.inProgress = false;
400
+ isFinalized = false;
401
+ startNextTransaction();
402
+ }
403
+ }
404
+
405
+ return await new Promise((resolve, reject) => {
406
+ const tx: PendingTransaction = {
407
+ start: () => {
408
+ run().then(resolve).catch(reject);
409
+ },
410
+ };
411
+
412
+ lock.queue.push(tx);
413
+ startNextTransaction();
414
+ });
415
+ },
416
+ };
417
+
418
+ return enhancedDb;
419
+ };
420
+
222
421
  export const open = (options: {
223
422
  name: string;
224
423
  location?: string;