@op-engineering/op-sqlite 11.2.14 → 11.2.15
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 +627 -591
- package/cpp/DBHostObject.h +54 -53
- package/cpp/DumbHostObject.cpp +35 -34
- package/cpp/DumbHostObject.h +12 -11
- package/cpp/PreparedStatementHostObject.cpp +102 -96
- package/cpp/PreparedStatementHostObject.h +28 -26
- package/cpp/SmartHostObject.cpp +13 -13
- package/cpp/SmartHostObject.h +6 -5
- package/cpp/ThreadPool.cpp +80 -78
- package/cpp/ThreadPool.h +28 -28
- package/cpp/bindings.cpp +112 -108
- package/cpp/bridge.cpp +637 -615
- package/cpp/bridge.h +4 -4
- package/cpp/libsql/bridge.cpp +566 -564
- package/cpp/libsql/bridge.h +16 -23
- package/cpp/libsql/libsql.h +62 -48
- package/cpp/logs.h +17 -17
- package/cpp/types.h +12 -12
- package/cpp/utils.cpp +254 -248
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +3 -1
package/cpp/utils.cpp
CHANGED
|
@@ -11,311 +11,317 @@ namespace opsqlite {
|
|
|
11
11
|
namespace jsi = facebook::jsi;
|
|
12
12
|
|
|
13
13
|
inline jsi::Value to_jsi(jsi::Runtime &rt, const JSVariant &value) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
14
|
+
if (std::holds_alternative<bool>(value)) {
|
|
15
|
+
return std::get<bool>(value);
|
|
16
|
+
} else if (std::holds_alternative<int>(value)) {
|
|
17
|
+
return jsi::Value(std::get<int>(value));
|
|
18
|
+
} else if (std::holds_alternative<long long>(value)) {
|
|
19
|
+
return jsi::Value(static_cast<double>(std::get<long long>(value)));
|
|
20
|
+
} else if (std::holds_alternative<double>(value)) {
|
|
21
|
+
return jsi::Value(std::get<double>(value));
|
|
22
|
+
} else if (std::holds_alternative<std::string>(value)) {
|
|
23
|
+
auto str = std::get<std::string>(value);
|
|
24
|
+
return jsi::String::createFromUtf8(rt, str);
|
|
25
|
+
} else if (std::holds_alternative<ArrayBuffer>(value)) {
|
|
26
|
+
auto jsBuffer = std::get<ArrayBuffer>(value);
|
|
27
|
+
jsi::Function array_buffer_ctor =
|
|
28
|
+
rt.global().getPropertyAsFunction(rt, "ArrayBuffer");
|
|
29
|
+
jsi::Object o =
|
|
30
|
+
array_buffer_ctor.callAsConstructor(rt, (int)jsBuffer.size)
|
|
31
|
+
.getObject(rt);
|
|
32
|
+
jsi::ArrayBuffer buf = o.getArrayBuffer(rt);
|
|
33
|
+
memcpy(buf.data(rt), jsBuffer.data.get(), jsBuffer.size);
|
|
34
|
+
return o;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return jsi::Value::null();
|
|
38
|
+
|
|
39
|
+
// I wanted to use the visitor pattern here but on the ArrayBuffer case it
|
|
40
|
+
// is somehow throwing a pointer exception Somehow the v.size or
|
|
41
|
+
// v.data.get() is loosing the data when called from the lambda I'm guessing
|
|
42
|
+
// the I created the shared pointer wrong and the memory is being freed
|
|
43
|
+
// before the lambda is called
|
|
44
|
+
// return std::visit(
|
|
45
|
+
// [&](auto &&v) -> jsi::Value {
|
|
46
|
+
// using T = std::decay_t<decltype(v)>;
|
|
47
|
+
// if constexpr (std::is_same_v<T, bool>) {
|
|
48
|
+
// return jsi::Value(v);
|
|
49
|
+
// } else if constexpr (std::is_same_v<T, int>) {
|
|
50
|
+
// return jsi::Value(v);
|
|
51
|
+
// } else if constexpr (std::is_same_v<T, long long>) {
|
|
52
|
+
// return jsi::Value(
|
|
53
|
+
// static_cast<double>(v)); // JSI doesn't support long long
|
|
54
|
+
// } else if constexpr (std::is_same_v<T, double>) {
|
|
55
|
+
// return jsi::Value(v);
|
|
56
|
+
// } else if constexpr (std::is_same_v<T, std::string>) {
|
|
57
|
+
// return jsi::String::createFromUtf8(rt, v);
|
|
58
|
+
// } else if constexpr (std::is_same_v<T, ArrayBuffer>) {
|
|
59
|
+
// static jsi::Function buffer_constructor =
|
|
60
|
+
// rt.global().getPropertyAsFunction(rt, "ArrayBuffer");
|
|
61
|
+
// jsi::Object o =
|
|
62
|
+
// buffer_constructor.callAsConstructor(rt,
|
|
63
|
+
// static_cast<int>(v.size))
|
|
64
|
+
// .getObject(rt);
|
|
65
|
+
// jsi::ArrayBuffer buf = o.getArrayBuffer(rt);
|
|
66
|
+
// memcpy(buf.data(rt), v.data.get(), v.size);
|
|
67
|
+
// return o;
|
|
68
|
+
// } else {
|
|
69
|
+
// return jsi::Value::null();
|
|
70
|
+
// }
|
|
71
|
+
// },
|
|
72
|
+
// value);
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
inline JSVariant to_variant(jsi::Runtime &rt, const jsi::Value &value) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
if (value.isNull() || value.isUndefined()) {
|
|
77
|
+
return JSVariant(nullptr);
|
|
78
|
+
} else if (value.isBool()) {
|
|
79
|
+
return JSVariant(value.getBool());
|
|
80
|
+
} else if (value.isNumber()) {
|
|
81
|
+
double doubleVal = value.asNumber();
|
|
82
|
+
int intVal = (int)doubleVal;
|
|
83
|
+
long long longVal = (long)doubleVal;
|
|
84
|
+
if (intVal == doubleVal) {
|
|
85
|
+
return JSVariant(intVal);
|
|
86
|
+
} else if (longVal == doubleVal) {
|
|
87
|
+
return JSVariant(longVal);
|
|
88
|
+
} else {
|
|
89
|
+
return JSVariant(doubleVal);
|
|
90
|
+
}
|
|
91
|
+
} else if (value.isString()) {
|
|
92
|
+
std::string strVal = value.asString(rt).utf8(rt);
|
|
93
|
+
return JSVariant(strVal);
|
|
94
|
+
} else if (value.isObject()) {
|
|
95
|
+
auto obj = value.asObject(rt);
|
|
96
|
+
|
|
97
|
+
if (!obj.isArrayBuffer(rt)) {
|
|
98
|
+
throw std::runtime_error(
|
|
99
|
+
"Object is not an ArrayBuffer, cannot bind to SQLite");
|
|
100
|
+
}
|
|
100
101
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
auto buffer = obj.getArrayBuffer(rt);
|
|
103
|
+
uint8_t *data = new uint8_t[buffer.size(rt)];
|
|
104
|
+
memcpy(data, buffer.data(rt), buffer.size(rt));
|
|
104
105
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
return JSVariant(ArrayBuffer{.data = std::shared_ptr<uint8_t>{data},
|
|
107
|
+
.size = buffer.size(rt)});
|
|
108
|
+
}
|
|
108
109
|
|
|
109
|
-
|
|
110
|
+
throw std::runtime_error("Cannot convert JSI value to C++ Variant value");
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
std::vector<std::string> to_string_vec(jsi::Runtime &rt, jsi::Value const &xs) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
114
|
+
jsi::Array values = xs.asObject(rt).asArray(rt);
|
|
115
|
+
std::vector<std::string> res;
|
|
116
|
+
for (int ii = 0; ii < values.length(rt); ii++) {
|
|
117
|
+
std::string value =
|
|
118
|
+
values.getValueAtIndex(rt, ii).asString(rt).utf8(rt);
|
|
119
|
+
res.emplace_back(value);
|
|
120
|
+
}
|
|
121
|
+
return res;
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
std::vector<int> to_int_vec(jsi::Runtime &rt, jsi::Value const &xs) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
jsi::Array values = xs.asObject(rt).asArray(rt);
|
|
126
|
+
std::vector<int> res;
|
|
127
|
+
for (int ii = 0; ii < values.length(rt); ii++) {
|
|
128
|
+
int value = static_cast<int>(values.getValueAtIndex(rt, ii).asNumber());
|
|
129
|
+
res.emplace_back(value);
|
|
130
|
+
}
|
|
131
|
+
return res;
|
|
130
132
|
}
|
|
131
133
|
|
|
132
134
|
std::vector<JSVariant> to_variant_vec(jsi::Runtime &rt, jsi::Value const &xs) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
+
std::vector<JSVariant> res;
|
|
136
|
+
jsi::Array values = xs.asObject(rt).asArray(rt);
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
for (int ii = 0; ii < values.length(rt); ii++) {
|
|
139
|
+
jsi::Value value = values.getValueAtIndex(rt, ii);
|
|
140
|
+
res.emplace_back(to_variant(rt, value));
|
|
141
|
+
}
|
|
140
142
|
|
|
141
|
-
|
|
143
|
+
return res;
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
jsi::Value create_js_rows(jsi::Runtime &rt, const BridgeResult &status) {
|
|
145
|
-
|
|
147
|
+
jsi::Object res = jsi::Object(rt);
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
res.setProperty(rt, "rowsAffected", status.affectedRows);
|
|
150
|
+
if (status.affectedRows > 0 && status.insertId != 0) {
|
|
151
|
+
res.setProperty(rt, "insertId", jsi::Value(status.insertId));
|
|
152
|
+
}
|
|
151
153
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
size_t row_count = status.rows.size();
|
|
155
|
+
auto rows = jsi::Array(rt, row_count);
|
|
156
|
+
|
|
157
|
+
if (row_count > 0) {
|
|
158
|
+
for (int i = 0; i < row_count; i++) {
|
|
159
|
+
auto row = jsi::Array(rt, status.column_names.size());
|
|
160
|
+
std::vector<JSVariant> native_row = status.rows[i];
|
|
161
|
+
for (int j = 0; j < native_row.size(); j++) {
|
|
162
|
+
auto value = to_jsi(rt, native_row[j]);
|
|
163
|
+
row.setValueAtIndex(rt, j, value);
|
|
164
|
+
}
|
|
165
|
+
rows.setValueAtIndex(rt, i, row);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
res.setProperty(rt, "rawRows", rows);
|
|
154
169
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
auto value = to_jsi(rt, native_row[j]);
|
|
161
|
-
row.setValueAtIndex(rt, j, value);
|
|
162
|
-
}
|
|
163
|
-
rows.setValueAtIndex(rt, i, row);
|
|
170
|
+
size_t column_count = status.column_names.size();
|
|
171
|
+
auto column_array = jsi::Array(rt, column_count);
|
|
172
|
+
for (int i = 0; i < column_count; i++) {
|
|
173
|
+
auto column = status.column_names.at(i);
|
|
174
|
+
column_array.setValueAtIndex(rt, i, to_jsi(rt, column));
|
|
164
175
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
size_t column_count = status.column_names.size();
|
|
169
|
-
auto column_array = jsi::Array(rt, column_count);
|
|
170
|
-
for (int i = 0; i < column_count; i++) {
|
|
171
|
-
auto column = status.column_names.at(i);
|
|
172
|
-
column_array.setValueAtIndex(rt, i, to_jsi(rt, column));
|
|
173
|
-
}
|
|
174
|
-
res.setProperty(rt, "columnNames", std::move(column_array));
|
|
175
|
-
return res;
|
|
176
|
+
res.setProperty(rt, "columnNames", std::move(column_array));
|
|
177
|
+
return res;
|
|
176
178
|
}
|
|
177
179
|
|
|
178
180
|
jsi::Value
|
|
179
181
|
create_result(jsi::Runtime &rt, const BridgeResult &status,
|
|
180
182
|
std::vector<DumbHostObject> *results,
|
|
181
183
|
std::shared_ptr<std::vector<SmartHostObject>> metadata) {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
184
|
+
jsi::Object res = jsi::Object(rt);
|
|
185
|
+
|
|
186
|
+
res.setProperty(rt, "rowsAffected", status.affectedRows);
|
|
187
|
+
if (status.affectedRows > 0 && status.insertId != 0) {
|
|
188
|
+
res.setProperty(rt, "insertId", jsi::Value(status.insertId));
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
size_t rowCount = results->size();
|
|
192
|
+
|
|
193
|
+
auto array = jsi::Array(rt, rowCount);
|
|
194
|
+
for (int i = 0; i < rowCount; i++) {
|
|
195
|
+
auto obj = results->at(i);
|
|
196
|
+
array.setValueAtIndex(rt, i,
|
|
197
|
+
jsi::Object::createFromHostObject(
|
|
198
|
+
rt, std::make_shared<DumbHostObject>(obj)));
|
|
199
|
+
}
|
|
200
|
+
res.setProperty(rt, "rows", std::move(array));
|
|
201
|
+
|
|
202
|
+
size_t column_count = metadata->size();
|
|
203
|
+
auto column_array = jsi::Array(rt, column_count);
|
|
204
|
+
for (int i = 0; i < column_count; i++) {
|
|
205
|
+
auto column = metadata->at(i);
|
|
206
|
+
column_array.setValueAtIndex(
|
|
207
|
+
rt, i,
|
|
208
|
+
jsi::Object::createFromHostObject(
|
|
209
|
+
rt, std::make_shared<SmartHostObject>(column)));
|
|
210
|
+
}
|
|
211
|
+
res.setProperty(rt, "metadata", std::move(column_array));
|
|
212
|
+
|
|
213
|
+
return std::move(res);
|
|
212
214
|
}
|
|
213
215
|
|
|
214
216
|
jsi::Value
|
|
215
217
|
create_raw_result(jsi::Runtime &rt, const BridgeResult &status,
|
|
216
218
|
const std::vector<std::vector<JSVariant>> *results) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
219
|
+
size_t row_count = results->size();
|
|
220
|
+
jsi::Array res = jsi::Array(rt, row_count);
|
|
221
|
+
for (int i = 0; i < row_count; i++) {
|
|
222
|
+
auto row = results->at(i);
|
|
223
|
+
auto array = jsi::Array(rt, row.size());
|
|
224
|
+
for (int j = 0; j < row.size(); j++) {
|
|
225
|
+
array.setValueAtIndex(rt, j, to_jsi(rt, row[j]));
|
|
226
|
+
}
|
|
227
|
+
res.setValueAtIndex(rt, i, array);
|
|
224
228
|
}
|
|
225
|
-
res
|
|
226
|
-
}
|
|
227
|
-
return res;
|
|
229
|
+
return res;
|
|
228
230
|
}
|
|
229
231
|
|
|
230
|
-
void to_batch_arguments(jsi::Runtime &rt, jsi::Array const &
|
|
232
|
+
void to_batch_arguments(jsi::Runtime &rt, jsi::Array const &tuples,
|
|
231
233
|
std::vector<BatchArguments> *commands) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
234
|
+
for (int i = 0; i < tuples.length(rt); i++) {
|
|
235
|
+
const jsi::Array &tuple =
|
|
236
|
+
tuples.getValueAtIndex(rt, i).asObject(rt).asArray(rt);
|
|
237
|
+
const size_t length = tuple.length(rt);
|
|
238
|
+
if (length == 0) {
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const std::string query =
|
|
243
|
+
tuple.getValueAtIndex(rt, 0).asString(rt).utf8(rt);
|
|
244
|
+
if (length == 1) {
|
|
245
|
+
commands->push_back({query});
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
238
248
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
auto params = std::make_shared<std::vector<JSVariant>>(
|
|
263
|
-
to_variant_vec(rt, commandParams));
|
|
264
|
-
commands->push_back({query, params});
|
|
249
|
+
const jsi::Value &tuple_params = tuple.getValueAtIndex(rt, 1);
|
|
250
|
+
|
|
251
|
+
if (!tuple_params.isUndefined() &&
|
|
252
|
+
tuple_params.asObject(rt).isArray(rt) &&
|
|
253
|
+
tuple_params.asObject(rt).asArray(rt).length(rt) > 0 &&
|
|
254
|
+
tuple_params.asObject(rt)
|
|
255
|
+
.asArray(rt)
|
|
256
|
+
.getValueAtIndex(rt, 0)
|
|
257
|
+
.isObject()) {
|
|
258
|
+
// The params for this tuple is an array itself
|
|
259
|
+
// The query should repeat for each element in the array
|
|
260
|
+
const jsi::Array ¶ms_array =
|
|
261
|
+
tuple_params.asObject(rt).asArray(rt);
|
|
262
|
+
for (int x = 0; x < params_array.length(rt); x++) {
|
|
263
|
+
const jsi::Value &p = params_array.getValueAtIndex(rt, x);
|
|
264
|
+
auto params = std::vector<JSVariant>(to_variant_vec(rt, p));
|
|
265
|
+
commands->push_back({query, params});
|
|
266
|
+
}
|
|
267
|
+
} else {
|
|
268
|
+
auto params =
|
|
269
|
+
std::vector<JSVariant>(to_variant_vec(rt, tuple_params));
|
|
270
|
+
commands->push_back({query, params});
|
|
271
|
+
}
|
|
265
272
|
}
|
|
266
|
-
}
|
|
267
273
|
}
|
|
268
274
|
|
|
269
275
|
#ifndef OP_SQLITE_USE_LIBSQL
|
|
270
276
|
BatchResult import_sql_file(sqlite3 *db, std::string path) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
277
|
+
std::string line;
|
|
278
|
+
std::ifstream sqFile(path);
|
|
279
|
+
if (!sqFile.is_open()) {
|
|
280
|
+
throw std::runtime_error("Could not open file: " + path);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
try {
|
|
284
|
+
int affectedRows = 0;
|
|
285
|
+
int commands = 0;
|
|
286
|
+
opsqlite_execute(db, "BEGIN EXCLUSIVE TRANSACTION", nullptr);
|
|
287
|
+
while (std::getline(sqFile, line, '\n')) {
|
|
288
|
+
if (!line.empty()) {
|
|
289
|
+
try {
|
|
290
|
+
auto result = opsqlite_execute(db, line, nullptr);
|
|
291
|
+
affectedRows += result.affectedRows;
|
|
292
|
+
commands++;
|
|
293
|
+
} catch (std::exception &exc) {
|
|
294
|
+
opsqlite_execute(db, "ROLLBACK", nullptr);
|
|
295
|
+
sqFile.close();
|
|
296
|
+
throw exc;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
291
299
|
}
|
|
292
|
-
|
|
300
|
+
sqFile.close();
|
|
301
|
+
opsqlite_execute(db, "COMMIT", nullptr);
|
|
302
|
+
return {"", affectedRows, commands};
|
|
303
|
+
} catch (std::exception &exc) {
|
|
304
|
+
sqFile.close();
|
|
305
|
+
opsqlite_execute(db, "ROLLBACK", nullptr);
|
|
306
|
+
throw exc;
|
|
293
307
|
}
|
|
294
|
-
sqFile.close();
|
|
295
|
-
opsqlite_execute(db, "COMMIT", nullptr);
|
|
296
|
-
return {"", affectedRows, commands};
|
|
297
|
-
} catch (std::exception &exc) {
|
|
298
|
-
sqFile.close();
|
|
299
|
-
opsqlite_execute(db, "ROLLBACK", nullptr);
|
|
300
|
-
throw exc;
|
|
301
|
-
}
|
|
302
308
|
}
|
|
303
309
|
#endif
|
|
304
310
|
|
|
305
311
|
bool folder_exists(const std::string &name) {
|
|
306
|
-
|
|
307
|
-
|
|
312
|
+
struct stat buffer;
|
|
313
|
+
return (stat(name.c_str(), &buffer) == 0);
|
|
308
314
|
}
|
|
309
315
|
|
|
310
316
|
bool file_exists(const std::string &path) {
|
|
311
|
-
|
|
312
|
-
|
|
317
|
+
struct stat buffer;
|
|
318
|
+
return (stat(path.c_str(), &buffer) == 0);
|
|
313
319
|
}
|
|
314
320
|
|
|
315
321
|
void log_to_console(jsi::Runtime &runtime, const std::string &message) {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
322
|
+
auto console = runtime.global().getPropertyAsObject(runtime, "console");
|
|
323
|
+
auto log = console.getPropertyAsFunction(runtime, "log");
|
|
324
|
+
log.call(runtime, jsi::String::createFromUtf8(runtime, message));
|
|
319
325
|
}
|
|
320
326
|
|
|
321
327
|
} // namespace opsqlite
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","global","__OPSQLiteProxy","NativeModules","OPSQLite","Error","installed","install","proxy","IOS_DOCUMENT_PATH","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","ANDROID_FILES_PATH","ANDROID_EXTERNAL_FILES_PATH","getConstants","exports","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","length","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRaw","getDbPath","reactiveExecute","sync","close","executeWithHostObjects","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","executeSync","intermediateResult","rows","i","rawRows","row","rawRow","j","columnNames","columnName","value","push","res","execute","prepareStatement","stmt","bind","transaction","fn","isFinalized","name","url","commit","result","flushPendingReactiveQueries","rollback","run","executionError","rollbackError","Promise","resolve","reject","then","catch","openSync","isLibsql","openRemote","open","location","startsWith","console","warn","substring","moveAssetsDatabase","args","getDylibPath","bundle","isSQLCipher","isIOSEmbeeded","Platform","OS","isIOSEmbedded"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","global","__OPSQLiteProxy","NativeModules","OPSQLite","Error","installed","install","proxy","IOS_DOCUMENT_PATH","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","ANDROID_FILES_PATH","ANDROID_EXTERNAL_FILES_PATH","getConstants","exports","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","length","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRaw","getDbPath","reactiveExecute","sync","close","executeWithHostObjects","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","executeSync","intermediateResult","rows","i","rawRows","row","rawRow","j","columnNames","columnName","value","push","res","execute","prepareStatement","stmt","bind","transaction","fn","isFinalized","name","url","commit","result","flushPendingReactiveQueries","rollback","run","executionError","rollbackError","Promise","resolve","reject","then","catch","openSync","isLibsql","openRemote","open","location","startsWith","console","warn","substring","moveAssetsDatabase","args","getDylibPath","bundle","isSQLCipher","isIOSEmbeeded","Platform","OS","isIOSEmbedded"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|