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.
Files changed (145) hide show
  1. package/RNNitroSQLite.podspec +7 -3
  2. package/android/CMakeLists.txt +3 -2
  3. package/android/build.gradle +2 -0
  4. package/android/sqlite-flags.gradle +47 -0
  5. package/cpp/NitroSQLiteDatabaseConnections.cpp +306 -0
  6. package/cpp/NitroSQLiteDatabaseConnections.hpp +86 -0
  7. package/cpp/{databaseMigration.cpp → NitroSQLiteDatabaseMigration.cpp} +2 -2
  8. package/cpp/{sqliteExecuteBatch.cpp → NitroSQLiteExecuteBatch.cpp} +4 -4
  9. package/cpp/{sqliteExecuteBatch.hpp → NitroSQLiteExecuteBatch.hpp} +3 -6
  10. package/cpp/{importSqlFile.cpp → NitroSQLiteImportSqlFile.cpp} +4 -4
  11. package/cpp/{importSqlFile.hpp → NitroSQLiteImportSqlFile.hpp} +3 -3
  12. package/cpp/{macros.hpp → NitroSQLiteMacros.hpp} +3 -3
  13. package/cpp/NitroSQLiteOperations.cpp +396 -0
  14. package/cpp/NitroSQLiteOperations.hpp +72 -0
  15. package/cpp/{types.hpp → NitroSQLiteTypes.hpp} +3 -6
  16. package/cpp/{utils.hpp → NitroSQLiteUtils.hpp} +2 -2
  17. package/cpp/hybridObjects/HybridNitroSQLite.cpp +108 -22
  18. package/cpp/hybridObjects/HybridNitroSQLite.hpp +49 -5
  19. package/cpp/hybridObjects/HybridNitroSQLitePreparedStatement.cpp +59 -0
  20. package/cpp/hybridObjects/HybridNitroSQLitePreparedStatement.hpp +33 -0
  21. package/cpp/hybridObjects/HybridNitroSQLiteQueryResult.hpp +6 -4
  22. package/ios/OnLoad.mm +38 -2
  23. package/lib/commonjs/DatabaseQueue.js +52 -16
  24. package/lib/commonjs/DatabaseQueue.js.map +1 -1
  25. package/lib/commonjs/NitroSQLiteError.js +6 -7
  26. package/lib/commonjs/NitroSQLiteError.js.map +1 -1
  27. package/lib/commonjs/OnLoad.js +1 -1
  28. package/lib/commonjs/index.js +8 -3
  29. package/lib/commonjs/index.js.map +1 -1
  30. package/lib/commonjs/operations/execute.js +19 -4
  31. package/lib/commonjs/operations/execute.js.map +1 -1
  32. package/lib/commonjs/operations/executeBatch.js +19 -6
  33. package/lib/commonjs/operations/executeBatch.js.map +1 -1
  34. package/lib/commonjs/operations/prepare.js +54 -0
  35. package/lib/commonjs/operations/prepare.js.map +1 -0
  36. package/lib/commonjs/operations/session.js +106 -30
  37. package/lib/commonjs/operations/session.js.map +1 -1
  38. package/lib/commonjs/operations/transaction.js +30 -5
  39. package/lib/commonjs/operations/transaction.js.map +1 -1
  40. package/lib/commonjs/specs/NitroSQLitePreparedStatement.nitro.js +6 -0
  41. package/lib/commonjs/specs/NitroSQLitePreparedStatement.nitro.js.map +1 -0
  42. package/lib/commonjs/typeORM.js +10 -3
  43. package/lib/commonjs/typeORM.js.map +1 -1
  44. package/lib/commonjs/types.js +35 -9
  45. package/lib/commonjs/types.js.map +1 -1
  46. package/lib/module/DatabaseQueue.js +52 -16
  47. package/lib/module/DatabaseQueue.js.map +1 -1
  48. package/lib/module/NitroSQLiteError.js +6 -7
  49. package/lib/module/NitroSQLiteError.js.map +1 -1
  50. package/lib/module/OnLoad.js +1 -1
  51. package/lib/module/index.js +8 -3
  52. package/lib/module/index.js.map +1 -1
  53. package/lib/module/operations/execute.js +20 -5
  54. package/lib/module/operations/execute.js.map +1 -1
  55. package/lib/module/operations/executeBatch.js +20 -7
  56. package/lib/module/operations/executeBatch.js.map +1 -1
  57. package/lib/module/operations/prepare.js +49 -0
  58. package/lib/module/operations/prepare.js.map +1 -0
  59. package/lib/module/operations/session.js +107 -31
  60. package/lib/module/operations/session.js.map +1 -1
  61. package/lib/module/operations/transaction.js +30 -5
  62. package/lib/module/operations/transaction.js.map +1 -1
  63. package/lib/module/specs/NitroSQLitePreparedStatement.nitro.js +4 -0
  64. package/lib/module/specs/NitroSQLitePreparedStatement.nitro.js.map +1 -0
  65. package/lib/module/typeORM.js +11 -3
  66. package/lib/module/typeORM.js.map +1 -1
  67. package/lib/module/types.js +48 -9
  68. package/lib/module/types.js.map +1 -1
  69. package/lib/typescript/commonjs/DatabaseQueue.d.ts +15 -7
  70. package/lib/typescript/commonjs/DatabaseQueue.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/NitroSQLiteError.d.ts +6 -7
  72. package/lib/typescript/commonjs/NitroSQLiteError.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/index.d.ts +9 -2
  74. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/operations/execute.d.ts +17 -2
  76. package/lib/typescript/commonjs/operations/execute.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/operations/executeBatch.d.ts +15 -2
  78. package/lib/typescript/commonjs/operations/executeBatch.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/operations/prepare.d.ts +13 -0
  80. package/lib/typescript/commonjs/operations/prepare.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/operations/session.d.ts +8 -0
  82. package/lib/typescript/commonjs/operations/session.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/operations/transaction.d.ts +11 -1
  84. package/lib/typescript/commonjs/operations/transaction.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/specs/NitroSQLite.nitro.d.ts +83 -2
  86. package/lib/typescript/commonjs/specs/NitroSQLite.nitro.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/specs/NitroSQLitePreparedStatement.nitro.d.ts +26 -0
  88. package/lib/typescript/commonjs/specs/NitroSQLitePreparedStatement.nitro.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts +9 -15
  90. package/lib/typescript/commonjs/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/typeORM.d.ts +14 -3
  92. package/lib/typescript/commonjs/typeORM.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/types.d.ts +124 -21
  94. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  95. package/lib/typescript/module/DatabaseQueue.d.ts +15 -7
  96. package/lib/typescript/module/DatabaseQueue.d.ts.map +1 -1
  97. package/lib/typescript/module/NitroSQLiteError.d.ts +6 -7
  98. package/lib/typescript/module/NitroSQLiteError.d.ts.map +1 -1
  99. package/lib/typescript/module/index.d.ts +9 -2
  100. package/lib/typescript/module/index.d.ts.map +1 -1
  101. package/lib/typescript/module/operations/execute.d.ts +17 -2
  102. package/lib/typescript/module/operations/execute.d.ts.map +1 -1
  103. package/lib/typescript/module/operations/executeBatch.d.ts +15 -2
  104. package/lib/typescript/module/operations/executeBatch.d.ts.map +1 -1
  105. package/lib/typescript/module/operations/prepare.d.ts +13 -0
  106. package/lib/typescript/module/operations/prepare.d.ts.map +1 -0
  107. package/lib/typescript/module/operations/session.d.ts +8 -0
  108. package/lib/typescript/module/operations/session.d.ts.map +1 -1
  109. package/lib/typescript/module/operations/transaction.d.ts +11 -1
  110. package/lib/typescript/module/operations/transaction.d.ts.map +1 -1
  111. package/lib/typescript/module/specs/NitroSQLite.nitro.d.ts +83 -2
  112. package/lib/typescript/module/specs/NitroSQLite.nitro.d.ts.map +1 -1
  113. package/lib/typescript/module/specs/NitroSQLitePreparedStatement.nitro.d.ts +26 -0
  114. package/lib/typescript/module/specs/NitroSQLitePreparedStatement.nitro.d.ts.map +1 -0
  115. package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts +9 -15
  116. package/lib/typescript/module/specs/NitroSQLiteQueryResult.nitro.d.ts.map +1 -1
  117. package/lib/typescript/module/typeORM.d.ts +14 -3
  118. package/lib/typescript/module/typeORM.d.ts.map +1 -1
  119. package/lib/typescript/module/types.d.ts +124 -21
  120. package/lib/typescript/module/types.d.ts.map +1 -1
  121. package/nitrogen/generated/android/RNNitroSQLite+autolinking.cmake +1 -0
  122. package/nitrogen/generated/shared/c++/HybridNitroSQLitePreparedStatementSpec.cpp +24 -0
  123. package/nitrogen/generated/shared/c++/HybridNitroSQLitePreparedStatementSpec.hpp +73 -0
  124. package/nitrogen/generated/shared/c++/HybridNitroSQLiteSpec.cpp +3 -0
  125. package/nitrogen/generated/shared/c++/HybridNitroSQLiteSpec.hpp +8 -2
  126. package/package.json +4 -2
  127. package/src/DatabaseQueue.ts +81 -25
  128. package/src/NitroSQLiteError.ts +6 -7
  129. package/src/OnLoad.ts +1 -1
  130. package/src/index.ts +7 -3
  131. package/src/operations/execute.ts +22 -3
  132. package/src/operations/executeBatch.ts +20 -5
  133. package/src/operations/prepare.ts +69 -0
  134. package/src/operations/session.ts +136 -45
  135. package/src/operations/transaction.ts +37 -4
  136. package/src/specs/NitroSQLite.nitro.ts +84 -2
  137. package/src/specs/NitroSQLitePreparedStatement.nitro.ts +28 -0
  138. package/src/specs/NitroSQLiteQueryResult.nitro.ts +9 -15
  139. package/src/typeORM.ts +14 -3
  140. package/src/types.ts +135 -21
  141. package/cpp/operations.cpp +0 -358
  142. package/cpp/operations.hpp +0 -56
  143. /package/android/{cpp-adapter.cpp → RNNitroSQLiteAdapter.cpp} +0 -0
  144. /package/cpp/{databaseMigration.hpp → NitroSQLiteDatabaseMigration.hpp} +0 -0
  145. /package/cpp/{logs.hpp → NitroSQLiteLogs.hpp} +0 -0
