@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.
- package/cpp/DBHostObject.cpp +37 -18
- package/cpp/DBHostObject.h +9 -5
- package/cpp/bindings.cpp +37 -22
- package/cpp/bindings.h +2 -3
- package/cpp/libsql/bridge.cpp +32 -13
- package/cpp/libsql/bridge.h +4 -16
- package/lib/commonjs/index.js +163 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +161 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +199 -0
package/cpp/DBHostObject.cpp
CHANGED
|
@@ -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
|
|
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(
|
|
41
|
+
opsqlite_execute(name, query, ¶ms, &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,
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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;
|
package/cpp/DBHostObject.h
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#
|
|
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
|
|
23
|
-
std::string
|
|
24
|
-
std::shared_ptr<react::CallInvoker>
|
|
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
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
56
|
-
std::string path = std::string(
|
|
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 =
|
|
87
|
-
rt,
|
|
88
|
-
|
|
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
|
-
|
|
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
|
package/cpp/libsql/bridge.cpp
CHANGED
|
@@ -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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
package/cpp/libsql/bridge.h
CHANGED
|
@@ -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
|
-
|
|
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
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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 = {
|
package/lib/module/index.js.map
CHANGED
|
@@ -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":"AAAA;AACA,SAASA,aAAa,QAAQ,cAAc;AAO5C,IAAIC,MAAM,CAACC,eAAe,IAAI,IAAI,EAAE;EAClC,IAAIF,aAAa,CAACG,QAAQ,IAAI,IAAI,EAAE;IAClC,MAAM,IAAIC,KAAK,CAAC,sDAAsD,CAAC;EACzE;EAEA,IAAIJ,aAAa,CAACG,QAAQ,CAACE,OAAO,IAAI,IAAI,EAAE;IAC1C,MAAM,IAAID,KAAK,CACb,iQACF,CAAC;EACH;;EAEA;EACA,MAAME,MAAM,GAAGN,aAAa,CAACG,QAAQ,CAACE,OAAO,CAAC,CAAC;EAC/C,IAAIC,MAAM,KAAK,IAAI,EAAE;IACnB,MAAM,IAAIF,KAAK,CACZ,mLACH,CAAC;EACH;;EAEA;EACA,IAAIH,MAAM,CAACC,eAAe,IAAI,IAAI,EAAE;IAClC,MAAM,IAAIE,KAAK,CACb,yIACF,CAAC;EACH;AACF;AAEA,MAAMG,KAAK,GAAGN,MAAM,CAACC,eAAe;AACpC,OAAO,MAAMC,QAAQ,GAAGI,KAAsB;AAE9C,OAAO,MAAM;EACXC,iBAAiB;EACjBC,gBAAgB;EAChBC,qBAAqB;EACrBC,kBAAkB;EAClBC;AACF,CAAC,GAAG,CAAC,CAACZ,aAAa,CAACG,QAAQ,CAACU,YAAY,GACrCb,aAAa,CAACG,QAAQ,CAACU,YAAY,CAAC,CAAC,GACrCb,aAAa,CAACG,QAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAsFA,MAAMW,KAGL,GAAG,CAAC,CAAC;;AAEN;;AAEA;AACA,SAASC,kBAAkBA,CAACT,MAAmB,EAAQ;EACrD;EACA,IAAIA,MAAM,CAACU,IAAI,IAAI,IAAI,EAAE;IACvBV,MAAM,CAACU,IAAI,GAAG;MACZC,MAAM,EAAE,EAAE;MACVC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAGC,GAAW,IAAKd,MAAM,CAACU,IAAI,EAAEC,MAAM,CAACG,GAAG;IAChD,CAAC;EACH,CAAC,MAAM;IACLd,MAAM,CAACU,IAAI,CAACG,IAAI,GAAIC,GAAW,IAAKd,MAAM,CAACU,IAAI,EAAEC,MAAM,CAACG,GAAG,CAAC;EAC9D;AACF;AAEA,OAAO,MAAMC,IAAI,GAAIC,OAIpB,IAAS;EACR,MAAMC,EAAE,GAAGpB,QAAQ,CAACkB,IAAI,CAACC,OAAO,CAAC;EAEjC,MAAME,IAAI,GAAG;IACXC,KAAK,EAAE,EAA0B;IACjCC,UAAU,EAAE;EACd,CAAC;EAED,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAIH,IAAI,CAACE,UAAU,EAAE;MACnB;MACA;IACF;IAEA,IAAIF,IAAI,CAACC,KAAK,CAACP,MAAM,EAAE;MACrBM,IAAI,CAACE,UAAU,GAAG,IAAI;MACtB,MAAME,EAAE,GAAGJ,IAAI,CAACC,KAAK,CAACI,KAAK,CAAC,CAAC;MAE7B,IAAI,CAACD,EAAE,EAAE;QACP,MAAM,IAAIxB,KAAK,CAAC,uCAAuC,CAAC;MAC1D;MAEA0B,YAAY,CAAC,MAAM;QACjBF,EAAE,CAACG,KAAK,CAAC,CAAC;MACZ,CAAC,CAAC;IACJ;EACF,CAAC;;EAED;EACA,IAAIC,UAAU,GAAG;IACfC,MAAM,EAAEV,EAAE,CAACU,MAAM;IACjBC,MAAM,EAAEX,EAAE,CAACW,MAAM;IACjBC,MAAM,EAAEZ,EAAE,CAACY,MAAM;IACjBC,YAAY,EAAEb,EAAE,CAACa,YAAY;IAC7BC,iBAAiB,EAAEd,EAAE,CAACc,iBAAiB;IAEvCC,QAAQ,EAAEf,EAAE,CAACe,QAAQ;IACrBC,UAAU,EAAEhB,EAAE,CAACgB,UAAU;IACzBC,UAAU,EAAEjB,EAAE,CAACiB,UAAU;IACzBC,YAAY,EAAElB,EAAE,CAACkB,YAAY;IAC7BC,aAAa,EAAEnB,EAAE,CAACmB,aAAa;IAC/BC,eAAe,EAAEpB,EAAE,CAACoB,eAAe;IACnCC,SAAS,EAAErB,EAAE,CAACqB,SAAS;IACvBC,eAAe,EAAEtB,EAAE,CAACsB,eAAe;IACnCC,KAAK,EAAEA,CAAA,KAAM;MACXvB,EAAE,CAACuB,KAAK,CAAC,CAAC;MACV,OAAOhC,KAAK,CAACQ,OAAO,CAACyB,IAAI,CAAC;IAC5B,CAAC;IACDC,OAAO,EAAEA,CAACC,KAAa,EAAEC,MAA0B,KAAkB;MACnE,MAAMC,eAAe,GAAGD,MAAM,EAAEE,GAAG,CAAEC,CAAC,IAAK;QACzC,IAAIC,WAAW,CAACC,MAAM,CAACF,CAAC,CAAC,EAAE;UACzB,OAAOA,CAAC,CAACG,MAAM;QACjB;QAEA,OAAOH,CAAC;MACV,CAAC,CAAC;MAEF,MAAM/C,MAAM,GAAGiB,EAAE,CAACyB,OAAO,CAACC,KAAK,EAAEE,eAAe,CAAC;MACjDpC,kBAAkB,CAACT,MAAM,CAAC;MAC1B,OAAOA,MAAM;IACf,CAAC;IACDmD,YAAY,EAAE,MAAAA,CACZR,KAAa,EACbC,MAA0B,KACD;MACzB,MAAMC,eAAe,GAAGD,MAAM,EAAEE,GAAG,CAAEC,CAAC,IAAK;QACzC,IAAIC,WAAW,CAACC,MAAM,CAACF,CAAC,CAAC,EAAE;UACzB,OAAOA,CAAC,CAACG,MAAM;QACjB;QAEA,OAAOH,CAAC;MACV,CAAC,CAAC;MAEF,MAAM/C,MAAM,GAAG,MAAMiB,EAAE,CAACkC,YAAY,CAACR,KAAK,EAAEE,eAAe,CAAC;MAC5DpC,kBAAkB,CAACT,MAAM,CAAC;MAC1B,OAAOA,MAAM;IACf,CAAC;IACDoD,gBAAgB,EAAGT,KAAa,IAAK;MACnC,MAAMU,IAAI,GAAGpC,EAAE,CAACmC,gBAAgB,CAACT,KAAK,CAAC;MAEvC,OAAO;QACLW,IAAI,EAAGV,MAAa,IAAK;UACvB,MAAMC,eAAe,GAAGD,MAAM,CAACE,GAAG,CAAEC,CAAC,IAAK;YACxC,IAAIC,WAAW,CAACC,MAAM,CAACF,CAAC,CAAC,EAAE;cACzB,OAAOA,CAAC,CAACG,MAAM;YACjB;YAEA,OAAOH,CAAC;UACV,CAAC,CAAC;UAEFM,IAAI,CAACC,IAAI,CAACT,eAAe,CAAC;QAC5B,CAAC;QACDH,OAAO,EAAEA,CAAA,KAAM;UACb,MAAMa,GAAG,GAAGF,IAAI,CAACX,OAAO,CAAC,CAAC;UAC1BjC,kBAAkB,CAAC8C,GAAG,CAAC;UACvB,OAAOA,GAAG;QACZ;MACF,CAAC;IACH,CAAC;IACDC,WAAW,EAAE,MACXC,EAAsC,IACpB;MAClB,IAAIC,WAAW,GAAG,KAAK;;MAEvB;MACA,MAAMhB,OAAO,GAAGA,CAACC,KAAa,EAAEC,MAAc,KAAkB;QAC9D,IAAIc,WAAW,EAAE;UACf,MAAM5D,KAAK,CACR,8BAA6BkB,OAAO,CAACyB,IAAK,iDAC7C,CAAC;QACH;QACA,OAAOf,UAAU,CAACgB,OAAO,CAACC,KAAK,EAAEC,MAAM,CAAC;MAC1C,CAAC;MAED,MAAMO,YAAY,GAAGA,CAACR,KAAa,EAAEC,MAA0B,KAAK;QAClE,IAAIc,WAAW,EAAE;UACf,MAAM5D,KAAK,CACR,8BAA6BkB,OAAO,CAACyB,IAAK,iDAC7C,CAAC;QACH;QACA,OAAOf,UAAU,CAACyB,YAAY,CAACR,KAAK,EAAEC,MAAM,CAAC;MAC/C,CAAC;MAED,MAAMe,MAAM,GAAGA,CAAA,KAAM;QACnB,IAAID,WAAW,EAAE;UACf,MAAM5D,KAAK,CACR,8BAA6BkB,OAAO,CAACyB,IAAK,iDAC7C,CAAC;QACH;QACA,MAAMzC,MAAM,GAAG0B,UAAU,CAACgB,OAAO,CAAC,SAAS,CAAC;QAC5CgB,WAAW,GAAG,IAAI;QAClB,OAAO1D,MAAM;MACf,CAAC;MAED,MAAM4D,QAAQ,GAAGA,CAAA,KAAM;QACrB,IAAIF,WAAW,EAAE;UACf,MAAM5D,KAAK,CACR,8BAA6BkB,OAAO,CAACyB,IAAK,iDAC7C,CAAC;QACH;QACA,MAAMzC,MAAM,GAAG0B,UAAU,CAACgB,OAAO,CAAC,WAAW,CAAC;QAC9CgB,WAAW,GAAG,IAAI;QAClB,OAAO1D,MAAM;MACf,CAAC;MAED,eAAe6D,GAAGA,CAAA,EAAG;QACnB,IAAI;UACF,MAAMnC,UAAU,CAACyB,YAAY,CAAC,oBAAoB,CAAC;UAEnD,MAAMM,EAAE,CAAC;YACPE,MAAM;YACNjB,OAAO;YACPS,YAAY;YACZS;UACF,CAAC,CAAC;UAEF,IAAI,CAACF,WAAW,EAAE;YAChBC,MAAM,CAAC,CAAC;UACV;QACF,CAAC,CAAC,OAAOG,cAAc,EAAE;UACvBC,OAAO,CAACC,IAAI,CAAC,mBAAmB,EAAEF,cAAc,CAAC;UACjD,IAAI,CAACJ,WAAW,EAAE;YAChB,IAAI;cACFE,QAAQ,CAAC,CAAC;YACZ,CAAC,CAAC,OAAOK,aAAa,EAAE;cACtB,MAAMA,aAAa;YACrB;UACF;UAEA,MAAMH,cAAc;QACtB,CAAC,SAAS;UACR5C,IAAI,CAACE,UAAU,GAAG,KAAK;UACvBsC,WAAW,GAAG,KAAK;UACnBrC,oBAAoB,CAAC,CAAC;QACxB;MACF;MAEA,OAAO,MAAM,IAAI6C,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;QAC5C,MAAM9C,EAAsB,GAAG;UAC7BG,KAAK,EAAEA,CAAA,KAAM;YACXoC,GAAG,CAAC,CAAC,CAACQ,IAAI,CAACF,OAAO,CAAC,CAACG,KAAK,CAACF,MAAM,CAAC;UACnC;QACF,CAAC;QAEDlD,IAAI,CAACC,KAAK,CAACoD,IAAI,CAACjD,EAAE,CAAC;QACnBD,oBAAoB,CAAC,CAAC;MACxB,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAOK,UAAU;AACnB,CAAC;AAED,OAAO,MAAM8C,kBAAkB,GAAG,MAAOC,IAIxC,IAAuB;EACtB,OAAO/E,aAAa,CAACG,QAAQ,CAAC2E,kBAAkB,CAACC,IAAI,CAAC;AACxD,CAAC;AAED,OAAO,MAAMC,WAAW,GAAGA,CAAA,KAAe;EACxC,OAAO7E,QAAQ,CAAC6E,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,OAAO,MAAMC,QAAQ,GAAGA,CAAA,KAAe;EACrC,OAAO9E,QAAQ,CAAC8E,QAAQ,CAAC,CAAC;AAC5B,CAAC","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
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;
|