@op-engineering/op-sqlite 8.0.3 → 9.1.0
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/android/build.gradle +1 -7
- package/android/src/main/jniLibs/arm64-v8a/libsqlite_vec.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libsqlite_vec.so +0 -0
- package/android/src/main/jniLibs/x86/libsqlite_vec.so +0 -0
- package/android/src/main/jniLibs/x86_64/libsqlite_vec.so +0 -0
- package/cpp/bridge.cpp +8 -4
- package/cpp/libsql/bridge.cpp +4 -3
- package/cpp/utils.cpp +4 -4
- package/cpp/utils.h +2 -2
- package/ios/sqlitevec.xcframework/ios-arm64/sqlitevec.framework/sqlitevec +0 -0
- package/ios/sqlitevec.xcframework/ios-arm64_x86_64-simulator/sqlitevec.framework/sqlitevec +0 -0
- package/lib/commonjs/index.js +10 -42
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +10 -42
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -11
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/op-sqlite.podspec +1 -1
- package/package.json +1 -1
- package/src/index.ts +14 -59
package/android/build.gradle
CHANGED
|
@@ -88,11 +88,6 @@ def safeExtGet(prop, fallback) {
|
|
|
88
88
|
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
def reactNativeArchitectures() {
|
|
92
|
-
def value = project.getProperties().get("reactNativeArchitectures")
|
|
93
|
-
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
94
|
-
}
|
|
95
|
-
|
|
96
91
|
def getExtOrDefault(name) {
|
|
97
92
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["OPSQLite" + name]
|
|
98
93
|
}
|
|
@@ -116,7 +111,7 @@ android {
|
|
|
116
111
|
}
|
|
117
112
|
|
|
118
113
|
defaultConfig {
|
|
119
|
-
minSdkVersion 23
|
|
114
|
+
minSdkVersion safeExtGet("minSdkVersion", 23)
|
|
120
115
|
targetSdkVersion safeExtGet('targetSdkVersion', 34)
|
|
121
116
|
versionCode 1
|
|
122
117
|
versionName "1.0"
|
|
@@ -157,7 +152,6 @@ android {
|
|
|
157
152
|
"-DUSE_CRSQLITE=${useCRSQLite ? 1 : 0}",
|
|
158
153
|
"-DUSE_LIBSQL=${useLibsql ? 1 : 0}",
|
|
159
154
|
"-DUSE_SQLITE_VEC=${useSqliteVec ? 1 : 0}"
|
|
160
|
-
abiFilters (*reactNativeArchitectures())
|
|
161
155
|
}
|
|
162
156
|
}
|
|
163
157
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/cpp/bridge.cpp
CHANGED
|
@@ -63,7 +63,8 @@ BridgeResult opsqlite_open(std::string const &name,
|
|
|
63
63
|
|
|
64
64
|
if (dbMap.count(name) != 0) {
|
|
65
65
|
throw std::runtime_error(
|
|
66
|
-
"
|
|
66
|
+
"[OP-SQLITE] Only JS connection per database is allowed, db name: " +
|
|
67
|
+
name);
|
|
67
68
|
}
|
|
68
69
|
#endif
|
|
69
70
|
std::string dbPath = opsqlite_get_db_path(name, last_path);
|
|
@@ -399,8 +400,11 @@ BridgeResult opsqlite_execute(std::string const &name, std::string const &query,
|
|
|
399
400
|
int status, current_column, column_count, column_type;
|
|
400
401
|
std::string column_name, column_declared_type;
|
|
401
402
|
std::vector<std::string> column_names;
|
|
403
|
+
column_names.reserve(20);
|
|
402
404
|
std::vector<std::vector<JSVariant>> rows;
|
|
405
|
+
rows.reserve(20);
|
|
403
406
|
std::vector<JSVariant> row;
|
|
407
|
+
row.reserve(10);
|
|
404
408
|
|
|
405
409
|
do {
|
|
406
410
|
const char *query_str =
|
|
@@ -435,7 +439,7 @@ BridgeResult opsqlite_execute(std::string const &name, std::string const &query,
|
|
|
435
439
|
// Do a first pass to get the column names
|
|
436
440
|
for (int i = 0; i < column_count; i++) {
|
|
437
441
|
column_name = sqlite3_column_name(statement, i);
|
|
438
|
-
column_names.
|
|
442
|
+
column_names.emplace_back(column_name);
|
|
439
443
|
}
|
|
440
444
|
|
|
441
445
|
while (is_consuming_rows) {
|
|
@@ -463,9 +467,9 @@ BridgeResult opsqlite_execute(std::string const &name, std::string const &query,
|
|
|
463
467
|
case SQLITE_TEXT: {
|
|
464
468
|
string_value = reinterpret_cast<const char *>(
|
|
465
469
|
sqlite3_column_text(statement, current_column));
|
|
466
|
-
int
|
|
470
|
+
int len = sqlite3_column_bytes(statement, current_column);
|
|
467
471
|
// Specify length too; in case string contains NULL in the middle
|
|
468
|
-
row.emplace_back(std::string(string_value,
|
|
472
|
+
row.emplace_back(std::string(string_value, len));
|
|
469
473
|
break;
|
|
470
474
|
}
|
|
471
475
|
|
package/cpp/libsql/bridge.cpp
CHANGED
|
@@ -253,8 +253,10 @@ void opsqlite_libsql_bind_statement(libsql_stmt_t statement,
|
|
|
253
253
|
JSVariant value = values->at(ii);
|
|
254
254
|
int status;
|
|
255
255
|
|
|
256
|
-
if (std::holds_alternative<bool>(value)
|
|
257
|
-
|
|
256
|
+
if (std::holds_alternative<bool>(value)) {
|
|
257
|
+
status = libsql_bind_int(statement, index,
|
|
258
|
+
static_cast<int>(std::get<bool>(value)), &err);
|
|
259
|
+
} else if (std::holds_alternative<int>(value)) {
|
|
258
260
|
status = libsql_bind_int(statement, index, std::get<int>(value), &err);
|
|
259
261
|
} else if (std::holds_alternative<long long>(value)) {
|
|
260
262
|
status =
|
|
@@ -494,7 +496,6 @@ BridgeResult opsqlite_libsql_execute(std::string const &name,
|
|
|
494
496
|
break;
|
|
495
497
|
|
|
496
498
|
case LIBSQL_TEXT:
|
|
497
|
-
|
|
498
499
|
status = libsql_get_string(row, col, &text_value, &err);
|
|
499
500
|
out_row.emplace_back(text_value);
|
|
500
501
|
break;
|
package/cpp/utils.cpp
CHANGED
|
@@ -13,7 +13,7 @@ namespace opsqlite {
|
|
|
13
13
|
|
|
14
14
|
namespace jsi = facebook::jsi;
|
|
15
15
|
|
|
16
|
-
jsi::Value toJSI(jsi::Runtime &rt, JSVariant value) {
|
|
16
|
+
jsi::Value toJSI(jsi::Runtime &rt, const JSVariant &value) {
|
|
17
17
|
if (std::holds_alternative<bool>(value)) {
|
|
18
18
|
return std::get<bool>(value);
|
|
19
19
|
} else if (std::holds_alternative<int>(value)) {
|
|
@@ -158,7 +158,7 @@ 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) {
|
|
161
|
+
jsi::Value create_js_rows(jsi::Runtime &rt, const BridgeResult &status) {
|
|
162
162
|
if (status.type == SQLiteError) {
|
|
163
163
|
throw std::invalid_argument(status.message);
|
|
164
164
|
}
|
|
@@ -181,10 +181,10 @@ jsi::Value create_js_rows(jsi::Runtime &rt, BridgeResult status) {
|
|
|
181
181
|
auto value = toJSI(rt, native_row[j]);
|
|
182
182
|
row.setValueAtIndex(rt, j, value);
|
|
183
183
|
}
|
|
184
|
-
rows.setValueAtIndex(rt, i,
|
|
184
|
+
rows.setValueAtIndex(rt, i, row);
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
-
res.setProperty(rt, "rawRows",
|
|
187
|
+
res.setProperty(rt, "rawRows", rows);
|
|
188
188
|
|
|
189
189
|
size_t column_count = status.column_names.size();
|
|
190
190
|
auto column_array = jsi::Array(rt, column_count);
|
package/cpp/utils.h
CHANGED
|
@@ -15,7 +15,7 @@ namespace opsqlite {
|
|
|
15
15
|
|
|
16
16
|
namespace jsi = facebook::jsi;
|
|
17
17
|
|
|
18
|
-
jsi::Value toJSI(jsi::Runtime &rt, JSVariant value);
|
|
18
|
+
jsi::Value toJSI(jsi::Runtime &rt, const JSVariant &value);
|
|
19
19
|
JSVariant toVariant(jsi::Runtime &rt, jsi::Value const &value);
|
|
20
20
|
std::vector<std::string> to_string_vec(jsi::Runtime &rt, jsi::Value const &xs);
|
|
21
21
|
std::vector<JSVariant> to_variant_vec(jsi::Runtime &rt, jsi::Value const &xs);
|
|
@@ -23,7 +23,7 @@ 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
|
+
jsi::Value create_js_rows(jsi::Runtime &rt, const BridgeResult &status);
|
|
27
27
|
jsi::Value
|
|
28
28
|
create_raw_result(jsi::Runtime &rt, BridgeResult status,
|
|
29
29
|
const std::vector<std::vector<JSVariant>> *results);
|
|
Binary file
|
|
Binary file
|
package/lib/commonjs/index.js
CHANGED
|
@@ -73,22 +73,6 @@ exports.ANDROID_DATABASE_PATH = ANDROID_DATABASE_PATH;
|
|
|
73
73
|
exports.IOS_LIBRARY_PATH = IOS_LIBRARY_PATH;
|
|
74
74
|
exports.IOS_DOCUMENT_PATH = IOS_DOCUMENT_PATH;
|
|
75
75
|
const locks = {};
|
|
76
|
-
|
|
77
|
-
// Enhance some host functions
|
|
78
|
-
// Add 'item' function to result object to allow the sqlite-storage typeorm driver to work
|
|
79
|
-
function enhanceQueryResult(result) {
|
|
80
|
-
// Add 'item' function to result object to allow the sqlite-storage typeorm driver to work
|
|
81
|
-
if (result.rows == null) {
|
|
82
|
-
result.rows = {
|
|
83
|
-
_array: [],
|
|
84
|
-
length: 0,
|
|
85
|
-
item: idx => result.rows?._array[idx]
|
|
86
|
-
};
|
|
87
|
-
} else {
|
|
88
|
-
result.res = result.rows._array;
|
|
89
|
-
result.rows.item = idx => result.rows?._array[idx];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
76
|
function enhanceDB(db, options) {
|
|
93
77
|
const lock = {
|
|
94
78
|
queue: [],
|
|
@@ -138,7 +122,10 @@ function enhanceDB(db, options) {
|
|
|
138
122
|
return p;
|
|
139
123
|
});
|
|
140
124
|
const result = await db.executeWithHostObjects(query, sanitizedParams);
|
|
141
|
-
|
|
125
|
+
|
|
126
|
+
// Fix this on the native side
|
|
127
|
+
// @ts-ignore
|
|
128
|
+
result.rows = result.rows?._array ?? [];
|
|
142
129
|
return result;
|
|
143
130
|
},
|
|
144
131
|
execute: async (query, params) => {
|
|
@@ -161,12 +148,9 @@ function enhanceDB(db, options) {
|
|
|
161
148
|
}
|
|
162
149
|
let res = {
|
|
163
150
|
...intermediateResult,
|
|
164
|
-
rows
|
|
165
|
-
_array: rows,
|
|
166
|
-
length: rows.length,
|
|
167
|
-
item: idx => rows[idx]
|
|
168
|
-
}
|
|
151
|
+
rows
|
|
169
152
|
};
|
|
153
|
+
delete res.rawRows;
|
|
170
154
|
return res;
|
|
171
155
|
},
|
|
172
156
|
prepareStatement: query => {
|
|
@@ -183,7 +167,9 @@ function enhanceDB(db, options) {
|
|
|
183
167
|
},
|
|
184
168
|
execute: async () => {
|
|
185
169
|
const res = await stmt.execute();
|
|
186
|
-
|
|
170
|
+
// TODO fix on the native side
|
|
171
|
+
// @ts-ignore
|
|
172
|
+
res.rows = res.rows?._array;
|
|
187
173
|
return res;
|
|
188
174
|
}
|
|
189
175
|
};
|
|
@@ -194,25 +180,7 @@ function enhanceDB(db, options) {
|
|
|
194
180
|
if (isFinalized) {
|
|
195
181
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
196
182
|
}
|
|
197
|
-
|
|
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);
|
|
206
|
-
}
|
|
207
|
-
let res = {
|
|
208
|
-
...intermediateResult,
|
|
209
|
-
rows: {
|
|
210
|
-
_array: rows,
|
|
211
|
-
length: 0,
|
|
212
|
-
item: idx => rows[idx]
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
|
-
return res;
|
|
183
|
+
return await enhancedDb.execute(query, params);
|
|
216
184
|
};
|
|
217
185
|
const commit = async () => {
|
|
218
186
|
if (isFinalized) {
|
|
@@ -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","
|
|
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","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","url","executeWithHostObjects","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","rows","_array","execute","intermediateResult","i","rawRows","row","j","columnNames","columnName","value","push","res","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
|
@@ -63,22 +63,6 @@ export const {
|
|
|
63
63
|
*/
|
|
64
64
|
|
|
65
65
|
const locks = {};
|
|
66
|
-
|
|
67
|
-
// Enhance some host functions
|
|
68
|
-
// Add 'item' function to result object to allow the sqlite-storage typeorm driver to work
|
|
69
|
-
function enhanceQueryResult(result) {
|
|
70
|
-
// Add 'item' function to result object to allow the sqlite-storage typeorm driver to work
|
|
71
|
-
if (result.rows == null) {
|
|
72
|
-
result.rows = {
|
|
73
|
-
_array: [],
|
|
74
|
-
length: 0,
|
|
75
|
-
item: idx => result.rows?._array[idx]
|
|
76
|
-
};
|
|
77
|
-
} else {
|
|
78
|
-
result.res = result.rows._array;
|
|
79
|
-
result.rows.item = idx => result.rows?._array[idx];
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
66
|
function enhanceDB(db, options) {
|
|
83
67
|
const lock = {
|
|
84
68
|
queue: [],
|
|
@@ -128,7 +112,10 @@ function enhanceDB(db, options) {
|
|
|
128
112
|
return p;
|
|
129
113
|
});
|
|
130
114
|
const result = await db.executeWithHostObjects(query, sanitizedParams);
|
|
131
|
-
|
|
115
|
+
|
|
116
|
+
// Fix this on the native side
|
|
117
|
+
// @ts-ignore
|
|
118
|
+
result.rows = result.rows?._array ?? [];
|
|
132
119
|
return result;
|
|
133
120
|
},
|
|
134
121
|
execute: async (query, params) => {
|
|
@@ -151,12 +138,9 @@ function enhanceDB(db, options) {
|
|
|
151
138
|
}
|
|
152
139
|
let res = {
|
|
153
140
|
...intermediateResult,
|
|
154
|
-
rows
|
|
155
|
-
_array: rows,
|
|
156
|
-
length: rows.length,
|
|
157
|
-
item: idx => rows[idx]
|
|
158
|
-
}
|
|
141
|
+
rows
|
|
159
142
|
};
|
|
143
|
+
delete res.rawRows;
|
|
160
144
|
return res;
|
|
161
145
|
},
|
|
162
146
|
prepareStatement: query => {
|
|
@@ -173,7 +157,9 @@ function enhanceDB(db, options) {
|
|
|
173
157
|
},
|
|
174
158
|
execute: async () => {
|
|
175
159
|
const res = await stmt.execute();
|
|
176
|
-
|
|
160
|
+
// TODO fix on the native side
|
|
161
|
+
// @ts-ignore
|
|
162
|
+
res.rows = res.rows?._array;
|
|
177
163
|
return res;
|
|
178
164
|
}
|
|
179
165
|
};
|
|
@@ -184,25 +170,7 @@ function enhanceDB(db, options) {
|
|
|
184
170
|
if (isFinalized) {
|
|
185
171
|
throw Error(`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`);
|
|
186
172
|
}
|
|
187
|
-
|
|
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);
|
|
196
|
-
}
|
|
197
|
-
let res = {
|
|
198
|
-
...intermediateResult,
|
|
199
|
-
rows: {
|
|
200
|
-
_array: rows,
|
|
201
|
-
length: 0,
|
|
202
|
-
item: idx => rows[idx]
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
return res;
|
|
173
|
+
return await enhancedDb.execute(query, params);
|
|
206
174
|
};
|
|
207
175
|
const commit = async () => {
|
|
208
176
|
if (isFinalized) {
|
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","
|
|
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","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","url","executeWithHostObjects","query","params","sanitizedParams","map","p","ArrayBuffer","isView","buffer","rows","_array","execute","intermediateResult","i","rawRows","row","j","columnNames","columnName","value","push","res","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":[]}
|
|
@@ -18,17 +18,7 @@ export type QueryResult = {
|
|
|
18
18
|
insertId?: number;
|
|
19
19
|
rowsAffected: number;
|
|
20
20
|
res?: any[];
|
|
21
|
-
rows?:
|
|
22
|
-
/** Raw array with all dataset */
|
|
23
|
-
_array: any[];
|
|
24
|
-
/** The length of the dataset */
|
|
25
|
-
length: number;
|
|
26
|
-
/** A convenience function to access the index based the row object
|
|
27
|
-
* @param idx the row index
|
|
28
|
-
* @returns the row structure identified by column names
|
|
29
|
-
*/
|
|
30
|
-
item: (idx: number) => any;
|
|
31
|
-
};
|
|
21
|
+
rows?: any[];
|
|
32
22
|
rawRows?: any[];
|
|
33
23
|
columnNames?: string[];
|
|
34
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,CAAC;IACb,SAAS,kBAAkB,IAAI,OAAO,CAAC;IACvC,IAAI,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AA8BD,eAAO,MAAM,QAAQ,eAAyB,CAAC;AAE/C,eAAO,MACL,iBAAiB,OACjB,gBAAgB,OAChB,qBAAqB,OACrB,kBAAkB,OAClB,2BAA2B,KAGH,CAAC;AAE3B;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IACZ,IAAI,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
package/op-sqlite.podspec
CHANGED
|
@@ -52,7 +52,7 @@ Pod::Spec.new do |s|
|
|
|
52
52
|
s.license = package["license"]
|
|
53
53
|
s.authors = package["author"]
|
|
54
54
|
|
|
55
|
-
s.platforms = { :ios => "13.0", :osx => "10.15" }
|
|
55
|
+
s.platforms = { :ios => "13.0", :osx => "10.15", :visionos => "1.0" }
|
|
56
56
|
s.source = { :git => "https://github.com/op-engineering/op-sqlite.git", :tag => "#{s.version}" }
|
|
57
57
|
|
|
58
58
|
s.source_files = "ios/**/*.{h,m,mm}", "cpp/**/*.{h,cpp,c}"
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -59,21 +59,10 @@ export type QueryResult = {
|
|
|
59
59
|
insertId?: number;
|
|
60
60
|
rowsAffected: number;
|
|
61
61
|
res?: any[];
|
|
62
|
-
rows?:
|
|
63
|
-
/** Raw array with all dataset */
|
|
64
|
-
_array: any[];
|
|
65
|
-
/** The length of the dataset */
|
|
66
|
-
length: number;
|
|
67
|
-
/** A convenience function to access the index based the row object
|
|
68
|
-
* @param idx the row index
|
|
69
|
-
* @returns the row structure identified by column names
|
|
70
|
-
*/
|
|
71
|
-
item: (idx: number) => any;
|
|
72
|
-
};
|
|
62
|
+
rows?: any[];
|
|
73
63
|
// An array of intermediate results, just values without column names
|
|
74
64
|
rawRows?: any[];
|
|
75
65
|
columnNames?: string[];
|
|
76
|
-
|
|
77
66
|
/**
|
|
78
67
|
* Query metadata, available only for select query results
|
|
79
68
|
*/
|
|
@@ -213,22 +202,6 @@ const locks: Record<
|
|
|
213
202
|
{ queue: PendingTransaction[]; inProgress: boolean }
|
|
214
203
|
> = {};
|
|
215
204
|
|
|
216
|
-
// Enhance some host functions
|
|
217
|
-
// Add 'item' function to result object to allow the sqlite-storage typeorm driver to work
|
|
218
|
-
function enhanceQueryResult(result: QueryResult): void {
|
|
219
|
-
// Add 'item' function to result object to allow the sqlite-storage typeorm driver to work
|
|
220
|
-
if (result.rows == null) {
|
|
221
|
-
result.rows = {
|
|
222
|
-
_array: [],
|
|
223
|
-
length: 0,
|
|
224
|
-
item: (idx: number) => result.rows?._array[idx],
|
|
225
|
-
};
|
|
226
|
-
} else {
|
|
227
|
-
result.res = result.rows._array;
|
|
228
|
-
result.rows.item = (idx: number) => result.rows?._array[idx];
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
205
|
function enhanceDB(db: DB, options: any): DB {
|
|
233
206
|
const lock = {
|
|
234
207
|
queue: [] as PendingTransaction[],
|
|
@@ -287,7 +260,11 @@ function enhanceDB(db: DB, options: any): DB {
|
|
|
287
260
|
});
|
|
288
261
|
|
|
289
262
|
const result = await db.executeWithHostObjects(query, sanitizedParams);
|
|
290
|
-
|
|
263
|
+
|
|
264
|
+
// Fix this on the native side
|
|
265
|
+
// @ts-ignore
|
|
266
|
+
result.rows = result.rows?._array ?? [];
|
|
267
|
+
|
|
291
268
|
return result;
|
|
292
269
|
},
|
|
293
270
|
execute: async (
|
|
@@ -318,12 +295,11 @@ function enhanceDB(db: DB, options: any): DB {
|
|
|
318
295
|
|
|
319
296
|
let res = {
|
|
320
297
|
...intermediateResult,
|
|
321
|
-
rows
|
|
322
|
-
_array: rows,
|
|
323
|
-
length: rows.length,
|
|
324
|
-
item: (idx: number) => rows[idx],
|
|
325
|
-
},
|
|
298
|
+
rows,
|
|
326
299
|
};
|
|
300
|
+
|
|
301
|
+
delete res.rawRows;
|
|
302
|
+
|
|
327
303
|
return res;
|
|
328
304
|
},
|
|
329
305
|
prepareStatement: (query: string) => {
|
|
@@ -343,7 +319,9 @@ function enhanceDB(db: DB, options: any): DB {
|
|
|
343
319
|
},
|
|
344
320
|
execute: async () => {
|
|
345
321
|
const res = await stmt.execute();
|
|
346
|
-
|
|
322
|
+
// TODO fix on the native side
|
|
323
|
+
// @ts-ignore
|
|
324
|
+
res.rows = res.rows?._array;
|
|
347
325
|
return res;
|
|
348
326
|
},
|
|
349
327
|
};
|
|
@@ -359,30 +337,7 @@ function enhanceDB(db: DB, options: any): DB {
|
|
|
359
337
|
`OP-Sqlite Error: Database: ${options.url}. Cannot execute query on finalized transaction`
|
|
360
338
|
);
|
|
361
339
|
}
|
|
362
|
-
|
|
363
|
-
let rows: any[] = [];
|
|
364
|
-
for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
|
|
365
|
-
let row: any = {};
|
|
366
|
-
for (
|
|
367
|
-
let j = 0;
|
|
368
|
-
j < intermediateResult.columnNames!.length ?? 0;
|
|
369
|
-
j++
|
|
370
|
-
) {
|
|
371
|
-
let columnName = intermediateResult.columnNames![j]!;
|
|
372
|
-
row[columnName] = intermediateResult.rawRows![i][j];
|
|
373
|
-
}
|
|
374
|
-
rows.push(row);
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
let res = {
|
|
378
|
-
...intermediateResult,
|
|
379
|
-
rows: {
|
|
380
|
-
_array: rows,
|
|
381
|
-
length: 0,
|
|
382
|
-
item: (idx: number) => rows[idx],
|
|
383
|
-
},
|
|
384
|
-
};
|
|
385
|
-
return res;
|
|
340
|
+
return await enhancedDb.execute(query, params);
|
|
386
341
|
};
|
|
387
342
|
|
|
388
343
|
const commit = async (): Promise<QueryResult> => {
|