@@ -13,11 +13,18 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
13
13
  // | | | | | | | |___| |__| | | \ \| | | | / ____ \| | _| |_
14
14
  // |_| |_| |_| |______\____/|_| \_\_| |_| /_/ \_\_| |_____|
15
15
 
16
- /**
17
- * DO NOT USE THIS! THIS IS MEANT FOR TYPEORM
18
- * If you are looking for a convenience wrapper use `connect`
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":"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","ignoreList":[]}
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":[]}
@@ -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
- * Allows the execution of bulk of sql commands
18
- * inside a transaction
19
- * If a single query must be executed many times with different arguments, its preferred
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
- * status: 0 or undefined for correct execution, 1 for error
24
- * message: if status === 1, here you will find error description
25
- * rowsAffected: Number of affected rows if status == 0
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
- * Result of loading a file and executing every line as a SQL command
29
- * Similar to BatchQueryResult
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":";;;;;;IAuBYA,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAsDtB;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA","ignoreList":[]}
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
- databaseQueue.inProgress = false;
43
- startOperationAsync(databaseQueue);
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
- startOperationAsync(databaseQueue);
71
+ startNextOperations(databaseQueue);
51
72
  });
52
73
  }
53
- function startOperationAsync(queue) {
54
- // Queue is empty or in progress. Bail out.
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.inProgress = true;
59
- const operation = queue.queue.shift();
60
- setImmediate(() => {
61
- operation.start();
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","startOperationAsync","operation","push","shift","setImmediate","startOperationSync"],"sourceRoot":"../../src","sources":["DatabaseQueue.ts"],"mappings":"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","ignoreList":[]}
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
- * Converts an unknown error to a NitroSQLiteError
20
- * Preserves stack traces and error causes when available
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;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAASC,KAAK,CAAC;EAClDC,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;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":[]}
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":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
- // NOOP on iOS
3
+ // Apple platforms initialize the database directory from OnLoad.mm.
4
4
  export const init = () => {};
5
5
  //# sourceMappingURL=OnLoad.js.map
@@ -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
- // Overwrite native `open` function with session-based JS abstraction,
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
- // More JS abstractions, that perform type casting and validation.
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
  };
@@ -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;AAEN,OAAO,MAAMG,WAAW,GAAG;EACzB,GAAGP,iBAAiB;EACpBQ,MAAM,EAAER,iBAAiB;EACzB;EACA;EACAC,IAAI;EACJ;EACAF,WAAW;EACXG,OAAO;EACPC,YAAY;EACZE,YAAY;EACZC;AACF,CAAC;AAED,SAASL,IAAI,QAAQ,yBAAsB;AAC3C,SAASQ,OAAO,IAAIC,gBAAgB,QAAQ,uBAAoB;AAEhE,SAASC,aAAa,QAAQ,cAAW","ignoreList":[]}
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, queueOperationAsync, startOperationSync } from "../DatabaseQueue.js";
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(dbName, () => executeNative(dbName, query, params));
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 queueOperationAsync(dbName, () => executeAsyncNative(dbName, query, params));
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","queueOperationAsync","startOperationSync","execute","dbName","query","params","executeNative","executeManaged","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;AAEzB,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,EACR;EAClB,OAAOJ,kBAAkB,CAACE,MAAM,EAAE,MAAMG,aAAa,CAACH,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;AAC/E;AAEA,OAAO,SAASC,aAAaA,CAC3BH,MAAc,EACdC,KAAa,EACbC,MAA0B,EACR;EAClB,IAAI;IACF,MAAMG,YAAY,GAAGX,iBAAiB,CAACK,OAAO,CAACC,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;IACrE,OAAOI,kBAAkB,CAAMD,YAAY,CAAC;EAC9C,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMZ,gBAAgB,CAACa,SAAS,CAACD,KAAK,CAAC;EACzC;AACF;AAEA,OAAO,eAAeE,YAAYA,CAChCT,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,IAAI,CAACN,cAAc,CAACI,MAAM,CAAC,EAAE;IAC3B,OAAOU,kBAAkB,CAACV,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;EAClD;EAEA,OAAOS,mBAAmB,CAACX,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAC;AACnD;AAEA,OAAO,eAAeS,mBAAmBA,CACvCX,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,OAAOL,mBAAmB,CAACG,MAAM,EAAE,MACjCU,kBAAkB,CAACV,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAC1C,CAAC;AACH;AAEA,OAAO,eAAeQ,kBAAkBA,CACtCV,MAAc,EACdC,KAAa,EACbC,MAA0B,EACC;EAC3B,IAAI;IACF,MAAMG,YAAY,GAAG,MAAMX,iBAAiB,CAACe,YAAY,CACvDT,MAAM,EACNC,KAAK,EACLC,MACF,CAAC;IACD,OAAOI,kBAAkB,CAAMD,YAAY,CAAC;EAC9C,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMZ,gBAAgB,CAACa,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
+ {"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 { queueOperationAsync, startOperationSync, throwIfDatabaseIsNotOpen } from "../DatabaseQueue.js";
4
+ import { queueStatementAsync, startOperationSync, throwIfDatabaseIsNotOpen } from "../DatabaseQueue.js";
5
5
  import NitroSQLiteError from "../NitroSQLiteError.js";
6
- export function executeBatch(dbName, commands) {
7
- throwIfDatabaseIsNotOpen(dbName);
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(dbName, () => HybridNitroSQLite.executeBatch(dbName, commands));
15
+ return startOperationSync(queueKey, () => HybridNitroSQLite.executeBatch(dbName, commands));
10
16
  } catch (error) {
11
17
  throw NitroSQLiteError.fromError(error);
12
18
  }
13
19
  }
14
- export async function executeBatchAsync(dbName, commands) {
15
- throwIfDatabaseIsNotOpen(dbName);
16
- return queueOperationAsync(dbName, async () => {
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","queueOperationAsync","startOperationSync","throwIfDatabaseIsNotOpen","NitroSQLiteError","executeBatch","dbName","commands","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;AAGlD,OAAO,SAASC,YAAYA,CAC1BC,MAAc,EACdC,QAA6B,EACX;EAClBJ,wBAAwB,CAACG,MAAM,CAAC;EAEhC,IAAI;IACF,OAAOJ,kBAAkB,CAACI,MAAM,EAAE,MAChCN,iBAAiB,CAACK,YAAY,CAACC,MAAM,EAAEC,QAAQ,CACjD,CAAC;EACH,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,MAAMJ,gBAAgB,CAACK,SAAS,CAACD,KAAK,CAAC;EACzC;AACF;AAEA,OAAO,eAAeE,iBAAiBA,CACrCJ,MAAc,EACdC,QAA6B,EACF;EAC3BJ,wBAAwB,CAACG,MAAM,CAAC;EAEhC,OAAOL,mBAAmB,CAACK,MAAM,EAAE,YAAY;IAC7C,IAAI;MACF,OAAO,MAAMN,iBAAiB,CAACU,iBAAiB,CAACJ,MAAM,EAAEC,QAAQ,CAAC;IACpE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAMJ,gBAAgB,CAACK,SAAS,CAACD,KAAK,CAAC;IACzC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
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":[]}