react-native-nitro-sqlite 9.8.2 → 10.0.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/RNNitroSQLite.podspec +7 -3
- package/android/CMakeLists.txt +2 -2
- package/cpp/NitroSQLiteDatabaseConnections.cpp +306 -0
- package/cpp/NitroSQLiteDatabaseConnections.hpp +86 -0
- package/cpp/{databaseMigration.cpp → NitroSQLiteDatabaseMigration.cpp} +2 -2
- package/cpp/{sqliteExecuteBatch.cpp → NitroSQLiteExecuteBatch.cpp} +4 -4
- package/cpp/{sqliteExecuteBatch.hpp → NitroSQLiteExecuteBatch.hpp} +3 -6
- package/cpp/{importSqlFile.cpp → NitroSQLiteImportSqlFile.cpp} +4 -4
- package/cpp/{importSqlFile.hpp → NitroSQLiteImportSqlFile.hpp} +3 -3
- package/cpp/{macros.hpp → NitroSQLiteMacros.hpp} +3 -3
- package/cpp/NitroSQLiteOperations.cpp +396 -0
- package/cpp/NitroSQLiteOperations.hpp +72 -0
- package/cpp/{types.hpp → NitroSQLiteTypes.hpp} +3 -6
- package/cpp/{utils.hpp → NitroSQLiteUtils.hpp} +2 -2
- package/cpp/hybridObjects/HybridNitroSQLite.cpp +108 -22
- package/cpp/hybridObjects/HybridNitroSQLite.hpp +49 -5
- package/cpp/hybridObjects/HybridNitroSQLitePreparedStatement.cpp +59 -0
- package/cpp/hybridObjects/HybridNitroSQLitePreparedStatement.hpp +33 -0
- package/cpp/hybridObjects/HybridNitroSQLiteQueryResult.hpp +6 -4
- package/ios/OnLoad.mm +38 -2
- package/lib/commonjs/DatabaseQueue.js +52 -16
- package/lib/commonjs/DatabaseQueue.js.map +1 -1
- package/lib/commonjs/NitroSQLiteError.js +6 -7
- package/lib/commonjs/NitroSQLiteError.js.map +1 -1
- package/lib/commonjs/OnLoad.js +1 -1
- package/lib/commonjs/index.js +8 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/operations/execute.js +19 -4
- package/lib/commonjs/operations/execute.js.map +1 -1
- package/lib/commonjs/operations/executeBatch.js +19 -6
- package/lib/commonjs/operations/executeBatch.js.map +1 -1
- package/lib/commonjs/operations/prepare.js +54 -0
- package/lib/commonjs/operations/prepare.js.map +1 -0
- package/lib/commonjs/operations/session.js +106 -30
- package/lib/commonjs/operations/session.js.map +1 -1
- package/lib/commonjs/operations/transaction.js +30 -5
- package/lib/commonjs/operations/transaction.js.map +1 -1
- package/lib/commonjs/specs/NitroSQLitePreparedStatement.nitro.js +6 -0
- package/lib/commonjs/specs/NitroSQLitePreparedStatement.nitro.js.map +1 -0
- package/lib/commonjs/typeORM.js +10 -3
- package/lib/commonjs/typeORM.js.map +1 -1
- package/lib/commonjs/types.js +35 -9
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/DatabaseQueue.js +52 -16
- package/lib/module/DatabaseQueue.js.map +1 -1
- package/lib/module/NitroSQLiteError.js +6 -7
- package/lib/module/NitroSQLiteError.js.map +1 -1
- package/lib/module/OnLoad.js +1 -1
- package/lib/module/index.js +8 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/operations/execute.js +20 -5
- package/lib/module/operations/execute.js.map +1 -1
- package/lib/module/operations/executeBatch.js +20 -7
- package/lib/module/operations/executeBatch.js.map +1 -1
- package/lib/module/operations/prepare.js +49 -0
- package/lib/module/operations/prepare.js.map +1 -0
- package/lib/module/operations/session.js +107 -31
- package/lib/module/operations/session.js.map +1 -1
- package/lib/module/operations/transaction.js +30 -5
- package/lib/module/operations/transaction.js.map +1 -1
- package/lib/module/specs/NitroSQLitePreparedStatement.nitro.js +4 -0
- package/lib/module/specs/NitroSQLitePreparedStatement.nitro.js.map +1 -0
- package/lib/module/typeORM.js +11 -3
- package/lib/module/typeORM.js.map +1 -1
- package/lib/module/types.js +48 -9
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/commonjs/DatabaseQueue.d.ts +15 -7
- package/lib/typescript/commonjs/DatabaseQueue.d.ts.map +1 -1
- package/lib/typescript/commonjs/NitroSQLiteError.d.ts +6 -7
- package/lib/typescript/commonjs/NitroSQLiteError.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +9 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/operations/execute.d.ts +17 -2
- package/lib/typescript/commonjs/operations/execute.d.ts.map +1 -1
- package/lib/typescript/commonjs/operations/executeBatch.d.ts +15 -2
- package/lib/typescript/commonjs/operations/executeBatch.d.ts.map +1 -1
- package/lib/typescript/commonjs/operations/prepare.d.ts +13 -0
- package/lib/typescript/commonjs/operations/prepare.d.ts.map +1 -0
- package/lib/typescript/commonjs/operations/session.d.ts +8 -0
- package/lib/typescript/commonjs/operations/session.d.ts.map +1 -1
- package/lib/typescript/commonjs/operations/transaction.d.ts +11 -1
- package/lib/typescript/commonjs/operations/transaction.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NitroSQLite.nitro.d.ts +83 -2
- package/lib/typescript/commonjs/specs/NitroSQLite.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NitroSQLitePreparedStatement.nitro.d.ts +26 -0
- package/lib/typescript/commonjs/specs/NitroSQLitePreparedStatement.nitro.d.ts.map +1 -0
- package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts +9 -15
- package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/typeORM.d.ts +14 -3
- package/lib/typescript/commonjs/typeORM.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +124 -21
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/module/DatabaseQueue.d.ts +15 -7
- package/lib/typescript/module/DatabaseQueue.d.ts.map +1 -1
- package/lib/typescript/module/NitroSQLiteError.d.ts +6 -7
- package/lib/typescript/module/NitroSQLiteError.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +9 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/operations/execute.d.ts +17 -2
- package/lib/typescript/module/operations/execute.d.ts.map +1 -1
- package/lib/typescript/module/operations/executeBatch.d.ts +15 -2
- package/lib/typescript/module/operations/executeBatch.d.ts.map +1 -1
- package/lib/typescript/module/operations/prepare.d.ts +13 -0
- package/lib/typescript/module/operations/prepare.d.ts.map +1 -0
- package/lib/typescript/module/operations/session.d.ts +8 -0
- package/lib/typescript/module/operations/session.d.ts.map +1 -1
- package/lib/typescript/module/operations/transaction.d.ts +11 -1
- package/lib/typescript/module/operations/transaction.d.ts.map +1 -1
- package/lib/typescript/module/specs/NitroSQLite.nitro.d.ts +83 -2
- package/lib/typescript/module/specs/NitroSQLite.nitro.d.ts.map +1 -1
- package/lib/typescript/module/specs/NitroSQLitePreparedStatement.nitro.d.ts +26 -0
- package/lib/typescript/module/specs/NitroSQLitePreparedStatement.nitro.d.ts.map +1 -0
- package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts +9 -15
- package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
- package/lib/typescript/module/typeORM.d.ts +14 -3
- package/lib/typescript/module/typeORM.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +124 -21
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/nitrogen/generated/android/RNNitroSQLite+autolinking.cmake +1 -0
- package/nitrogen/generated/shared/c++/HybridNitroSQLitePreparedStatementSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridNitroSQLitePreparedStatementSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridNitroSQLiteSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridNitroSQLiteSpec.hpp +8 -2
- package/package.json +4 -2
- package/src/DatabaseQueue.ts +81 -25
- package/src/NitroSQLiteError.ts +6 -7
- package/src/OnLoad.ts +1 -1
- package/src/index.ts +7 -3
- package/src/operations/execute.ts +22 -3
- package/src/operations/executeBatch.ts +20 -5
- package/src/operations/prepare.ts +69 -0
- package/src/operations/session.ts +136 -45
- package/src/operations/transaction.ts +37 -4
- package/src/specs/NitroSQLite.nitro.ts +84 -2
- package/src/specs/NitroSQLitePreparedStatement.nitro.ts +28 -0
- package/src/specs/NitroSQLiteQueryResult.nitro.ts +9 -15
- package/src/typeORM.ts +14 -3
- package/src/types.ts +135 -21
- package/cpp/operations.cpp +0 -358
- package/cpp/operations.hpp +0 -56
- /package/android/{cpp-adapter.cpp → RNNitroSQLiteAdapter.cpp} +0 -0
- /package/cpp/{databaseMigration.hpp → NitroSQLiteDatabaseMigration.hpp} +0 -0
- /package/cpp/{logs.hpp → NitroSQLiteLogs.hpp} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NitroSQLiteError","_interopRequireDefault","require","e","__esModule","default","databaseQueues","Map","openDatabaseQueue","dbName","isDatabaseOpen","NitroSQLiteError","set","queue","inProgress","closeDatabaseQueue","databaseQueue","getDatabaseQueue","length","delete","has","throwIfDatabaseIsNotOpen","get","queueOperationAsync","callback","Promise","resolve","reject","start","result","error","
|
|
1
|
+
{"version":3,"names":["_NitroSQLiteError","_interopRequireDefault","require","e","__esModule","default","databaseQueues","Map","openDatabaseQueue","dbName","isDatabaseOpen","NitroSQLiteError","String","set","queue","inProgress","activeStatements","draining","closeDatabaseQueue","databaseQueue","getDatabaseQueue","length","delete","has","throwIfDatabaseIsNotOpen","get","queueOperationAsync","callback","enqueueOperation","queueStatementAsync","kind","Promise","resolve","reject","start","result","error","startNextOperations","operation","push","exclusiveIndex","findIndex","statementCount","statements","splice","statement","shift","startOperationSync"],"sourceRoot":"../../src","sources":["DatabaseQueue.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,11 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
const NITRO_SQLITE_ERROR_NAME = 'NitroSQLiteError';
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* Custom error class for NitroSQLite operations
|
|
11
|
-
* Extends the native Error class with proper prototype chain and error handling
|
|
12
|
-
*/
|
|
9
|
+
/** Error thrown by managed NitroSQLite operations. Native errors are wrapped with this class. */
|
|
13
10
|
class NitroSQLiteError extends Error {
|
|
11
|
+
/** Create an error with a message and optional cause. */
|
|
14
12
|
constructor(message, options) {
|
|
15
13
|
super(message, options);
|
|
16
14
|
this.name = NITRO_SQLITE_ERROR_NAME;
|
|
@@ -19,9 +17,10 @@ class NitroSQLiteError extends Error {
|
|
|
19
17
|
Object.setPrototypeOf(this, NitroSQLiteError.prototype);
|
|
20
18
|
}
|
|
21
19
|
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
20
|
+
/** Convert an unknown thrown value to `NitroSQLiteError`.
|
|
21
|
+
* Existing instances pass through; `Error` values keep their stack and cause.
|
|
22
|
+
* @param error Value to normalize.
|
|
23
|
+
* @returns A NitroSQLiteError instance.
|
|
25
24
|
*/
|
|
26
25
|
static fromError(error) {
|
|
27
26
|
if (error instanceof NitroSQLiteError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NITRO_SQLITE_ERROR_NAME","NitroSQLiteError","Error","constructor","message","options","name","Object","setPrototypeOf","prototype","fromError","error","nitroSQLiteError","cause","stack","exports","default"],"sourceRoot":"../../src","sources":["NitroSQLiteError.ts"],"mappings":";;;;;;AAAA,MAAMA,uBAAuB,GAAG,kBAA2B;;AAE3D;
|
|
1
|
+
{"version":3,"names":["NITRO_SQLITE_ERROR_NAME","NitroSQLiteError","Error","constructor","message","options","name","Object","setPrototypeOf","prototype","fromError","error","nitroSQLiteError","cause","stack","exports","default"],"sourceRoot":"../../src","sources":["NitroSQLiteError.ts"],"mappings":";;;;;;AAAA,MAAMA,uBAAuB,GAAG,kBAA2B;;AAE3D;AACe,MAAMC,gBAAgB,SAASC,KAAK,CAAC;EAClD;EACAC,WAAWA,CAACC,OAAe,EAAEC,OAAsB,EAAE;IACnD,KAAK,CAACD,OAAO,EAAEC,OAAO,CAAC;IACvB,IAAI,CAACC,IAAI,GAAGN,uBAAuB;;IAEnC;IACAO,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEP,gBAAgB,CAACQ,SAAS,CAAC;EACzD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,SAASA,CAACC,KAAc,EAAoB;IACjD,IAAIA,KAAK,YAAYV,gBAAgB,EAAE;MACrC,OAAOU,KAAK;IACd;IAEA,IAAIA,KAAK,YAAYT,KAAK,EAAE;MAC1B,MAAMU,gBAAgB,GAAG,IAAIX,gBAAgB,CAACU,KAAK,CAACP,OAAO,EAAE;QAC3DS,KAAK,EAAEF,KAAK,CAACE;MACf,CAAC,CAAC;;MAEF;MACA,IAAIF,KAAK,CAACG,KAAK,EAAE;QACfF,gBAAgB,CAACE,KAAK,GAAGH,KAAK,CAACG,KAAK;MACtC;MACA,OAAOF,gBAAgB;IACzB;IAEA,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO,IAAIV,gBAAgB,CAACU,KAAK,CAAC;IACpC;IAEA,OAAO,IAAIV,gBAAgB,CAAC,wBAAwB,EAAE;MACpDY,KAAK,EAAEF;IACT,CAAC,CAAC;EACJ;AACF;AAACI,OAAA,CAAAC,OAAA,GAAAf,gBAAA","ignoreList":[]}
|
package/lib/commonjs/OnLoad.js
CHANGED
package/lib/commonjs/index.js
CHANGED
|
@@ -26,22 +26,27 @@ var _transaction = require("./operations/transaction.js");
|
|
|
26
26
|
var _nitro = require("./nitro.js");
|
|
27
27
|
var _session = require("./operations/session.js");
|
|
28
28
|
var _execute = require("./operations/execute.js");
|
|
29
|
+
var _prepare = require("./operations/prepare.js");
|
|
29
30
|
var _OnLoad = require("./OnLoad");
|
|
30
31
|
var _executeBatch = require("./operations/executeBatch.js");
|
|
31
32
|
var _NitroSQLiteError = _interopRequireDefault(require("./NitroSQLiteError.js"));
|
|
32
33
|
var _typeORM = require("./typeORM.js");
|
|
33
34
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
34
35
|
(0, _OnLoad.init)();
|
|
36
|
+
|
|
37
|
+
/** Database entry point. Prefer {@link open} for a managed connection.
|
|
38
|
+
* `native` exposes the Nitro object directly and bypasses the JavaScript queue.
|
|
39
|
+
*/
|
|
35
40
|
const NitroSQLite = exports.NitroSQLite = {
|
|
36
41
|
..._nitro.HybridNitroSQLite,
|
|
37
42
|
native: _nitro.HybridNitroSQLite,
|
|
38
|
-
//
|
|
39
|
-
// where the database name can be ommited once opened
|
|
43
|
+
// The managed open method returns a connection bound to its database name.
|
|
40
44
|
open: _session.open,
|
|
41
|
-
//
|
|
45
|
+
// Managed query methods add typed rows and normalize errors.
|
|
42
46
|
transaction: _transaction.transaction,
|
|
43
47
|
execute: _execute.execute,
|
|
44
48
|
executeAsync: _execute.executeAsync,
|
|
49
|
+
prepare: _prepare.prepare,
|
|
45
50
|
executeBatch: _executeBatch.executeBatch,
|
|
46
51
|
executeBatchAsync: _executeBatch.executeBatchAsync
|
|
47
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_transaction","require","_nitro","_session","_execute","_OnLoad","_executeBatch","_NitroSQLiteError","_interopRequireDefault","_typeORM","e","__esModule","default","init","NitroSQLite","exports","HybridNitroSQLite","native","open","transaction","execute","executeAsync","executeBatch","executeBatchAsync"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,
|
|
1
|
+
{"version":3,"names":["_transaction","require","_nitro","_session","_execute","_prepare","_OnLoad","_executeBatch","_NitroSQLiteError","_interopRequireDefault","_typeORM","e","__esModule","default","init","NitroSQLite","exports","HybridNitroSQLite","native","open","transaction","execute","executeAsync","prepare","executeBatch","executeBatchAsync"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAsBA,IAAAO,iBAAA,GAAAC,sBAAA,CAAAR,OAAA;AAEA,IAAAS,QAAA,GAAAT,OAAA;AAAyC,SAAAQ,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAtBzC,IAAAG,YAAI,EAAC,CAAC;;AAEN;AACA;AACA;AACO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzB,GAAGE,wBAAiB;EACpBC,MAAM,EAAED,wBAAiB;EACzB;EACAE,IAAI,EAAJA,aAAI;EACJ;EACAC,WAAW,EAAXA,wBAAW;EACXC,OAAO,EAAPA,gBAAO;EACPC,YAAY,EAAZA,qBAAY;EACZC,OAAO,EAAPA,gBAAO;EACPC,YAAY,EAAZA,0BAAY;EACZC,iBAAiB,EAAjBA;AACF,CAAC","ignoreList":[]}
|
|
@@ -14,14 +14,21 @@ var _nitro = require("../nitro.js");
|
|
|
14
14
|
var _NitroSQLiteError = _interopRequireDefault(require("../NitroSQLiteError.js"));
|
|
15
15
|
var _DatabaseQueue = require("../DatabaseQueue.js");
|
|
16
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
/** Execute one SQL statement synchronously by database name.
|
|
18
|
+
* Uses the managed queue when the database has an open managed connection.
|
|
19
|
+
* @param dbName Name of an open native database.
|
|
20
|
+
* @param query SQL statement with optional positional placeholders.
|
|
21
|
+
* @param params Values bound to the placeholders.
|
|
22
|
+
* @returns The query result with typed rows.
|
|
23
|
+
*/
|
|
17
24
|
function execute(dbName, query, params) {
|
|
18
25
|
if (!(0, _DatabaseQueue.isDatabaseOpen)(dbName)) {
|
|
19
26
|
return executeNative(dbName, query, params);
|
|
20
27
|
}
|
|
21
28
|
return executeManaged(dbName, query, params);
|
|
22
29
|
}
|
|
23
|
-
function executeManaged(dbName, query, params) {
|
|
24
|
-
return (0, _DatabaseQueue.startOperationSync)(
|
|
30
|
+
function executeManaged(dbName, query, params, queueKey = dbName) {
|
|
31
|
+
return (0, _DatabaseQueue.startOperationSync)(queueKey, () => executeNative(dbName, query, params));
|
|
25
32
|
}
|
|
26
33
|
function executeNative(dbName, query, params) {
|
|
27
34
|
try {
|
|
@@ -31,14 +38,22 @@ function executeNative(dbName, query, params) {
|
|
|
31
38
|
throw _NitroSQLiteError.default.fromError(error);
|
|
32
39
|
}
|
|
33
40
|
}
|
|
41
|
+
|
|
42
|
+
/** Execute one SQL statement asynchronously by database name.
|
|
43
|
+
* Uses the managed queue when the database has an open managed connection.
|
|
44
|
+
* @param dbName Name of an open native database.
|
|
45
|
+
* @param query SQL statement with optional positional placeholders.
|
|
46
|
+
* @param params Values bound to the placeholders.
|
|
47
|
+
* @returns A promise of the query result with typed rows.
|
|
48
|
+
*/
|
|
34
49
|
async function executeAsync(dbName, query, params) {
|
|
35
50
|
if (!(0, _DatabaseQueue.isDatabaseOpen)(dbName)) {
|
|
36
51
|
return executeAsyncNative(dbName, query, params);
|
|
37
52
|
}
|
|
38
53
|
return executeAsyncManaged(dbName, query, params);
|
|
39
54
|
}
|
|
40
|
-
async function executeAsyncManaged(dbName, query, params) {
|
|
41
|
-
return (0, _DatabaseQueue.
|
|
55
|
+
async function executeAsyncManaged(dbName, query, params, queueKey = dbName) {
|
|
56
|
+
return (0, _DatabaseQueue.queueStatementAsync)(queueKey, () => executeAsyncNative(dbName, query, params));
|
|
42
57
|
}
|
|
43
58
|
async function executeAsyncNative(dbName, query, params) {
|
|
44
59
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_nitro","require","_NitroSQLiteError","_interopRequireDefault","_DatabaseQueue","e","__esModule","default","execute","dbName","query","params","isDatabaseOpen","executeNative","executeManaged","startOperationSync","nativeResult","HybridNitroSQLite","buildJSQueryResult","error","NitroSQLiteError","fromError","executeAsync","executeAsyncNative","executeAsyncManaged","
|
|
1
|
+
{"version":3,"names":["_nitro","require","_NitroSQLiteError","_interopRequireDefault","_DatabaseQueue","e","__esModule","default","execute","dbName","query","params","isDatabaseOpen","executeNative","executeManaged","queueKey","startOperationSync","nativeResult","HybridNitroSQLite","buildJSQueryResult","error","NitroSQLiteError","fromError","executeAsync","executeAsyncNative","executeAsyncManaged","queueStatementAsync","result","resultWithRows","results","rows","_array","length","item","idx"],"sourceRoot":"../../../src","sources":["operations/execute.ts"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,cAAA,GAAAH,OAAA;AAIyB,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGzB;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,OAAOA,CACrBC,MAAc,EACdC,KAAa,EACbC,MAA0B,EACR;EAClB,IAAI,CAAC,IAAAC,6BAAc,EAACH,MAAM,CAAC,EAAE;IAC3B,OAAOI,aAAa,CAACJ,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;EAC7C;EAEA,OAAOG,cAAc,CAACL,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;AAC9C;AAEO,SAASG,cAAcA,CAC5BL,MAAc,EACdC,KAAa,EACbC,MAA0B,EAC1BI,QAA0B,GAAGN,MAAM,EACjB;EAClB,OAAO,IAAAO,iCAAkB,EAACD,QAAQ,EAAE,MAClCF,aAAa,CAACJ,MAAM,EAAEC,KAAK,EAAEC,MAAM,CACrC,CAAC;AACH;AAEO,SAASE,aAAaA,CAC3BJ,MAAc,EACdC,KAAa,EACbC,MAA0B,EACR;EAClB,IAAI;IACF,MAAMM,YAAY,GAAGC,wBAAiB,CAACV,OAAO,CAACC,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;IACrE,OAAOQ,kBAAkB,CAAMF,YAAY,CAAC;EAC9C,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;EACzC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeG,YAAYA,CAChCd,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,IAAI,CAAC,IAAAC,6BAAc,EAACH,MAAM,CAAC,EAAE;IAC3B,OAAOe,kBAAkB,CAACf,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;EAClD;EAEA,OAAOc,mBAAmB,CAAChB,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;AACnD;AAEO,eAAec,mBAAmBA,CACvChB,MAAc,EACdC,KAAa,EACbC,MAA0B,EAC1BI,QAA0B,GAAGN,MAAM,EACR;EAC3B,OAAO,IAAAiB,kCAAmB,EAACX,QAAQ,EAAE,MACnCS,kBAAkB,CAACf,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAC1C,CAAC;AACH;AAEO,eAAea,kBAAkBA,CACtCf,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,IAAI;IACF,MAAMM,YAAY,GAAG,MAAMC,wBAAiB,CAACK,YAAY,CACvDd,MAAM,EACNC,KAAK,EACLC,MACF,CAAC;IACD,OAAOQ,kBAAkB,CAAMF,YAAY,CAAC;EAC9C,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;EACzC;AACF;AAEO,SAASD,kBAAkBA,CAChCQ,MAA8B,EACZ;EAClB,MAAMC,cAAc,GAAGD,MAA0B;EACjD,MAAME,OAAO,GAAGF,MAAM,CAACE,OAAgB;EAEvCD,cAAc,CAACE,IAAI,GAAG;IACpBC,MAAM,EAAEF,OAAO;IACfG,MAAM,EAAEH,OAAO,CAACG,MAAM;IACtBC,IAAI,EAAGC,GAAW,IAAKL,OAAO,CAACK,GAAG;EACpC,CAAC;EAED,OAAON,cAAc;AACvB","ignoreList":[]}
|
|
@@ -9,17 +9,30 @@ var _nitro = require("../nitro.js");
|
|
|
9
9
|
var _DatabaseQueue = require("../DatabaseQueue.js");
|
|
10
10
|
var _NitroSQLiteError = _interopRequireDefault(require("../NitroSQLiteError.js"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/** Execute a batch synchronously in one exclusive transaction.
|
|
13
|
+
* Requires an open managed connection; throws if it is busy or the batch is empty.
|
|
14
|
+
* @param dbName Name of the open database.
|
|
15
|
+
* @param commands SQL commands and optional parameter sets.
|
|
16
|
+
* @returns Total affected row count.
|
|
17
|
+
*/
|
|
18
|
+
function executeBatch(dbName, commands, queueKey = dbName) {
|
|
19
|
+
(0, _DatabaseQueue.throwIfDatabaseIsNotOpen)(queueKey);
|
|
14
20
|
try {
|
|
15
|
-
return (0, _DatabaseQueue.startOperationSync)(
|
|
21
|
+
return (0, _DatabaseQueue.startOperationSync)(queueKey, () => _nitro.HybridNitroSQLite.executeBatch(dbName, commands));
|
|
16
22
|
} catch (error) {
|
|
17
23
|
throw _NitroSQLiteError.default.fromError(error);
|
|
18
24
|
}
|
|
19
25
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
|
|
27
|
+
/** Queue a batch in one exclusive transaction.
|
|
28
|
+
* Requires an open managed connection; a failed command rolls back the batch.
|
|
29
|
+
* @param dbName Name of the open database.
|
|
30
|
+
* @param commands SQL commands and optional parameter sets.
|
|
31
|
+
* @returns A promise of the total affected row count.
|
|
32
|
+
*/
|
|
33
|
+
async function executeBatchAsync(dbName, commands, queueKey = dbName) {
|
|
34
|
+
(0, _DatabaseQueue.throwIfDatabaseIsNotOpen)(queueKey);
|
|
35
|
+
return (0, _DatabaseQueue.queueStatementAsync)(queueKey, async () => {
|
|
23
36
|
try {
|
|
24
37
|
return await _nitro.HybridNitroSQLite.executeBatchAsync(dbName, commands);
|
|
25
38
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_nitro","require","_DatabaseQueue","_NitroSQLiteError","_interopRequireDefault","e","__esModule","default","executeBatch","dbName","commands","throwIfDatabaseIsNotOpen","startOperationSync","HybridNitroSQLite","error","NitroSQLiteError","fromError","executeBatchAsync","
|
|
1
|
+
{"version":3,"names":["_nitro","require","_DatabaseQueue","_NitroSQLiteError","_interopRequireDefault","e","__esModule","default","executeBatch","dbName","commands","queueKey","throwIfDatabaseIsNotOpen","startOperationSync","HybridNitroSQLite","error","NitroSQLiteError","fromError","executeBatchAsync","queueStatementAsync"],"sourceRoot":"../../../src","sources":["operations/executeBatch.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAkD,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIlD;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,YAAYA,CAC1BC,MAAc,EACdC,QAA6B,EAC7BC,QAA0B,GAAGF,MAAM,EACjB;EAClB,IAAAG,uCAAwB,EAACD,QAAQ,CAAC;EAElC,IAAI;IACF,OAAO,IAAAE,iCAAkB,EAACF,QAAQ,EAAE,MAClCG,wBAAiB,CAACN,YAAY,CAACC,MAAM,EAAEC,QAAQ,CACjD,CAAC;EACH,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;EACzC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeG,iBAAiBA,CACrCT,MAAc,EACdC,QAA6B,EAC7BC,QAA0B,GAAGF,MAAM,EACR;EAC3B,IAAAG,uCAAwB,EAACD,QAAQ,CAAC;EAElC,OAAO,IAAAQ,kCAAmB,EAACR,QAAQ,EAAE,YAAY;IAC/C,IAAI;MACF,OAAO,MAAMG,wBAAiB,CAACI,iBAAiB,CAACT,MAAM,EAAEC,QAAQ,CAAC;IACpE,CAAC,CAAC,OAAOK,KAAK,EAAE;MACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;IACzC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.prepare = prepare;
|
|
7
|
+
var _nitro = require("../nitro.js");
|
|
8
|
+
var _NitroSQLiteError = _interopRequireDefault(require("../NitroSQLiteError.js"));
|
|
9
|
+
var _execute = require("./execute.js");
|
|
10
|
+
var _DatabaseQueue = require("../DatabaseQueue.js");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
/**
|
|
13
|
+
* Prepare one SQL statement on an open managed connection for repeated execution.
|
|
14
|
+
* Synchronous preparation throws if the connection is busy. Finalize the returned
|
|
15
|
+
* statement before closing the connection.
|
|
16
|
+
* @param dbName Database name or independent connection ID.
|
|
17
|
+
* @param query SQL statement with optional positional placeholders.
|
|
18
|
+
* @param queueKey Internal managed queue key; omit when using the public API.
|
|
19
|
+
* @returns A statement whose executions use the same connection queue.
|
|
20
|
+
*/
|
|
21
|
+
function prepare(dbName, query, queueKey = dbName) {
|
|
22
|
+
try {
|
|
23
|
+
const nativeStatement = (0, _DatabaseQueue.startOperationSync)(queueKey, () => _nitro.HybridNitroSQLite.prepare(dbName, query));
|
|
24
|
+
return {
|
|
25
|
+
get isFinalized() {
|
|
26
|
+
return nativeStatement.isFinalized;
|
|
27
|
+
},
|
|
28
|
+
execute: params => {
|
|
29
|
+
try {
|
|
30
|
+
return (0, _DatabaseQueue.startOperationSync)(queueKey, () => (0, _execute.buildJSQueryResult)(nativeStatement.execute(params)));
|
|
31
|
+
} catch (error) {
|
|
32
|
+
throw _NitroSQLiteError.default.fromError(error);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
executeAsync: async params => {
|
|
36
|
+
try {
|
|
37
|
+
return await (0, _DatabaseQueue.queueOperationAsync)(queueKey, async () => (0, _execute.buildJSQueryResult)(await nativeStatement.executeAsync(params)));
|
|
38
|
+
} catch (error) {
|
|
39
|
+
throw _NitroSQLiteError.default.fromError(error);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
finalize: () => {
|
|
43
|
+
try {
|
|
44
|
+
(0, _DatabaseQueue.startOperationSync)(queueKey, () => nativeStatement.finalize());
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw _NitroSQLiteError.default.fromError(error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
} catch (error) {
|
|
51
|
+
throw _NitroSQLiteError.default.fromError(error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_nitro","require","_NitroSQLiteError","_interopRequireDefault","_execute","_DatabaseQueue","e","__esModule","default","prepare","dbName","query","queueKey","nativeStatement","startOperationSync","HybridNitroSQLite","isFinalized","execute","params","buildJSQueryResult","error","NitroSQLiteError","fromError","executeAsync","queueOperationAsync","finalize"],"sourceRoot":"../../../src","sources":["operations/prepare.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAOA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAA0E,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,OAAOA,CACrBC,MAAc,EACdC,KAAa,EACbC,QAA0B,GAAGF,MAAM,EAChB;EACnB,IAAI;IACF,MAAMG,eAAe,GAAG,IAAAC,iCAAkB,EAACF,QAAQ,EAAE,MACnDG,wBAAiB,CAACN,OAAO,CAACC,MAAM,EAAEC,KAAK,CACzC,CAAC;IAED,OAAO;MACL,IAAIK,WAAWA,CAAA,EAAG;QAChB,OAAOH,eAAe,CAACG,WAAW;MACpC,CAAC;MACDC,OAAO,EACLC,MAA0B,IACL;QACrB,IAAI;UACF,OAAO,IAAAJ,iCAAkB,EAACF,QAAQ,EAAE,MAClC,IAAAO,2BAAkB,EAACN,eAAe,CAACI,OAAO,CAACC,MAAM,CAAC,CACpD,CAAC;QACH,CAAC,CAAC,OAAOE,KAAK,EAAE;UACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;QACzC;MACF,CAAC;MACDG,YAAY,EAAE,MACZL,MAA0B,IACI;QAC9B,IAAI;UACF,OAAO,MAAM,IAAAM,kCAAmB,EAACZ,QAAQ,EAAE,YACzC,IAAAO,2BAAkB,EAAC,MAAMN,eAAe,CAACU,YAAY,CAACL,MAAM,CAAC,CAC/D,CAAC;QACH,CAAC,CAAC,OAAOE,KAAK,EAAE;UACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;QACzC;MACF,CAAC;MACDK,QAAQ,EAAEA,CAAA,KAAM;QACd,IAAI;UACF,IAAAX,iCAAkB,EAACF,QAAQ,EAAE,MAAMC,eAAe,CAACY,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,OAAOL,KAAK,EAAE;UACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;QACzC;MACF;IACF,CAAC;EACH,CAAC,CAAC,OAAOA,KAAK,EAAE;IACd,MAAMC,yBAAgB,CAACC,SAAS,CAACF,KAAK,CAAC;EACzC;AACF","ignoreList":[]}
|
|
@@ -8,60 +8,136 @@ var _nitro = require("../nitro.js");
|
|
|
8
8
|
var _transaction = require("./transaction.js");
|
|
9
9
|
var _execute = require("./execute.js");
|
|
10
10
|
var _executeBatch = require("./executeBatch.js");
|
|
11
|
+
var _prepare = require("./prepare.js");
|
|
11
12
|
var _NitroSQLiteError = _interopRequireDefault(require("../NitroSQLiteError.js"));
|
|
12
13
|
var _DatabaseQueue = require("../DatabaseQueue.js");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
/**
|
|
16
|
+
* Open a database and return a managed connection. The default connection is
|
|
17
|
+
* addressed by its name, and opening it twice throws. Set `connection` to
|
|
18
|
+
* `'independent'` to open another native handle to the same file. Async calls
|
|
19
|
+
* on each connection run in call order.
|
|
20
|
+
* @param options Database name, optional directory, connection mode, and read-only setting.
|
|
21
|
+
* @returns A connection bound to the opened native handle.
|
|
22
|
+
*/
|
|
14
23
|
function open(options) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
const {
|
|
25
|
+
name,
|
|
26
|
+
location: databaseLocation,
|
|
27
|
+
connection,
|
|
28
|
+
readOnly
|
|
29
|
+
} = options;
|
|
30
|
+
const {
|
|
31
|
+
connectionId,
|
|
32
|
+
queueKey
|
|
33
|
+
} = openNativeConnection(options);
|
|
34
|
+
const connectionQueue = (0, _DatabaseQueue.getDatabaseQueue)(queueKey);
|
|
35
|
+
const assertCurrentConnection = () => {
|
|
36
|
+
if (!(0, _DatabaseQueue.isDatabaseOpen)(queueKey) || (0, _DatabaseQueue.getDatabaseQueue)(queueKey) !== connectionQueue) {
|
|
37
|
+
throw new _NitroSQLiteError.default(`Database ${name} is not open. There is no connection to the database.`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const assertNoReplacement = () => {
|
|
41
|
+
if ((0, _DatabaseQueue.isDatabaseOpen)(queueKey) && (0, _DatabaseQueue.getDatabaseQueue)(queueKey) !== connectionQueue) {
|
|
42
|
+
throw new _NitroSQLiteError.default(`Database ${name} has been reopened with another connection.`);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const runSyncOperation = callback => {
|
|
46
|
+
try {
|
|
47
|
+
assertCurrentConnection();
|
|
48
|
+
return (0, _DatabaseQueue.startOperationSync)(queueKey, callback);
|
|
49
|
+
} catch (error) {
|
|
50
|
+
throw _NitroSQLiteError.default.fromError(error);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const runOperation = callback => {
|
|
54
|
+
assertCurrentConnection();
|
|
55
|
+
return callback();
|
|
56
|
+
};
|
|
22
57
|
return {
|
|
23
58
|
close: () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
(0, _DatabaseQueue.closeDatabaseQueue)(options.name);
|
|
27
|
-
} catch (error) {
|
|
28
|
-
throw _NitroSQLiteError.default.fromError(error);
|
|
29
|
-
}
|
|
59
|
+
runSyncOperation(() => _nitro.HybridNitroSQLite.close(connectionId));
|
|
60
|
+
(0, _DatabaseQueue.closeDatabaseQueue)(queueKey);
|
|
30
61
|
},
|
|
31
62
|
delete: () => {
|
|
63
|
+
if (readOnly) {
|
|
64
|
+
throw new _NitroSQLiteError.default(`Cannot delete read-only database ${name}.`);
|
|
65
|
+
}
|
|
66
|
+
let dropFailed = false;
|
|
32
67
|
try {
|
|
33
|
-
|
|
34
|
-
|
|
68
|
+
assertNoReplacement();
|
|
69
|
+
const drop = () => {
|
|
70
|
+
try {
|
|
71
|
+
if (connection === 'independent') {
|
|
72
|
+
_nitro.HybridNitroSQLite.drop(name, databaseLocation, connectionId);
|
|
73
|
+
} else {
|
|
74
|
+
_nitro.HybridNitroSQLite.drop(name, databaseLocation);
|
|
75
|
+
}
|
|
76
|
+
} catch (error) {
|
|
77
|
+
dropFailed = true;
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
if (!(0, _DatabaseQueue.isDatabaseOpen)(queueKey)) {
|
|
82
|
+
drop();
|
|
35
83
|
return;
|
|
36
84
|
}
|
|
37
|
-
(0, _DatabaseQueue.startOperationSync)(
|
|
38
|
-
(0, _DatabaseQueue.closeDatabaseQueue)(
|
|
85
|
+
(0, _DatabaseQueue.startOperationSync)(queueKey, drop);
|
|
86
|
+
(0, _DatabaseQueue.closeDatabaseQueue)(queueKey);
|
|
39
87
|
} catch (error) {
|
|
88
|
+
if (dropFailed && (0, _DatabaseQueue.isDatabaseOpen)(queueKey) && (0, _DatabaseQueue.getDatabaseQueue)(queueKey) === connectionQueue && !_nitro.HybridNitroSQLite.isConnectionOpen(connectionId)) {
|
|
89
|
+
(0, _DatabaseQueue.closeDatabaseQueue)(queueKey);
|
|
90
|
+
}
|
|
40
91
|
throw _NitroSQLiteError.default.fromError(error);
|
|
41
92
|
}
|
|
42
93
|
},
|
|
43
|
-
attach: (dbNameToAttach, alias, location) => runSyncOperation(
|
|
44
|
-
detach: alias => runSyncOperation(
|
|
45
|
-
transaction: fn => (0, _transaction.transaction)(
|
|
46
|
-
execute: (query, params) => (0, _execute.executeManaged)(
|
|
47
|
-
executeAsync: (query, params) => (0, _execute.executeAsyncManaged)(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
94
|
+
attach: (dbNameToAttach, alias, location) => runSyncOperation(() => _nitro.HybridNitroSQLite.attach(connectionId, dbNameToAttach, alias, location)),
|
|
95
|
+
detach: alias => runSyncOperation(() => _nitro.HybridNitroSQLite.detach(connectionId, alias)),
|
|
96
|
+
transaction: async fn => runOperation(() => (0, _transaction.transaction)(connectionId, fn, false, queueKey)),
|
|
97
|
+
execute: (query, params) => runOperation(() => (0, _execute.executeManaged)(connectionId, query, params, queueKey)),
|
|
98
|
+
executeAsync: async (query, params) => runOperation(() => (0, _execute.executeAsyncManaged)(connectionId, query, params, queueKey)),
|
|
99
|
+
prepare: query => runOperation(() => (0, _prepare.prepare)(connectionId, query, queueKey)),
|
|
100
|
+
executeBatch: commands => runOperation(() => (0, _executeBatch.executeBatch)(connectionId, commands, queueKey)),
|
|
101
|
+
executeBatchAsync: async commands => runOperation(() => (0, _executeBatch.executeBatchAsync)(connectionId, commands, queueKey)),
|
|
102
|
+
loadFile: location => runSyncOperation(() => _nitro.HybridNitroSQLite.loadFile(connectionId, location)),
|
|
103
|
+
loadFileAsync: location => runOperation(() => (0, _DatabaseQueue.queueStatementAsync)(queueKey, async () => {
|
|
52
104
|
try {
|
|
53
|
-
return await _nitro.HybridNitroSQLite.loadFileAsync(
|
|
105
|
+
return await _nitro.HybridNitroSQLite.loadFileAsync(connectionId, location);
|
|
54
106
|
} catch (error) {
|
|
55
107
|
throw _NitroSQLiteError.default.fromError(error);
|
|
56
108
|
}
|
|
57
|
-
})
|
|
109
|
+
}))
|
|
58
110
|
};
|
|
59
111
|
}
|
|
60
|
-
function
|
|
112
|
+
function openNativeConnection(options) {
|
|
113
|
+
if (options.connection === 'independent') {
|
|
114
|
+
let connectionId;
|
|
115
|
+
try {
|
|
116
|
+
connectionId = options.readOnly ? _nitro.HybridNitroSQLite.openConnection(options.name, options.location, true) : _nitro.HybridNitroSQLite.openConnection(options.name, options.location);
|
|
117
|
+
const queueKey = Symbol(options.name);
|
|
118
|
+
(0, _DatabaseQueue.openDatabaseQueue)(queueKey);
|
|
119
|
+
return {
|
|
120
|
+
connectionId,
|
|
121
|
+
queueKey
|
|
122
|
+
};
|
|
123
|
+
} catch (error) {
|
|
124
|
+
throw _NitroSQLiteError.default.fromError(error);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
(0, _DatabaseQueue.openDatabaseQueue)(options.name);
|
|
61
128
|
try {
|
|
62
|
-
|
|
129
|
+
if (options.readOnly) {
|
|
130
|
+
_nitro.HybridNitroSQLite.open(options.name, options.location, true);
|
|
131
|
+
} else {
|
|
132
|
+
_nitro.HybridNitroSQLite.open(options.name, options.location);
|
|
133
|
+
}
|
|
63
134
|
} catch (error) {
|
|
135
|
+
(0, _DatabaseQueue.closeDatabaseQueue)(options.name);
|
|
64
136
|
throw _NitroSQLiteError.default.fromError(error);
|
|
65
137
|
}
|
|
138
|
+
return {
|
|
139
|
+
connectionId: options.name,
|
|
140
|
+
queueKey: options.name
|
|
141
|
+
};
|
|
66
142
|
}
|
|
67
143
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_nitro","require","_transaction","_execute","_executeBatch","_NitroSQLiteError","_interopRequireDefault","_DatabaseQueue","e","__esModule","default","open","options","
|
|
1
|
+
{"version":3,"names":["_nitro","require","_transaction","_execute","_executeBatch","_prepare","_NitroSQLiteError","_interopRequireDefault","_DatabaseQueue","e","__esModule","default","open","options","name","location","databaseLocation","connection","readOnly","connectionId","queueKey","openNativeConnection","connectionQueue","getDatabaseQueue","assertCurrentConnection","isDatabaseOpen","NitroSQLiteError","assertNoReplacement","runSyncOperation","callback","startOperationSync","error","fromError","runOperation","close","HybridNitroSQLite","closeDatabaseQueue","delete","dropFailed","drop","isConnectionOpen","attach","dbNameToAttach","alias","detach","transaction","fn","execute","query","params","executeManaged","executeAsync","executeAsyncManaged","prepare","executeBatch","commands","executeBatchAsync","loadFile","loadFileAsync","queueStatementAsync","openConnection","Symbol","openDatabaseQueue"],"sourceRoot":"../../../src","sources":["operations/session.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,25 +8,45 @@ var _DatabaseQueue = require("../DatabaseQueue.js");
|
|
|
8
8
|
var _execute = require("./execute.js");
|
|
9
9
|
var _NitroSQLiteError = _interopRequireDefault(require("../NitroSQLiteError.js"));
|
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/** Queue a transaction for an open managed connection.
|
|
12
|
+
* Use only the supplied `tx` for work on this database inside the callback.
|
|
13
|
+
* A successful callback commits unless it explicitly committed or rolled back;
|
|
14
|
+
* a thrown error rolls back unless the transaction was already finalized.
|
|
15
|
+
* @param dbName Name of the open database.
|
|
16
|
+
* @param transactionCallback Async callback receiving the transaction handle.
|
|
17
|
+
* @param isExclusive Begin an exclusive transaction when true.
|
|
18
|
+
* @returns The callback's result after the transaction finishes.
|
|
19
|
+
*/
|
|
20
|
+
const transaction = async (dbName, transactionCallback, isExclusive = false, queueKey = dbName) => {
|
|
21
|
+
(0, _DatabaseQueue.throwIfDatabaseIsNotOpen)(queueKey);
|
|
13
22
|
let isFinished = false;
|
|
23
|
+
const pendingAsyncStatements = new Set();
|
|
24
|
+
const throwIfAsyncPending = () => {
|
|
25
|
+
if (pendingAsyncStatements.size > 0) {
|
|
26
|
+
throw new _NitroSQLiteError.default(`Cannot run synchronous operation on transaction ${dbName} while async queries are pending. Await all tx.executeAsync calls first.`);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
14
29
|
const executeOnTransaction = (query, params) => {
|
|
15
30
|
if (isFinished) {
|
|
16
31
|
throw new _NitroSQLiteError.default(`Cannot execute query on finalized transaction: ${dbName}`);
|
|
17
32
|
}
|
|
33
|
+
throwIfAsyncPending();
|
|
18
34
|
return (0, _execute.executeNative)(dbName, query, params);
|
|
19
35
|
};
|
|
20
36
|
const executeAsyncOnTransaction = (query, params) => {
|
|
21
37
|
if (isFinished) {
|
|
22
38
|
throw new _NitroSQLiteError.default(`Cannot execute query on finalized transaction: ${dbName}`);
|
|
23
39
|
}
|
|
24
|
-
|
|
40
|
+
const pending = (0, _execute.executeAsyncNative)(dbName, query, params);
|
|
41
|
+
pendingAsyncStatements.add(pending);
|
|
42
|
+
pending.then(() => pendingAsyncStatements.delete(pending), () => pendingAsyncStatements.delete(pending));
|
|
43
|
+
return pending;
|
|
25
44
|
};
|
|
26
45
|
const commit = () => {
|
|
27
46
|
if (isFinished) {
|
|
28
47
|
throw new _NitroSQLiteError.default(`Cannot execute commit on finalized transaction: ${dbName}`);
|
|
29
48
|
}
|
|
49
|
+
throwIfAsyncPending();
|
|
30
50
|
isFinished = true;
|
|
31
51
|
return (0, _execute.executeNative)(dbName, 'COMMIT');
|
|
32
52
|
};
|
|
@@ -34,10 +54,11 @@ const transaction = async (dbName, transactionCallback, isExclusive = false) =>
|
|
|
34
54
|
if (isFinished) {
|
|
35
55
|
throw new _NitroSQLiteError.default(`Cannot execute rollback on finalized transaction: ${dbName}`);
|
|
36
56
|
}
|
|
57
|
+
throwIfAsyncPending();
|
|
37
58
|
isFinished = true;
|
|
38
59
|
return (0, _execute.executeNative)(dbName, 'ROLLBACK');
|
|
39
60
|
};
|
|
40
|
-
return await (0, _DatabaseQueue.queueOperationAsync)(
|
|
61
|
+
return await (0, _DatabaseQueue.queueOperationAsync)(queueKey, async () => {
|
|
41
62
|
try {
|
|
42
63
|
await (0, _execute.executeAsyncNative)(dbName, isExclusive ? 'BEGIN EXCLUSIVE TRANSACTION' : 'BEGIN TRANSACTION');
|
|
43
64
|
const result = await transactionCallback({
|
|
@@ -50,8 +71,12 @@ const transaction = async (dbName, transactionCallback, isExclusive = false) =>
|
|
|
50
71
|
return result;
|
|
51
72
|
} catch (executionError) {
|
|
52
73
|
if (!isFinished) {
|
|
74
|
+
isFinished = true;
|
|
75
|
+
// All queued native calls must finish before ROLLBACK can run
|
|
76
|
+
// synchronously on this connection.
|
|
77
|
+
await Promise.allSettled(pendingAsyncStatements);
|
|
53
78
|
try {
|
|
54
|
-
|
|
79
|
+
(0, _execute.executeNative)(dbName, 'ROLLBACK');
|
|
55
80
|
} catch (rollbackError) {
|
|
56
81
|
throw _NitroSQLiteError.default.fromError(rollbackError);
|
|
57
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DatabaseQueue","require","_execute","_NitroSQLiteError","_interopRequireDefault","e","__esModule","default","transaction","dbName","transactionCallback","isExclusive","throwIfDatabaseIsNotOpen","isFinished","
|
|
1
|
+
{"version":3,"names":["_DatabaseQueue","require","_execute","_NitroSQLiteError","_interopRequireDefault","e","__esModule","default","transaction","dbName","transactionCallback","isExclusive","queueKey","throwIfDatabaseIsNotOpen","isFinished","pendingAsyncStatements","Set","throwIfAsyncPending","size","NitroSQLiteError","executeOnTransaction","query","params","executeNative","executeAsyncOnTransaction","pending","executeAsyncNative","add","then","delete","commit","rollback","queueOperationAsync","result","execute","executeAsync","executionError","Promise","allSettled","rollbackError","fromError","exports"],"sourceRoot":"../../../src","sources":["operations/transaction.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/NitroSQLitePreparedStatement.nitro.ts"],"mappings":"","ignoreList":[]}
|