@op-engineering/op-sqlite 7.4.3 → 8.0.1
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/README.md +11 -3
- package/android/build.gradle +8 -0
- package/cpp/DBHostObject.cpp +118 -112
- package/cpp/PreparedStatementHostObject.cpp +39 -14
- package/cpp/PreparedStatementHostObject.h +17 -4
- package/cpp/bindings.cpp +5 -5
- package/cpp/bridge.cpp +221 -98
- package/cpp/bridge.h +11 -9
- package/cpp/libsql/bridge.cpp +212 -92
- package/cpp/libsql/bridge.h +7 -3
- package/cpp/macros.h +2 -2
- package/cpp/types.h +11 -8
- package/cpp/utils.cpp +43 -7
- package/cpp/utils.h +2 -0
- package/lib/commonjs/index.js +53 -30
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +53 -29
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +11 -11
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +80 -46
package/cpp/macros.h
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#ifndef macros_h
|
|
2
2
|
#define macros_h
|
|
3
3
|
|
|
4
|
-
#define HOSTFN(name
|
|
4
|
+
#define HOSTFN(name) \
|
|
5
5
|
jsi::Function::createFromHostFunction( \
|
|
6
6
|
rt, \
|
|
7
7
|
jsi::PropNameID::forAscii(rt, name), \
|
|
8
|
-
|
|
8
|
+
0, \
|
|
9
9
|
[=](jsi::Runtime &rt, const jsi::Value &thisValue, const jsi::Value *args, size_t count) -> jsi::Value
|
|
10
10
|
|
|
11
11
|
#endif /* macros_h */
|
package/cpp/types.h
CHANGED
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
#include <memory>
|
|
5
5
|
#include <string>
|
|
6
6
|
#include <variant>
|
|
7
|
+
#include <vector>
|
|
8
|
+
|
|
9
|
+
struct ArrayBuffer {
|
|
10
|
+
std::shared_ptr<uint8_t> data;
|
|
11
|
+
size_t size;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
using JSVariant = std::variant<nullptr_t, bool, int, double, long, long long,
|
|
15
|
+
std::string, ArrayBuffer>;
|
|
7
16
|
|
|
8
17
|
enum ResultType { SQLiteOk, SQLiteError };
|
|
9
18
|
|
|
@@ -12,6 +21,8 @@ struct BridgeResult {
|
|
|
12
21
|
std::string message;
|
|
13
22
|
int affectedRows;
|
|
14
23
|
double insertId;
|
|
24
|
+
std::vector<std::vector<JSVariant>> rows;
|
|
25
|
+
std::vector<std::string> column_names;
|
|
15
26
|
};
|
|
16
27
|
|
|
17
28
|
struct BatchResult {
|
|
@@ -21,14 +32,6 @@ struct BatchResult {
|
|
|
21
32
|
int commands;
|
|
22
33
|
};
|
|
23
34
|
|
|
24
|
-
struct ArrayBuffer {
|
|
25
|
-
std::shared_ptr<uint8_t> data;
|
|
26
|
-
size_t size;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
using JSVariant = std::variant<nullptr_t, bool, int, double, long, long long,
|
|
30
|
-
std::string, ArrayBuffer>;
|
|
31
|
-
|
|
32
35
|
struct BatchArguments {
|
|
33
36
|
std::string sql;
|
|
34
37
|
std::shared_ptr<std::vector<JSVariant>> params;
|
package/cpp/utils.cpp
CHANGED
|
@@ -158,6 +158,44 @@ std::vector<JSVariant> to_variant_vec(jsi::Runtime &rt, jsi::Value const &xs) {
|
|
|
158
158
|
return res;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
jsi::Value create_js_rows(jsi::Runtime &rt, BridgeResult status) {
|
|
162
|
+
if (status.type == SQLiteError) {
|
|
163
|
+
throw std::invalid_argument(status.message);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
jsi::Object res = jsi::Object(rt);
|
|
167
|
+
|
|
168
|
+
res.setProperty(rt, "rowsAffected", status.affectedRows);
|
|
169
|
+
if (status.affectedRows > 0 && status.insertId != 0) {
|
|
170
|
+
res.setProperty(rt, "insertId", jsi::Value(status.insertId));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
size_t row_count = status.rows.size();
|
|
174
|
+
auto rows = jsi::Array(rt, row_count);
|
|
175
|
+
|
|
176
|
+
if (row_count > 0) {
|
|
177
|
+
for (int i = 0; i < row_count; i++) {
|
|
178
|
+
auto row = jsi::Array(rt, status.column_names.size());
|
|
179
|
+
std::vector<JSVariant> native_row = status.rows[i];
|
|
180
|
+
for (int j = 0; j < native_row.size(); j++) {
|
|
181
|
+
auto value = toJSI(rt, native_row[j]);
|
|
182
|
+
row.setValueAtIndex(rt, j, value);
|
|
183
|
+
}
|
|
184
|
+
rows.setValueAtIndex(rt, i, std::move(row));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
res.setProperty(rt, "rawRows", std::move(rows));
|
|
188
|
+
|
|
189
|
+
size_t column_count = status.column_names.size();
|
|
190
|
+
auto column_array = jsi::Array(rt, column_count);
|
|
191
|
+
for (int i = 0; i < column_count; i++) {
|
|
192
|
+
auto column = status.column_names.at(i);
|
|
193
|
+
column_array.setValueAtIndex(rt, i, toJSI(rt, column));
|
|
194
|
+
}
|
|
195
|
+
res.setProperty(rt, "columnNames", std::move(column_array));
|
|
196
|
+
return res;
|
|
197
|
+
}
|
|
198
|
+
|
|
161
199
|
jsi::Value
|
|
162
200
|
createResult(jsi::Runtime &rt, BridgeResult status,
|
|
163
201
|
std::vector<DumbHostObject> *results,
|
|
@@ -266,14 +304,12 @@ BatchResult importSQLFile(std::string dbName, std::string fileLocation) {
|
|
|
266
304
|
try {
|
|
267
305
|
int affectedRows = 0;
|
|
268
306
|
int commands = 0;
|
|
269
|
-
opsqlite_execute(dbName, "BEGIN EXCLUSIVE TRANSACTION", nullptr
|
|
270
|
-
nullptr);
|
|
307
|
+
opsqlite_execute(dbName, "BEGIN EXCLUSIVE TRANSACTION", nullptr);
|
|
271
308
|
while (std::getline(sqFile, line, '\n')) {
|
|
272
309
|
if (!line.empty()) {
|
|
273
|
-
BridgeResult result =
|
|
274
|
-
opsqlite_execute(dbName, line, nullptr, nullptr, nullptr);
|
|
310
|
+
BridgeResult result = opsqlite_execute(dbName, line, nullptr);
|
|
275
311
|
if (result.type == SQLiteError) {
|
|
276
|
-
opsqlite_execute(dbName, "ROLLBACK", nullptr
|
|
312
|
+
opsqlite_execute(dbName, "ROLLBACK", nullptr);
|
|
277
313
|
sqFile.close();
|
|
278
314
|
return {SQLiteError, result.message, 0, commands};
|
|
279
315
|
} else {
|
|
@@ -283,11 +319,11 @@ BatchResult importSQLFile(std::string dbName, std::string fileLocation) {
|
|
|
283
319
|
}
|
|
284
320
|
}
|
|
285
321
|
sqFile.close();
|
|
286
|
-
opsqlite_execute(dbName, "COMMIT", nullptr
|
|
322
|
+
opsqlite_execute(dbName, "COMMIT", nullptr);
|
|
287
323
|
return {SQLiteOk, "", affectedRows, commands};
|
|
288
324
|
} catch (...) {
|
|
289
325
|
sqFile.close();
|
|
290
|
-
opsqlite_execute(dbName, "ROLLBACK", nullptr
|
|
326
|
+
opsqlite_execute(dbName, "ROLLBACK", nullptr);
|
|
291
327
|
return {SQLiteError,
|
|
292
328
|
"[op-sqlite][loadSQLFile] Unexpected error, transaction was "
|
|
293
329
|
"rolledback",
|
package/cpp/utils.h
CHANGED
|
@@ -23,9 +23,11 @@ std::vector<int> to_int_vec(jsi::Runtime &rt, jsi::Value const &xs);
|
|
|
23
23
|
jsi::Value createResult(jsi::Runtime &rt, BridgeResult status,
|
|
24
24
|
std::vector<DumbHostObject> *results,
|
|
25
25
|
std::shared_ptr<std::vector<SmartHostObject>> metadata);
|
|
26
|
+
jsi::Value create_js_rows(jsi::Runtime &rt, BridgeResult status);
|
|
26
27
|
jsi::Value
|
|
27
28
|
create_raw_result(jsi::Runtime &rt, BridgeResult status,
|
|
28
29
|
const std::vector<std::vector<JSVariant>> *results);
|
|
30
|
+
|
|
29
31
|
void to_batch_arguments(jsi::Runtime &rt, jsi::Array const &batchParams,
|
|
30
32
|
std::vector<BatchArguments> *commands);
|
|
31
33
|
|
package/lib/commonjs/index.js
CHANGED
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.openSync = 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
|
-
// import NativeOPSQLite from './NativeOPSQLite';
|
|
9
|
-
|
|
10
8
|
if (global.__OPSQLiteProxy == null) {
|
|
11
9
|
if (_reactNative.NativeModules.OPSQLite == null) {
|
|
12
10
|
throw new Error('Base module not found. Maybe try rebuilding the app.');
|
|
@@ -119,13 +117,12 @@ function enhanceDB(db, options) {
|
|
|
119
117
|
attach: db.attach,
|
|
120
118
|
detach: db.detach,
|
|
121
119
|
executeBatch: db.executeBatch,
|
|
122
|
-
executeBatchAsync: db.executeBatchAsync,
|
|
123
120
|
loadFile: db.loadFile,
|
|
124
121
|
updateHook: db.updateHook,
|
|
125
122
|
commitHook: db.commitHook,
|
|
126
123
|
rollbackHook: db.rollbackHook,
|
|
127
124
|
loadExtension: db.loadExtension,
|
|
128
|
-
|
|
125
|
+
executeRaw: db.executeRaw,
|
|
129
126
|
getDbPath: db.getDbPath,
|
|
130
127
|
reactiveExecute: db.reactiveExecute,
|
|
131
128
|
sync: db.sync,
|
|
@@ -133,27 +130,44 @@ function enhanceDB(db, options) {
|
|
|
133
130
|
db.close();
|
|
134
131
|
delete locks[options.url];
|
|
135
132
|
},
|
|
136
|
-
|
|
133
|
+
executeWithHostObjects: async (query, params) => {
|
|
137
134
|
const sanitizedParams = params?.map(p => {
|
|
138
135
|
if (ArrayBuffer.isView(p)) {
|
|
139
136
|
return p.buffer;
|
|
140
137
|
}
|
|
141
138
|
return p;
|
|
142
139
|
});
|
|
143
|
-
const result = db.
|
|
140
|
+
const result = await db.executeWithHostObjects(query, sanitizedParams);
|
|
144
141
|
enhanceQueryResult(result);
|
|
145
142
|
return result;
|
|
146
143
|
},
|
|
147
|
-
|
|
144
|
+
execute: async (query, params) => {
|
|
148
145
|
const sanitizedParams = params?.map(p => {
|
|
149
146
|
if (ArrayBuffer.isView(p)) {
|
|
150
147
|
return p.buffer;
|
|
151
148
|
}
|
|
152
149
|
return p;
|
|
153
150
|
});
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
151
|
+
let intermediateResult = await db.execute(query, sanitizedParams);
|
|
152
|
+
let rows = [];
|
|
153
|
+
for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
|
|
154
|
+
let row = {};
|
|
155
|
+
for (let j = 0; j < intermediateResult.columnNames.length ?? 0; j++) {
|
|
156
|
+
let columnName = intermediateResult.columnNames[j];
|
|
157
|
+
let value = intermediateResult.rawRows[i][j];
|
|
158
|
+
row[columnName] = value;
|
|
159
|
+
}
|
|
160
|
+
rows.push(row);
|
|
161
|
+
}
|
|
162
|
+
let res = {
|
|
163
|
+
...intermediateResult,
|
|
164
|
+
rows: {
|
|
165
|
+
_array: rows,
|
|
166
|
+
length: rows.length,
|
|
167
|
+
item: idx => rows[idx]
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
return res;
|
|
157
171
|
},
|
|
158
172
|
prepareStatement: query => {
|
|
159
173
|
const stmt = db.prepareStatement(query);
|
|
@@ -167,8 +181,8 @@ function enhanceDB(db, options) {
|
|
|
167
181
|
});
|
|
168
182
|
stmt.bind(sanitizedParams);
|
|
169
183
|
},
|
|
170
|
-
execute: () => {
|
|
171
|
-
const res = stmt.execute();
|
|
184
|
+
execute: async () => {
|
|
185
|
+
const res = await stmt.execute();
|
|
172
186
|
enhanceQueryResult(res);
|
|
173
187
|
return res;
|
|
174
188
|
}
|
|
@@ -176,53 +190,62 @@ function enhanceDB(db, options) {
|
|
|
176
190
|
},
|
|
177
191
|
transaction: async fn => {
|
|
178
192
|
let isFinalized = false;
|
|
179
|
-
|
|
180
|
-
// Local transaction context object implementation
|
|
181
|
-
const execute = (query, params) => {
|
|
193
|
+
const execute = async (query, params) => {
|
|
182
194
|
if (isFinalized) {
|
|
183
195
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
184
196
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
197
|
+
let intermediateResult = await enhancedDb.execute(query, params);
|
|
198
|
+
let rows = [];
|
|
199
|
+
for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
|
|
200
|
+
let row = {};
|
|
201
|
+
for (let j = 0; j < intermediateResult.columnNames.length ?? 0; j++) {
|
|
202
|
+
let columnName = intermediateResult.columnNames[j];
|
|
203
|
+
row[columnName] = intermediateResult.rawRows[i][j];
|
|
204
|
+
}
|
|
205
|
+
rows.push(row);
|
|
190
206
|
}
|
|
191
|
-
|
|
207
|
+
let res = {
|
|
208
|
+
...intermediateResult,
|
|
209
|
+
rows: {
|
|
210
|
+
_array: rows,
|
|
211
|
+
length: 0,
|
|
212
|
+
item: idx => rows[idx]
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
return res;
|
|
192
216
|
};
|
|
193
|
-
const commit = () => {
|
|
217
|
+
const commit = async () => {
|
|
194
218
|
if (isFinalized) {
|
|
195
219
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
196
220
|
}
|
|
197
|
-
const result = enhancedDb.execute('COMMIT;');
|
|
221
|
+
const result = await enhancedDb.execute('COMMIT;');
|
|
198
222
|
isFinalized = true;
|
|
199
223
|
return result;
|
|
200
224
|
};
|
|
201
|
-
const rollback = () => {
|
|
225
|
+
const rollback = async () => {
|
|
202
226
|
if (isFinalized) {
|
|
203
227
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
204
228
|
}
|
|
205
|
-
const result = enhancedDb.execute('ROLLBACK;');
|
|
229
|
+
const result = await enhancedDb.execute('ROLLBACK;');
|
|
206
230
|
isFinalized = true;
|
|
207
231
|
return result;
|
|
208
232
|
};
|
|
209
233
|
async function run() {
|
|
210
234
|
try {
|
|
211
|
-
await enhancedDb.
|
|
235
|
+
await enhancedDb.execute('BEGIN TRANSACTION;');
|
|
212
236
|
await fn({
|
|
213
237
|
commit,
|
|
214
238
|
execute,
|
|
215
|
-
executeAsync,
|
|
216
239
|
rollback
|
|
217
240
|
});
|
|
218
241
|
if (!isFinalized) {
|
|
219
|
-
commit();
|
|
242
|
+
await commit();
|
|
220
243
|
}
|
|
221
244
|
} catch (executionError) {
|
|
222
|
-
console.warn('transaction error', executionError);
|
|
245
|
+
// console.warn('transaction error', executionError);
|
|
223
246
|
if (!isFinalized) {
|
|
224
247
|
try {
|
|
225
|
-
rollback();
|
|
248
|
+
await rollback();
|
|
226
249
|
} catch (rollbackError) {
|
|
227
250
|
throw rollbackError;
|
|
228
251
|
}
|
|
@@ -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","res","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","
|
|
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","res","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRaw","getDbPath","reactiveExecute","sync","close","url","executeWithHostObjects","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","execute","intermediateResult","i","rawRows","row","j","columnNames","columnName","value","push","prepareStatement","stmt","bind","transaction","fn","isFinalized","commit","rollback","run","executionError","rollbackError","Promise","resolve","reject","then","catch","openSync","isLibsql","openRemote","open","moveAssetsDatabase","args","isSQLCipher"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// import NativeOPSQLite from './NativeOPSQLite';
|
|
2
1
|
import { NativeModules } from 'react-native';
|
|
3
2
|
if (global.__OPSQLiteProxy == null) {
|
|
4
3
|
if (NativeModules.OPSQLite == null) {
|
|
@@ -108,13 +107,12 @@ function enhanceDB(db, options) {
|
|
|
108
107
|
attach: db.attach,
|
|
109
108
|
detach: db.detach,
|
|
110
109
|
executeBatch: db.executeBatch,
|
|
111
|
-
executeBatchAsync: db.executeBatchAsync,
|
|
112
110
|
loadFile: db.loadFile,
|
|
113
111
|
updateHook: db.updateHook,
|
|
114
112
|
commitHook: db.commitHook,
|
|
115
113
|
rollbackHook: db.rollbackHook,
|
|
116
114
|
loadExtension: db.loadExtension,
|
|
117
|
-
|
|
115
|
+
executeRaw: db.executeRaw,
|
|
118
116
|
getDbPath: db.getDbPath,
|
|
119
117
|
reactiveExecute: db.reactiveExecute,
|
|
120
118
|
sync: db.sync,
|
|
@@ -122,27 +120,44 @@ function enhanceDB(db, options) {
|
|
|
122
120
|
db.close();
|
|
123
121
|
delete locks[options.url];
|
|
124
122
|
},
|
|
125
|
-
|
|
123
|
+
executeWithHostObjects: async (query, params) => {
|
|
126
124
|
const sanitizedParams = params?.map(p => {
|
|
127
125
|
if (ArrayBuffer.isView(p)) {
|
|
128
126
|
return p.buffer;
|
|
129
127
|
}
|
|
130
128
|
return p;
|
|
131
129
|
});
|
|
132
|
-
const result = db.
|
|
130
|
+
const result = await db.executeWithHostObjects(query, sanitizedParams);
|
|
133
131
|
enhanceQueryResult(result);
|
|
134
132
|
return result;
|
|
135
133
|
},
|
|
136
|
-
|
|
134
|
+
execute: async (query, params) => {
|
|
137
135
|
const sanitizedParams = params?.map(p => {
|
|
138
136
|
if (ArrayBuffer.isView(p)) {
|
|
139
137
|
return p.buffer;
|
|
140
138
|
}
|
|
141
139
|
return p;
|
|
142
140
|
});
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
let intermediateResult = await db.execute(query, sanitizedParams);
|
|
142
|
+
let rows = [];
|
|
143
|
+
for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
|
|
144
|
+
let row = {};
|
|
145
|
+
for (let j = 0; j < intermediateResult.columnNames.length ?? 0; j++) {
|
|
146
|
+
let columnName = intermediateResult.columnNames[j];
|
|
147
|
+
let value = intermediateResult.rawRows[i][j];
|
|
148
|
+
row[columnName] = value;
|
|
149
|
+
}
|
|
150
|
+
rows.push(row);
|
|
151
|
+
}
|
|
152
|
+
let res = {
|
|
153
|
+
...intermediateResult,
|
|
154
|
+
rows: {
|
|
155
|
+
_array: rows,
|
|
156
|
+
length: rows.length,
|
|
157
|
+
item: idx => rows[idx]
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
return res;
|
|
146
161
|
},
|
|
147
162
|
prepareStatement: query => {
|
|
148
163
|
const stmt = db.prepareStatement(query);
|
|
@@ -156,8 +171,8 @@ function enhanceDB(db, options) {
|
|
|
156
171
|
});
|
|
157
172
|
stmt.bind(sanitizedParams);
|
|
158
173
|
},
|
|
159
|
-
execute: () => {
|
|
160
|
-
const res = stmt.execute();
|
|
174
|
+
execute: async () => {
|
|
175
|
+
const res = await stmt.execute();
|
|
161
176
|
enhanceQueryResult(res);
|
|
162
177
|
return res;
|
|
163
178
|
}
|
|
@@ -165,53 +180,62 @@ function enhanceDB(db, options) {
|
|
|
165
180
|
},
|
|
166
181
|
transaction: async fn => {
|
|
167
182
|
let isFinalized = false;
|
|
168
|
-
|
|
169
|
-
// Local transaction context object implementation
|
|
170
|
-
const execute = (query, params) => {
|
|
183
|
+
const execute = async (query, params) => {
|
|
171
184
|
if (isFinalized) {
|
|
172
185
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
173
186
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
187
|
+
let intermediateResult = await enhancedDb.execute(query, params);
|
|
188
|
+
let rows = [];
|
|
189
|
+
for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
|
|
190
|
+
let row = {};
|
|
191
|
+
for (let j = 0; j < intermediateResult.columnNames.length ?? 0; j++) {
|
|
192
|
+
let columnName = intermediateResult.columnNames[j];
|
|
193
|
+
row[columnName] = intermediateResult.rawRows[i][j];
|
|
194
|
+
}
|
|
195
|
+
rows.push(row);
|
|
179
196
|
}
|
|
180
|
-
|
|
197
|
+
let res = {
|
|
198
|
+
...intermediateResult,
|
|
199
|
+
rows: {
|
|
200
|
+
_array: rows,
|
|
201
|
+
length: 0,
|
|
202
|
+
item: idx => rows[idx]
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
return res;
|
|
181
206
|
};
|
|
182
|
-
const commit = () => {
|
|
207
|
+
const commit = async () => {
|
|
183
208
|
if (isFinalized) {
|
|
184
209
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
185
210
|
}
|
|
186
|
-
const result = enhancedDb.execute('COMMIT;');
|
|
211
|
+
const result = await enhancedDb.execute('COMMIT;');
|
|
187
212
|
isFinalized = true;
|
|
188
213
|
return result;
|
|
189
214
|
};
|
|
190
|
-
const rollback = () => {
|
|
215
|
+
const rollback = async () => {
|
|
191
216
|
if (isFinalized) {
|
|
192
217
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
193
218
|
}
|
|
194
|
-
const result = enhancedDb.execute('ROLLBACK;');
|
|
219
|
+
const result = await enhancedDb.execute('ROLLBACK;');
|
|
195
220
|
isFinalized = true;
|
|
196
221
|
return result;
|
|
197
222
|
};
|
|
198
223
|
async function run() {
|
|
199
224
|
try {
|
|
200
|
-
await enhancedDb.
|
|
225
|
+
await enhancedDb.execute('BEGIN TRANSACTION;');
|
|
201
226
|
await fn({
|
|
202
227
|
commit,
|
|
203
228
|
execute,
|
|
204
|
-
executeAsync,
|
|
205
229
|
rollback
|
|
206
230
|
});
|
|
207
231
|
if (!isFinalized) {
|
|
208
|
-
commit();
|
|
232
|
+
await commit();
|
|
209
233
|
}
|
|
210
234
|
} catch (executionError) {
|
|
211
|
-
console.warn('transaction error', executionError);
|
|
235
|
+
// console.warn('transaction error', executionError);
|
|
212
236
|
if (!isFinalized) {
|
|
213
237
|
try {
|
|
214
|
-
rollback();
|
|
238
|
+
await rollback();
|
|
215
239
|
} catch (rollbackError) {
|
|
216
240
|
throw rollbackError;
|
|
217
241
|
}
|
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","res","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","
|
|
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","res","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","tx","shift","setImmediate","start","enhancedDb","delete","attach","detach","executeBatch","loadFile","updateHook","commitHook","rollbackHook","loadExtension","executeRaw","getDbPath","reactiveExecute","sync","close","url","executeWithHostObjects","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","execute","intermediateResult","i","rawRows","row","j","columnNames","columnName","value","push","prepareStatement","stmt","bind","transaction","fn","isFinalized","commit","rollback","run","executionError","rollbackError","Promise","resolve","reject","then","catch","openSync","isLibsql","openRemote","open","moveAssetsDatabase","args","isSQLCipher"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,8 @@ export type QueryResult = {
|
|
|
29
29
|
*/
|
|
30
30
|
item: (idx: number) => any;
|
|
31
31
|
};
|
|
32
|
+
rawRows?: any[];
|
|
33
|
+
columnNames?: string[];
|
|
32
34
|
/**
|
|
33
35
|
* Query metadata, available only for select query results
|
|
34
36
|
*/
|
|
@@ -71,17 +73,16 @@ export interface FileLoadResult extends BatchQueryResult {
|
|
|
71
73
|
commands?: number;
|
|
72
74
|
}
|
|
73
75
|
export interface Transaction {
|
|
74
|
-
commit: () => QueryResult
|
|
75
|
-
execute: (query: string, params?: any[]) => QueryResult
|
|
76
|
-
|
|
77
|
-
rollback: () => QueryResult;
|
|
76
|
+
commit: () => Promise<QueryResult>;
|
|
77
|
+
execute: (query: string, params?: any[]) => Promise<QueryResult>;
|
|
78
|
+
rollback: () => Promise<QueryResult>;
|
|
78
79
|
}
|
|
79
80
|
export interface PendingTransaction {
|
|
80
81
|
start: () => void;
|
|
81
82
|
}
|
|
82
83
|
export type PreparedStatementObj = {
|
|
83
84
|
bind: (params: any[]) => void;
|
|
84
|
-
execute: () => QueryResult
|
|
85
|
+
execute: () => Promise<QueryResult>;
|
|
85
86
|
};
|
|
86
87
|
export type DB = {
|
|
87
88
|
close: () => void;
|
|
@@ -89,10 +90,9 @@ export type DB = {
|
|
|
89
90
|
attach: (mainDbName: string, dbNameToAttach: string, alias: string, location?: string) => void;
|
|
90
91
|
detach: (mainDbName: string, alias: string) => void;
|
|
91
92
|
transaction: (fn: (tx: Transaction) => Promise<void>) => Promise<void>;
|
|
92
|
-
execute: (query: string, params?: any[]) => QueryResult
|
|
93
|
-
|
|
94
|
-
executeBatch: (commands: SQLBatchTuple[]) => BatchQueryResult
|
|
95
|
-
executeBatchAsync: (commands: SQLBatchTuple[]) => Promise<BatchQueryResult>;
|
|
93
|
+
execute: (query: string, params?: any[]) => Promise<QueryResult>;
|
|
94
|
+
executeWithHostObjects: (query: string, params?: any[]) => Promise<QueryResult>;
|
|
95
|
+
executeBatch: (commands: SQLBatchTuple[]) => Promise<BatchQueryResult>;
|
|
96
96
|
loadFile: (location: string) => Promise<FileLoadResult>;
|
|
97
97
|
updateHook: (callback?: ((params: {
|
|
98
98
|
table: string;
|
|
@@ -104,7 +104,7 @@ export type DB = {
|
|
|
104
104
|
rollbackHook: (callback?: (() => void) | null) => void;
|
|
105
105
|
prepareStatement: (query: string) => PreparedStatementObj;
|
|
106
106
|
loadExtension: (path: string, entryPoint?: string) => void;
|
|
107
|
-
|
|
107
|
+
executeRaw: (query: string, params?: any[]) => Promise<any[]>;
|
|
108
108
|
getDbPath: (location?: string) => string;
|
|
109
109
|
reactiveExecute: (params: {
|
|
110
110
|
query: string;
|
|
@@ -141,7 +141,7 @@ export declare const openSync: (options: {
|
|
|
141
141
|
authToken: string;
|
|
142
142
|
name: string;
|
|
143
143
|
location?: string;
|
|
144
|
-
syncInterval
|
|
144
|
+
syncInterval?: number;
|
|
145
145
|
}) => DB;
|
|
146
146
|
export declare const openRemote: (options: {
|
|
147
147
|
url: string;
|