react-native-nitro-sqlite 9.8.1 → 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 +3 -2
- package/android/build.gradle +2 -0
- package/android/sqlite-flags.gradle +47 -0
- 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
package/lib/commonjs/typeORM.js
CHANGED
|
@@ -13,11 +13,18 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
13
13
|
// | | | | | | | |___| |__| | | \ \| | | | / ____ \| | _| |_
|
|
14
14
|
// |_| |_| |_| |______\____/|_| \_\_| |_| /_/ \_\_| |_____|
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
/** Callback-oriented connection returned to TypeORM. */
|
|
17
|
+
|
|
18
|
+
/** Adapter for TypeORM's React Native driver. Application code should use `open()`.
|
|
19
|
+
* `openDatabase` reports success or failure through callbacks and returns the
|
|
20
|
+
* connection on success, or `null` when opening fails.
|
|
19
21
|
*/
|
|
20
22
|
const typeORMDriver = exports.typeORMDriver = {
|
|
23
|
+
/** Open a database for TypeORM.
|
|
24
|
+
* @param options Database name and optional relative directory.
|
|
25
|
+
* @param ok Receives the adapter connection on success.
|
|
26
|
+
* @param fail Receives the opening error on failure.
|
|
27
|
+
*/
|
|
21
28
|
openDatabase: (options, ok, fail) => {
|
|
22
29
|
try {
|
|
23
30
|
const db = Operations.open(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Operations","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","typeORMDriver","exports","openDatabase","options","ok","fail","db","open","connection","executeSql","sql","params","okExecute","failExecute","result","executeAsync","transaction","fn","close","okClose","failClose","attach","dbNameToAttach","alias","location","callback","detach"],"sourceRoot":"../../src","sources":["typeORM.ts"],"mappings":";;;;;;AAaA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAkD,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAblD;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["Operations","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","typeORMDriver","exports","openDatabase","options","ok","fail","db","open","connection","executeSql","sql","params","okExecute","failExecute","result","executeAsync","transaction","fn","close","okClose","failClose","attach","dbNameToAttach","alias","location","callback","detach"],"sourceRoot":"../../src","sources":["typeORM.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/types.js
CHANGED
|
@@ -4,28 +4,54 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ColumnType = void 0;
|
|
7
|
+
/** Options for `open()` and `NitroSQLite.open()`. */
|
|
8
|
+
/** A managed connection bound to one database name. Do not use it after closing or deleting it. */
|
|
9
|
+
/** SQLite value categories reported in query column metadata. */
|
|
7
10
|
let ColumnType = exports.ColumnType = /*#__PURE__*/function (ColumnType) {
|
|
11
|
+
/** Boolean declaration. */
|
|
8
12
|
ColumnType[ColumnType["BOOLEAN"] = 0] = "BOOLEAN";
|
|
13
|
+
/** Floating point declaration. */
|
|
9
14
|
ColumnType[ColumnType["NUMBER"] = 1] = "NUMBER";
|
|
15
|
+
/** Integer declaration. */
|
|
10
16
|
ColumnType[ColumnType["INT64"] = 2] = "INT64";
|
|
17
|
+
/** Text declaration. */
|
|
11
18
|
ColumnType[ColumnType["TEXT"] = 3] = "TEXT";
|
|
19
|
+
/** Blob declaration. */
|
|
12
20
|
ColumnType[ColumnType["ARRAY_BUFFER"] = 4] = "ARRAY_BUFFER";
|
|
21
|
+
/** Missing or unrecognized declaration. */
|
|
13
22
|
ColumnType[ColumnType["NULL_VALUE"] = 5] = "NULL_VALUE";
|
|
14
23
|
return ColumnType;
|
|
15
24
|
}({});
|
|
25
|
+
/** Values accepted by bound SQL parameters and returned in result rows. */
|
|
26
|
+
/** Positional values for SQL placeholders. */
|
|
27
|
+
/** A row keyed by result column names. */
|
|
28
|
+
/** Query result with a row adapter for TypeORM-style consumers. */
|
|
29
|
+
/** Indexable view of query rows. */
|
|
30
|
+
/** Execute one SQL statement synchronously and return its typed rows.
|
|
31
|
+
* @param query SQL statement with optional positional placeholders.
|
|
32
|
+
* @param params Values bound to the placeholders.
|
|
33
|
+
*/
|
|
34
|
+
/** Queue one SQL statement and resolve with its typed rows.
|
|
35
|
+
* @param query SQL statement with optional positional placeholders.
|
|
36
|
+
* @param params Values bound to the placeholders.
|
|
37
|
+
*/
|
|
16
38
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* to declare it a single time, and use an array of array parameters.
|
|
39
|
+
* A reusable SQL statement bound to the connection that prepared it. Each
|
|
40
|
+
* execution resets the statement and its bindings before applying new values.
|
|
41
|
+
* Finalize it before closing the connection.
|
|
21
42
|
*/
|
|
22
43
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
44
|
+
* Execute a prepared statement with optional positional values and return typed rows.
|
|
45
|
+
* Each call replaces the previous parameter bindings.
|
|
46
|
+
* @param params Values bound to the statement's positional placeholders.
|
|
26
47
|
*/
|
|
27
48
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
49
|
+
* Queue a prepared statement execution and resolve with typed rows. Calls on the
|
|
50
|
+
* same managed connection run in queue order.
|
|
51
|
+
* @param params Values bound to the statement's positional placeholders.
|
|
30
52
|
*/
|
|
53
|
+
/** Handle valid only while its transaction callback is active. */
|
|
54
|
+
/** One command in a batch. A nested `params` array repeats the query for each parameter set. */
|
|
55
|
+
/** Result of a committed SQL batch. Errors are thrown rather than returned here. */
|
|
56
|
+
/** Result of importing a SQL file in one transaction. */
|
|
31
57
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ColumnType","exports"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["ColumnType","exports"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;AAEA;AAqBA;AA4DA;AAAA,IACYA,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EACpB;EADUA,UAAU,CAAVA,UAAU;EAGpB;EAHUA,UAAU,CAAVA,UAAU;EAKpB;EALUA,UAAU,CAAVA,UAAU;EAOpB;EAPUA,UAAU,CAAVA,UAAU;EASpB;EATUA,UAAU,CAAVA,UAAU;EAWpB;EAXUA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAetB;AAGA;AAGA;AAGA;AAOA;AAgBA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AAOA;AAYA;AAQA;AAMA","ignoreList":[]}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import NitroSQLiteError from "./NitroSQLiteError.js";
|
|
4
|
+
|
|
5
|
+
/** Identity of a managed connection's operation queue. Application code should
|
|
6
|
+
* omit the optional queue key on package helpers; connections choose it for you.
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
const databaseQueues = new Map();
|
|
5
10
|
export function openDatabaseQueue(dbName) {
|
|
6
11
|
if (isDatabaseOpen(dbName)) {
|
|
7
|
-
throw new NitroSQLiteError(`Database ${dbName} is already open. There is already a connection to the database.`);
|
|
12
|
+
throw new NitroSQLiteError(`Database ${String(dbName)} is already open. There is already a connection to the database.`);
|
|
8
13
|
}
|
|
9
14
|
databaseQueues.set(dbName, {
|
|
10
15
|
queue: [],
|
|
11
|
-
inProgress: false
|
|
16
|
+
inProgress: false,
|
|
17
|
+
activeStatements: 0,
|
|
18
|
+
draining: false
|
|
12
19
|
});
|
|
13
20
|
}
|
|
14
21
|
export function closeDatabaseQueue(dbName) {
|
|
15
22
|
const databaseQueue = getDatabaseQueue(dbName);
|
|
16
23
|
if (databaseQueue.inProgress || databaseQueue.queue.length > 0) {
|
|
17
|
-
throw new NitroSQLiteError(`Cannot close database ${dbName}. The database is busy with another operation.`);
|
|
24
|
+
throw new NitroSQLiteError(`Cannot close database ${String(dbName)}. The database is busy with another operation.`);
|
|
18
25
|
}
|
|
19
26
|
databaseQueues.delete(dbName);
|
|
20
27
|
}
|
|
@@ -22,7 +29,7 @@ export function isDatabaseOpen(dbName) {
|
|
|
22
29
|
return databaseQueues.has(dbName);
|
|
23
30
|
}
|
|
24
31
|
export function throwIfDatabaseIsNotOpen(dbName) {
|
|
25
|
-
if (!isDatabaseOpen(dbName)) throw new NitroSQLiteError(`Database ${dbName} is not open. There is no connection to the database.`);
|
|
32
|
+
if (!isDatabaseOpen(dbName)) throw new NitroSQLiteError(`Database ${String(dbName)} is not open. There is no connection to the database.`);
|
|
26
33
|
}
|
|
27
34
|
export function getDatabaseQueue(dbName) {
|
|
28
35
|
throwIfDatabaseIsNotOpen(dbName);
|
|
@@ -30,6 +37,12 @@ export function getDatabaseQueue(dbName) {
|
|
|
30
37
|
return queue;
|
|
31
38
|
}
|
|
32
39
|
export function queueOperationAsync(dbName, callback) {
|
|
40
|
+
return enqueueOperation(dbName, 'exclusive', callback);
|
|
41
|
+
}
|
|
42
|
+
export function queueStatementAsync(dbName, callback) {
|
|
43
|
+
return enqueueOperation(dbName, 'statement', callback);
|
|
44
|
+
}
|
|
45
|
+
function enqueueOperation(dbName, kind, callback) {
|
|
33
46
|
const databaseQueue = getDatabaseQueue(dbName);
|
|
34
47
|
return new Promise((resolve, reject) => {
|
|
35
48
|
async function start() {
|
|
@@ -39,34 +52,56 @@ export function queueOperationAsync(dbName, callback) {
|
|
|
39
52
|
} catch (error) {
|
|
40
53
|
reject(error);
|
|
41
54
|
} finally {
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
if (kind === 'statement') {
|
|
56
|
+
databaseQueue.activeStatements--;
|
|
57
|
+
if (databaseQueue.activeStatements === 0) {
|
|
58
|
+
databaseQueue.inProgress = false;
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
databaseQueue.inProgress = false;
|
|
62
|
+
}
|
|
63
|
+
startNextOperations(databaseQueue);
|
|
44
64
|
}
|
|
45
65
|
}
|
|
46
66
|
const operation = {
|
|
67
|
+
kind,
|
|
47
68
|
start
|
|
48
69
|
};
|
|
49
70
|
databaseQueue.queue.push(operation);
|
|
50
|
-
|
|
71
|
+
startNextOperations(databaseQueue);
|
|
51
72
|
});
|
|
52
73
|
}
|
|
53
|
-
function
|
|
54
|
-
|
|
55
|
-
if (queue.inProgress || queue.queue.length === 0) {
|
|
74
|
+
function startNextOperations(queue) {
|
|
75
|
+
if (queue.draining || queue.inProgress && queue.activeStatements === 0) {
|
|
56
76
|
return;
|
|
57
77
|
}
|
|
58
|
-
queue.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
queue.draining = true;
|
|
79
|
+
try {
|
|
80
|
+
while (queue.queue.length > 0) {
|
|
81
|
+
const exclusiveIndex = queue.queue.findIndex(operation => operation.kind === 'exclusive');
|
|
82
|
+
const statementCount = exclusiveIndex === -1 ? queue.queue.length : exclusiveIndex;
|
|
83
|
+
if (statementCount > 0) {
|
|
84
|
+
const statements = queue.queue.splice(0, statementCount);
|
|
85
|
+
queue.inProgress = true;
|
|
86
|
+
queue.activeStatements += statements.length;
|
|
87
|
+
for (const statement of statements) statement.start();
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (queue.activeStatements > 0) return;
|
|
91
|
+
queue.inProgress = true;
|
|
92
|
+
queue.queue.shift().start();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
} finally {
|
|
96
|
+
queue.draining = false;
|
|
97
|
+
}
|
|
63
98
|
}
|
|
64
99
|
export function startOperationSync(dbName, callback) {
|
|
65
100
|
const databaseQueue = getDatabaseQueue(dbName);
|
|
66
101
|
|
|
67
102
|
// Database is busy - cannot execute synchronously
|
|
68
103
|
if (databaseQueue.inProgress || databaseQueue.queue.length > 0) {
|
|
69
|
-
throw new NitroSQLiteError(`Cannot run synchronous operation on database. Database ${dbName} is busy with another operation.`);
|
|
104
|
+
throw new NitroSQLiteError(`Cannot run synchronous operation on database. Database ${String(dbName)} is busy with another operation.`);
|
|
70
105
|
}
|
|
71
106
|
|
|
72
107
|
// Execute synchronously
|
|
@@ -75,6 +110,7 @@ export function startOperationSync(dbName, callback) {
|
|
|
75
110
|
return callback();
|
|
76
111
|
} finally {
|
|
77
112
|
databaseQueue.inProgress = false;
|
|
113
|
+
startNextOperations(databaseQueue);
|
|
78
114
|
}
|
|
79
115
|
}
|
|
80
116
|
//# sourceMappingURL=DatabaseQueue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroSQLiteError","databaseQueues","Map","openDatabaseQueue","dbName","isDatabaseOpen","set","queue","inProgress","closeDatabaseQueue","databaseQueue","getDatabaseQueue","length","delete","has","throwIfDatabaseIsNotOpen","get","queueOperationAsync","callback","Promise","resolve","reject","start","result","error","
|
|
1
|
+
{"version":3,"names":["NitroSQLiteError","databaseQueues","Map","openDatabaseQueue","dbName","isDatabaseOpen","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":[]}
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
const NITRO_SQLITE_ERROR_NAME = 'NitroSQLiteError';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Custom error class for NitroSQLite operations
|
|
7
|
-
* Extends the native Error class with proper prototype chain and error handling
|
|
8
|
-
*/
|
|
5
|
+
/** Error thrown by managed NitroSQLite operations. Native errors are wrapped with this class. */
|
|
9
6
|
export default class NitroSQLiteError extends Error {
|
|
7
|
+
/** Create an error with a message and optional cause. */
|
|
10
8
|
constructor(message, options) {
|
|
11
9
|
super(message, options);
|
|
12
10
|
this.name = NITRO_SQLITE_ERROR_NAME;
|
|
@@ -15,9 +13,10 @@ export default class NitroSQLiteError extends Error {
|
|
|
15
13
|
Object.setPrototypeOf(this, NitroSQLiteError.prototype);
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
/** Convert an unknown thrown value to `NitroSQLiteError`.
|
|
17
|
+
* Existing instances pass through; `Error` values keep their stack and cause.
|
|
18
|
+
* @param error Value to normalize.
|
|
19
|
+
* @returns A NitroSQLiteError instance.
|
|
21
20
|
*/
|
|
22
21
|
static fromError(error) {
|
|
23
22
|
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"],"sourceRoot":"../../src","sources":["NitroSQLiteError.ts"],"mappings":";;AAAA,MAAMA,uBAAuB,GAAG,kBAA2B;;AAE3D;AACA
|
|
1
|
+
{"version":3,"names":["NITRO_SQLITE_ERROR_NAME","NitroSQLiteError","Error","constructor","message","options","name","Object","setPrototypeOf","prototype","fromError","error","nitroSQLiteError","cause","stack"],"sourceRoot":"../../src","sources":["NitroSQLiteError.ts"],"mappings":";;AAAA,MAAMA,uBAAuB,GAAG,kBAA2B;;AAE3D;AACA,eAAe,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","ignoreList":[]}
|
package/lib/module/OnLoad.js
CHANGED
package/lib/module/index.js
CHANGED
|
@@ -4,19 +4,24 @@ import { transaction } from "./operations/transaction.js";
|
|
|
4
4
|
import { HybridNitroSQLite } from "./nitro.js";
|
|
5
5
|
import { open } from "./operations/session.js";
|
|
6
6
|
import { execute, executeAsync } from "./operations/execute.js";
|
|
7
|
+
import { prepare } from "./operations/prepare.js";
|
|
7
8
|
import { init } from './OnLoad';
|
|
8
9
|
import { executeBatch, executeBatchAsync } from "./operations/executeBatch.js";
|
|
9
10
|
init();
|
|
11
|
+
|
|
12
|
+
/** Database entry point. Prefer {@link open} for a managed connection.
|
|
13
|
+
* `native` exposes the Nitro object directly and bypasses the JavaScript queue.
|
|
14
|
+
*/
|
|
10
15
|
export const NitroSQLite = {
|
|
11
16
|
...HybridNitroSQLite,
|
|
12
17
|
native: HybridNitroSQLite,
|
|
13
|
-
//
|
|
14
|
-
// where the database name can be ommited once opened
|
|
18
|
+
// The managed open method returns a connection bound to its database name.
|
|
15
19
|
open,
|
|
16
|
-
//
|
|
20
|
+
// Managed query methods add typed rows and normalize errors.
|
|
17
21
|
transaction,
|
|
18
22
|
execute,
|
|
19
23
|
executeAsync,
|
|
24
|
+
prepare,
|
|
20
25
|
executeBatch,
|
|
21
26
|
executeBatchAsync
|
|
22
27
|
};
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["transaction","HybridNitroSQLite","open","execute","executeAsync","init","executeBatch","executeBatchAsync","NitroSQLite","native","default","NitroSQLiteError","typeORMDriver"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,YAAS;AAC3C,SAASC,IAAI,QAAQ,yBAAsB;AAC3C,SAASC,OAAO,EAAEC,YAAY,QAAQ,yBAAsB;AAC5D,SAASC,IAAI,QAAQ,UAAU;AAC/B,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,8BAA2B;AAE3EF,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["transaction","HybridNitroSQLite","open","execute","executeAsync","prepare","init","executeBatch","executeBatchAsync","NitroSQLite","native","default","NitroSQLiteError","typeORMDriver"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,YAAS;AAC3C,SAASC,IAAI,QAAQ,yBAAsB;AAC3C,SAASC,OAAO,EAAEC,YAAY,QAAQ,yBAAsB;AAC5D,SAASC,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,IAAI,QAAQ,UAAU;AAC/B,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,8BAA2B;AAE3EF,IAAI,CAAC,CAAC;;AAEN;AACA;AACA;AACA,OAAO,MAAMG,WAAW,GAAG;EACzB,GAAGR,iBAAiB;EACpBS,MAAM,EAAET,iBAAiB;EACzB;EACAC,IAAI;EACJ;EACAF,WAAW;EACXG,OAAO;EACPC,YAAY;EACZC,OAAO;EACPE,YAAY;EACZC;AACF,CAAC;AAED,SAASN,IAAI,QAAQ,yBAAsB;AAC3C,SAASS,OAAO,IAAIC,gBAAgB,QAAQ,uBAAoB;AAEhE,SAASC,aAAa,QAAQ,cAAW","ignoreList":[]}
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
import { HybridNitroSQLite } from "../nitro.js";
|
|
4
4
|
import NitroSQLiteError from "../NitroSQLiteError.js";
|
|
5
|
-
import { isDatabaseOpen,
|
|
5
|
+
import { isDatabaseOpen, queueStatementAsync, startOperationSync } from "../DatabaseQueue.js";
|
|
6
|
+
/** Execute one SQL statement synchronously by database name.
|
|
7
|
+
* Uses the managed queue when the database has an open managed connection.
|
|
8
|
+
* @param dbName Name of an open native database.
|
|
9
|
+
* @param query SQL statement with optional positional placeholders.
|
|
10
|
+
* @param params Values bound to the placeholders.
|
|
11
|
+
* @returns The query result with typed rows.
|
|
12
|
+
*/
|
|
6
13
|
export function execute(dbName, query, params) {
|
|
7
14
|
if (!isDatabaseOpen(dbName)) {
|
|
8
15
|
return executeNative(dbName, query, params);
|
|
9
16
|
}
|
|
10
17
|
return executeManaged(dbName, query, params);
|
|
11
18
|
}
|
|
12
|
-
export function executeManaged(dbName, query, params) {
|
|
13
|
-
return startOperationSync(
|
|
19
|
+
export function executeManaged(dbName, query, params, queueKey = dbName) {
|
|
20
|
+
return startOperationSync(queueKey, () => executeNative(dbName, query, params));
|
|
14
21
|
}
|
|
15
22
|
export function executeNative(dbName, query, params) {
|
|
16
23
|
try {
|
|
@@ -20,14 +27,22 @@ export function executeNative(dbName, query, params) {
|
|
|
20
27
|
throw NitroSQLiteError.fromError(error);
|
|
21
28
|
}
|
|
22
29
|
}
|
|
30
|
+
|
|
31
|
+
/** Execute one SQL statement asynchronously by database name.
|
|
32
|
+
* Uses the managed queue when the database has an open managed connection.
|
|
33
|
+
* @param dbName Name of an open native database.
|
|
34
|
+
* @param query SQL statement with optional positional placeholders.
|
|
35
|
+
* @param params Values bound to the placeholders.
|
|
36
|
+
* @returns A promise of the query result with typed rows.
|
|
37
|
+
*/
|
|
23
38
|
export async function executeAsync(dbName, query, params) {
|
|
24
39
|
if (!isDatabaseOpen(dbName)) {
|
|
25
40
|
return executeAsyncNative(dbName, query, params);
|
|
26
41
|
}
|
|
27
42
|
return executeAsyncManaged(dbName, query, params);
|
|
28
43
|
}
|
|
29
|
-
export async function executeAsyncManaged(dbName, query, params) {
|
|
30
|
-
return
|
|
44
|
+
export async function executeAsyncManaged(dbName, query, params, queueKey = dbName) {
|
|
45
|
+
return queueStatementAsync(queueKey, () => executeAsyncNative(dbName, query, params));
|
|
31
46
|
}
|
|
32
47
|
export async function executeAsyncNative(dbName, query, params) {
|
|
33
48
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HybridNitroSQLite","NitroSQLiteError","isDatabaseOpen","
|
|
1
|
+
{"version":3,"names":["HybridNitroSQLite","NitroSQLiteError","isDatabaseOpen","queueStatementAsync","startOperationSync","execute","dbName","query","params","executeNative","executeManaged","queueKey","nativeResult","buildJSQueryResult","error","fromError","executeAsync","executeAsyncNative","executeAsyncManaged","result","resultWithRows","results","rows","_array","length","item","idx"],"sourceRoot":"../../../src","sources":["operations/execute.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,aAAU;AAE5C,OAAOC,gBAAgB,MAAM,wBAAqB;AAElD,SACEC,cAAc,EACdC,mBAAmB,EACnBC,kBAAkB,QACb,qBAAkB;AAGzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CACrBC,MAAc,EACdC,KAAa,EACbC,MAA0B,EACR;EAClB,IAAI,CAACN,cAAc,CAACI,MAAM,CAAC,EAAE;IAC3B,OAAOG,aAAa,CAACH,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;EAC7C;EAEA,OAAOE,cAAc,CAACJ,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;AAC9C;AAEA,OAAO,SAASE,cAAcA,CAC5BJ,MAAc,EACdC,KAAa,EACbC,MAA0B,EAC1BG,QAA0B,GAAGL,MAAM,EACjB;EAClB,OAAOF,kBAAkB,CAACO,QAAQ,EAAE,MAClCF,aAAa,CAACH,MAAM,EAAEC,KAAK,EAAEC,MAAM,CACrC,CAAC;AACH;AAEA,OAAO,SAASC,aAAaA,CAC3BH,MAAc,EACdC,KAAa,EACbC,MAA0B,EACR;EAClB,IAAI;IACF,MAAMI,YAAY,GAAGZ,iBAAiB,CAACK,OAAO,CAACC,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;IACrE,OAAOK,kBAAkB,CAAMD,YAAY,CAAC;EAC9C,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMb,gBAAgB,CAACc,SAAS,CAACD,KAAK,CAAC;EACzC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,YAAYA,CAChCV,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,IAAI,CAACN,cAAc,CAACI,MAAM,CAAC,EAAE;IAC3B,OAAOW,kBAAkB,CAACX,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;EAClD;EAEA,OAAOU,mBAAmB,CAACZ,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;AACnD;AAEA,OAAO,eAAeU,mBAAmBA,CACvCZ,MAAc,EACdC,KAAa,EACbC,MAA0B,EAC1BG,QAA0B,GAAGL,MAAM,EACR;EAC3B,OAAOH,mBAAmB,CAACQ,QAAQ,EAAE,MACnCM,kBAAkB,CAACX,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAC1C,CAAC;AACH;AAEA,OAAO,eAAeS,kBAAkBA,CACtCX,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,IAAI;IACF,MAAMI,YAAY,GAAG,MAAMZ,iBAAiB,CAACgB,YAAY,CACvDV,MAAM,EACNC,KAAK,EACLC,MACF,CAAC;IACD,OAAOK,kBAAkB,CAAMD,YAAY,CAAC;EAC9C,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMb,gBAAgB,CAACc,SAAS,CAACD,KAAK,CAAC;EACzC;AACF;AAEA,OAAO,SAASD,kBAAkBA,CAChCM,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":[]}
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { HybridNitroSQLite } from "../nitro.js";
|
|
4
|
-
import {
|
|
4
|
+
import { queueStatementAsync, startOperationSync, throwIfDatabaseIsNotOpen } from "../DatabaseQueue.js";
|
|
5
5
|
import NitroSQLiteError from "../NitroSQLiteError.js";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/** Execute a batch synchronously in one exclusive transaction.
|
|
7
|
+
* Requires an open managed connection; throws if it is busy or the batch is empty.
|
|
8
|
+
* @param dbName Name of the open database.
|
|
9
|
+
* @param commands SQL commands and optional parameter sets.
|
|
10
|
+
* @returns Total affected row count.
|
|
11
|
+
*/
|
|
12
|
+
export function executeBatch(dbName, commands, queueKey = dbName) {
|
|
13
|
+
throwIfDatabaseIsNotOpen(queueKey);
|
|
8
14
|
try {
|
|
9
|
-
return startOperationSync(
|
|
15
|
+
return startOperationSync(queueKey, () => HybridNitroSQLite.executeBatch(dbName, commands));
|
|
10
16
|
} catch (error) {
|
|
11
17
|
throw NitroSQLiteError.fromError(error);
|
|
12
18
|
}
|
|
13
19
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
|
|
21
|
+
/** Queue a batch in one exclusive transaction.
|
|
22
|
+
* Requires an open managed connection; a failed command rolls back the batch.
|
|
23
|
+
* @param dbName Name of the open database.
|
|
24
|
+
* @param commands SQL commands and optional parameter sets.
|
|
25
|
+
* @returns A promise of the total affected row count.
|
|
26
|
+
*/
|
|
27
|
+
export async function executeBatchAsync(dbName, commands, queueKey = dbName) {
|
|
28
|
+
throwIfDatabaseIsNotOpen(queueKey);
|
|
29
|
+
return queueStatementAsync(queueKey, async () => {
|
|
17
30
|
try {
|
|
18
31
|
return await HybridNitroSQLite.executeBatchAsync(dbName, commands);
|
|
19
32
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HybridNitroSQLite","
|
|
1
|
+
{"version":3,"names":["HybridNitroSQLite","queueStatementAsync","startOperationSync","throwIfDatabaseIsNotOpen","NitroSQLiteError","executeBatch","dbName","commands","queueKey","error","fromError","executeBatchAsync"],"sourceRoot":"../../../src","sources":["operations/executeBatch.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,aAAU;AAC5C,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,wBAAwB,QACnB,qBAAkB;AACzB,OAAOC,gBAAgB,MAAM,wBAAqB;AAIlD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAC1BC,MAAc,EACdC,QAA6B,EAC7BC,QAA0B,GAAGF,MAAM,EACjB;EAClBH,wBAAwB,CAACK,QAAQ,CAAC;EAElC,IAAI;IACF,OAAON,kBAAkB,CAACM,QAAQ,EAAE,MAClCR,iBAAiB,CAACK,YAAY,CAACC,MAAM,EAAEC,QAAQ,CACjD,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAML,gBAAgB,CAACM,SAAS,CAACD,KAAK,CAAC;EACzC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,iBAAiBA,CACrCL,MAAc,EACdC,QAA6B,EAC7BC,QAA0B,GAAGF,MAAM,EACR;EAC3BH,wBAAwB,CAACK,QAAQ,CAAC;EAElC,OAAOP,mBAAmB,CAACO,QAAQ,EAAE,YAAY;IAC/C,IAAI;MACF,OAAO,MAAMR,iBAAiB,CAACW,iBAAiB,CAACL,MAAM,EAAEC,QAAQ,CAAC;IACpE,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,MAAML,gBAAgB,CAACM,SAAS,CAACD,KAAK,CAAC;IACzC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { HybridNitroSQLite } from "../nitro.js";
|
|
4
|
+
import NitroSQLiteError from "../NitroSQLiteError.js";
|
|
5
|
+
import { buildJSQueryResult } from "./execute.js";
|
|
6
|
+
import { queueOperationAsync, startOperationSync } from "../DatabaseQueue.js";
|
|
7
|
+
/**
|
|
8
|
+
* Prepare one SQL statement on an open managed connection for repeated execution.
|
|
9
|
+
* Synchronous preparation throws if the connection is busy. Finalize the returned
|
|
10
|
+
* statement before closing the connection.
|
|
11
|
+
* @param dbName Database name or independent connection ID.
|
|
12
|
+
* @param query SQL statement with optional positional placeholders.
|
|
13
|
+
* @param queueKey Internal managed queue key; omit when using the public API.
|
|
14
|
+
* @returns A statement whose executions use the same connection queue.
|
|
15
|
+
*/
|
|
16
|
+
export function prepare(dbName, query, queueKey = dbName) {
|
|
17
|
+
try {
|
|
18
|
+
const nativeStatement = startOperationSync(queueKey, () => HybridNitroSQLite.prepare(dbName, query));
|
|
19
|
+
return {
|
|
20
|
+
get isFinalized() {
|
|
21
|
+
return nativeStatement.isFinalized;
|
|
22
|
+
},
|
|
23
|
+
execute: params => {
|
|
24
|
+
try {
|
|
25
|
+
return startOperationSync(queueKey, () => buildJSQueryResult(nativeStatement.execute(params)));
|
|
26
|
+
} catch (error) {
|
|
27
|
+
throw NitroSQLiteError.fromError(error);
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
executeAsync: async params => {
|
|
31
|
+
try {
|
|
32
|
+
return await queueOperationAsync(queueKey, async () => buildJSQueryResult(await nativeStatement.executeAsync(params)));
|
|
33
|
+
} catch (error) {
|
|
34
|
+
throw NitroSQLiteError.fromError(error);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
finalize: () => {
|
|
38
|
+
try {
|
|
39
|
+
startOperationSync(queueKey, () => nativeStatement.finalize());
|
|
40
|
+
} catch (error) {
|
|
41
|
+
throw NitroSQLiteError.fromError(error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw NitroSQLiteError.fromError(error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HybridNitroSQLite","NitroSQLiteError","buildJSQueryResult","queueOperationAsync","startOperationSync","prepare","dbName","query","queueKey","nativeStatement","isFinalized","execute","params","error","fromError","executeAsync","finalize"],"sourceRoot":"../../../src","sources":["operations/prepare.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,aAAU;AAC5C,OAAOC,gBAAgB,MAAM,wBAAqB;AAOlD,SAASC,kBAAkB,QAAQ,cAAW;AAC9C,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,qBAAkB;AAG1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CACrBC,MAAc,EACdC,KAAa,EACbC,QAA0B,GAAGF,MAAM,EAChB;EACnB,IAAI;IACF,MAAMG,eAAe,GAAGL,kBAAkB,CAACI,QAAQ,EAAE,MACnDR,iBAAiB,CAACK,OAAO,CAACC,MAAM,EAAEC,KAAK,CACzC,CAAC;IAED,OAAO;MACL,IAAIG,WAAWA,CAAA,EAAG;QAChB,OAAOD,eAAe,CAACC,WAAW;MACpC,CAAC;MACDC,OAAO,EACLC,MAA0B,IACL;QACrB,IAAI;UACF,OAAOR,kBAAkB,CAACI,QAAQ,EAAE,MAClCN,kBAAkB,CAACO,eAAe,CAACE,OAAO,CAACC,MAAM,CAAC,CACpD,CAAC;QACH,CAAC,CAAC,OAAOC,KAAK,EAAE;UACd,MAAMZ,gBAAgB,CAACa,SAAS,CAACD,KAAK,CAAC;QACzC;MACF,CAAC;MACDE,YAAY,EAAE,MACZH,MAA0B,IACI;QAC9B,IAAI;UACF,OAAO,MAAMT,mBAAmB,CAACK,QAAQ,EAAE,YACzCN,kBAAkB,CAAC,MAAMO,eAAe,CAACM,YAAY,CAACH,MAAM,CAAC,CAC/D,CAAC;QACH,CAAC,CAAC,OAAOC,KAAK,EAAE;UACd,MAAMZ,gBAAgB,CAACa,SAAS,CAACD,KAAK,CAAC;QACzC;MACF,CAAC;MACDG,QAAQ,EAAEA,CAAA,KAAM;QACd,IAAI;UACFZ,kBAAkB,CAACI,QAAQ,EAAE,MAAMC,eAAe,CAACO,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,OAAOH,KAAK,EAAE;UACd,MAAMZ,gBAAgB,CAACa,SAAS,CAACD,KAAK,CAAC;QACzC;MACF;IACF,CAAC;EACH,CAAC,CAAC,OAAOA,KAAK,EAAE;IACd,MAAMZ,gBAAgB,CAACa,SAAS,CAACD,KAAK,CAAC;EACzC;AACF","ignoreList":[]}
|