@op-engineering/op-sqlite 6.0.2-beta3 → 6.0.2-beta4
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 +32 -12
- package/cpp/DBHostObject.h +9 -5
- package/cpp/bindings.cpp +37 -22
- package/cpp/bindings.h +2 -3
- package/cpp/libsql/bridge.cpp +33 -2
- 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
|
@@ -137,6 +137,23 @@ void DBHostObject::auto_register_update_hook() {
|
|
|
137
137
|
}
|
|
138
138
|
#endif
|
|
139
139
|
|
|
140
|
+
#ifdef OP_SQLITE_USE_LIBSQL
|
|
141
|
+
DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &url,
|
|
142
|
+
std::string &auth_token,
|
|
143
|
+
std::shared_ptr<react::CallInvoker> js_call_invoker,
|
|
144
|
+
std::shared_ptr<ThreadPool> thread_pool)
|
|
145
|
+
: db_name(url), jsCallInvoker(js_call_invoker), thread_pool(thread_pool),
|
|
146
|
+
rt(rt) {
|
|
147
|
+
BridgeResult result = opsqlite_libsql_open_remote(url, auth_token);
|
|
148
|
+
|
|
149
|
+
if (result.type == SQLiteError) {
|
|
150
|
+
throw std::runtime_error(result.message);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
create_jsi_functions();
|
|
154
|
+
}
|
|
155
|
+
#endif
|
|
156
|
+
|
|
140
157
|
DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
141
158
|
std::shared_ptr<react::CallInvoker> jsCallInvoker,
|
|
142
159
|
std::shared_ptr<ThreadPool> thread_pool,
|
|
@@ -159,6 +176,10 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
159
176
|
throw std::runtime_error(result.message);
|
|
160
177
|
}
|
|
161
178
|
|
|
179
|
+
create_jsi_functions();
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
void DBHostObject::create_jsi_functions() {
|
|
162
183
|
auto attach = HOSTFN("attach", 4) {
|
|
163
184
|
if (count < 3) {
|
|
164
185
|
throw jsi::JSError(rt,
|
|
@@ -311,11 +332,11 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
311
332
|
}
|
|
312
333
|
|
|
313
334
|
auto promiseCtr = rt.global().getPropertyAsFunction(rt, "Promise");
|
|
314
|
-
|
|
335
|
+
auto promise = promiseCtr.callAsConstructor(rt, HOSTFN("executor", 2) {
|
|
315
336
|
auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
|
|
316
337
|
auto reject = std::make_shared<jsi::Value>(rt, args[1]);
|
|
317
338
|
|
|
318
|
-
auto task = [&rt,
|
|
339
|
+
auto task = [&rt, this, query, params = std::move(params), resolve,
|
|
319
340
|
reject, invoker = this->jsCallInvoker]() {
|
|
320
341
|
try {
|
|
321
342
|
std::vector<std::vector<JSVariant>> results;
|
|
@@ -360,7 +381,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
360
381
|
return {};
|
|
361
382
|
}));
|
|
362
383
|
|
|
363
|
-
|
|
384
|
+
return promise;
|
|
364
385
|
});
|
|
365
386
|
|
|
366
387
|
auto execute_async = HOSTFN("executeAsync", 2) {
|
|
@@ -377,7 +398,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
377
398
|
auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
|
|
378
399
|
auto reject = std::make_shared<jsi::Value>(rt, args[1]);
|
|
379
400
|
|
|
380
|
-
auto task = [&rt,
|
|
401
|
+
auto task = [&rt, this, query, params = std::move(params), resolve,
|
|
381
402
|
reject, invoker = this->jsCallInvoker]() {
|
|
382
403
|
try {
|
|
383
404
|
std::vector<DumbHostObject> results;
|
|
@@ -486,7 +507,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
486
507
|
auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
|
|
487
508
|
auto reject = std::make_shared<jsi::Value>(rt, args[1]);
|
|
488
509
|
|
|
489
|
-
auto task = [&rt,
|
|
510
|
+
auto task = [&rt, this,
|
|
490
511
|
commands =
|
|
491
512
|
std::make_shared<std::vector<BatchArguments>>(commands),
|
|
492
513
|
resolve, reject]() {
|
|
@@ -540,8 +561,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
540
561
|
auto resolve = std::make_shared<jsi::Value>(rt, args[0]);
|
|
541
562
|
auto reject = std::make_shared<jsi::Value>(rt, args[1]);
|
|
542
563
|
|
|
543
|
-
auto task = [&rt,
|
|
544
|
-
reject]() {
|
|
564
|
+
auto task = [&rt, this, sqlFileName, resolve, reject]() {
|
|
545
565
|
try {
|
|
546
566
|
const auto importResult = importSQLFile(db_name, sqlFileName);
|
|
547
567
|
|
|
@@ -597,7 +617,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
597
617
|
}
|
|
598
618
|
commit_hook_callback = callback;
|
|
599
619
|
|
|
600
|
-
auto hook = [&rt,
|
|
620
|
+
auto hook = [&rt, this, callback](std::string dbName) {
|
|
601
621
|
jsCallInvoker->invokeAsync(
|
|
602
622
|
[&rt, callback] { callback->asObject(rt).asFunction(rt).call(rt); });
|
|
603
623
|
};
|
|
@@ -621,7 +641,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
621
641
|
}
|
|
622
642
|
rollback_hook_callback = callback;
|
|
623
643
|
|
|
624
|
-
auto hook = [&rt,
|
|
644
|
+
auto hook = [&rt, this, callback](std::string db_name) {
|
|
625
645
|
jsCallInvoker->invokeAsync(
|
|
626
646
|
[&rt, callback] { callback->asObject(rt).asFunction(rt).call(rt); });
|
|
627
647
|
};
|
|
@@ -764,6 +784,8 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
764
784
|
function_map["delete"] = std::move(remove);
|
|
765
785
|
function_map["executeBatch"] = std::move(execute_batch);
|
|
766
786
|
function_map["executeBatchAsync"] = std::move(execute_batch_async);
|
|
787
|
+
function_map["prepareStatement"] = std::move(prepare_statement);
|
|
788
|
+
function_map["getDbPath"] = std::move(get_db_path);
|
|
767
789
|
#ifndef OP_SQLITE_USE_LIBSQL
|
|
768
790
|
function_map["loadFile"] = std::move(load_file);
|
|
769
791
|
function_map["updateHook"] = std::move(update_hook);
|
|
@@ -772,9 +794,7 @@ DBHostObject::DBHostObject(jsi::Runtime &rt, std::string &base_path,
|
|
|
772
794
|
function_map["loadExtension"] = std::move(load_extension);
|
|
773
795
|
function_map["reactiveExecute"] = std::move(reactive_execute);
|
|
774
796
|
#endif
|
|
775
|
-
|
|
776
|
-
function_map["getDbPath"] = std::move(get_db_path);
|
|
777
|
-
};
|
|
797
|
+
}
|
|
778
798
|
|
|
779
799
|
std::vector<jsi::PropNameID> DBHostObject::getPropertyNames(jsi::Runtime &rt) {
|
|
780
800
|
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
|
@@ -80,6 +80,30 @@ BridgeResult opsqlite_libsql_open(std::string const &name,
|
|
|
80
80
|
return {.type = SQLiteOk, .affectedRows = 0};
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
BridgeResult opsqlite_libsql_open_remote(std::string const &url,
|
|
84
|
+
std::string const &auth_token) {
|
|
85
|
+
int status = 0;
|
|
86
|
+
libsql_database_t db;
|
|
87
|
+
libsql_connection_t c;
|
|
88
|
+
const char *err = NULL;
|
|
89
|
+
|
|
90
|
+
status = libsql_open_remote(url.c_str(), auth_token.c_str(), &db, &err);
|
|
91
|
+
|
|
92
|
+
if (status != 0) {
|
|
93
|
+
return {.type = SQLiteError, .message = err};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
status = libsql_connect(db, &c, &err);
|
|
97
|
+
|
|
98
|
+
if (status != 0) {
|
|
99
|
+
return {.type = SQLiteError, .message = err};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
db_map[url] = {.db = db, .c = c};
|
|
103
|
+
|
|
104
|
+
return {.type = SQLiteOk, .affectedRows = 0};
|
|
105
|
+
}
|
|
106
|
+
|
|
83
107
|
BridgeResult opsqlite_libsql_close(std::string const &name) {
|
|
84
108
|
|
|
85
109
|
check_db_open(name);
|
|
@@ -96,6 +120,15 @@ BridgeResult opsqlite_libsql_close(std::string const &name) {
|
|
|
96
120
|
};
|
|
97
121
|
}
|
|
98
122
|
|
|
123
|
+
void opsqlite_libsql_close_all() {
|
|
124
|
+
// for (auto const &db : db_map) {
|
|
125
|
+
// libsql_close();
|
|
126
|
+
// }
|
|
127
|
+
for (auto const &db : db_map) {
|
|
128
|
+
opsqlite_libsql_close(db.first);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
99
132
|
BridgeResult opsqlite_libsql_attach(std::string const &mainDBName,
|
|
100
133
|
std::string const &docPath,
|
|
101
134
|
std::string const &databaseToAttach,
|
|
@@ -160,8 +193,6 @@ BridgeResult opsqlite_libsql_remove(std::string const &name,
|
|
|
160
193
|
|
|
161
194
|
void opsqlite_libsql_bind_statement(libsql_stmt_t statement,
|
|
162
195
|
const std::vector<JSVariant> *values) {
|
|
163
|
-
|
|
164
|
-
// sqlite3_clear_bindings(statement);
|
|
165
196
|
const char *err;
|
|
166
197
|
size_t size = values->size();
|
|
167
198
|
|
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":"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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
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;
|