@pma-network/sql 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -3
- package/dist/MySQL.d.ts +75 -27
- package/dist/MySQL.d.ts.map +1 -1
- package/dist/MySQL.js +158 -167
- package/dist/MySQL.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +9 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ Import and use:
|
|
|
45
45
|
import db from '@pma-network/sql';
|
|
46
46
|
|
|
47
47
|
const users = await db.query('SELECT * FROM users WHERE age > :age', { age: 18 });
|
|
48
|
-
const
|
|
48
|
+
const insertId = await db.insert('INSERT INTO users (name, sex, identifier) VALUES (:name, :sex, :identifier)', {
|
|
49
49
|
name: 'John Doe',
|
|
50
50
|
sex: 'm',
|
|
51
51
|
identifier: 'discord:123456789',
|
|
@@ -110,13 +110,42 @@ await db.query('SELECT * FROM users WHERE name = ? AND age > ?', ['John', 18]);
|
|
|
110
110
|
|
|
111
111
|
TypeScript with type definitions:
|
|
112
112
|
```typescript
|
|
113
|
-
import
|
|
113
|
+
import db from '@pma-network/sql';
|
|
114
114
|
|
|
115
|
-
interface User
|
|
115
|
+
interface User {
|
|
116
116
|
id: number;
|
|
117
117
|
name: string;
|
|
118
118
|
email: string;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
const users = await db.query<User[]>('SELECT * FROM users');
|
|
122
|
+
const user = await db.single<User>('SELECT * FROM users WHERE id = 1');
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Transactions with success/failure:
|
|
126
|
+
```typescript
|
|
127
|
+
const { success, result, error } = await db.transaction(async (execute) => {
|
|
128
|
+
await execute('INSERT INTO accounts (balance) VALUES (:balance)', { balance: 100 });
|
|
129
|
+
await execute('UPDATE users SET has_account = 1 WHERE id = :id', { id: 1 });
|
|
130
|
+
return { accountId: 123 };
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
if (success) {
|
|
134
|
+
console.log('Transaction committed:', result);
|
|
135
|
+
} else {
|
|
136
|
+
console.error('Transaction rolled back:', error);
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Batch operations for bulk inserts/updates:
|
|
141
|
+
```typescript
|
|
142
|
+
const { success, result } = await db.batch([
|
|
143
|
+
{ query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'John' } },
|
|
144
|
+
{ query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'Jane' } },
|
|
145
|
+
{ query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'Bob' } }
|
|
146
|
+
]);
|
|
147
|
+
|
|
148
|
+
if (success) {
|
|
149
|
+
console.log(`Inserted ${result.length} users`);
|
|
150
|
+
}
|
|
122
151
|
```
|
package/dist/MySQL.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Pool, PoolConnection, RowDataPacket } from 'mysql2/promise';
|
|
2
|
-
import
|
|
3
|
-
import type { ConnectionConfig, InsertResult, QueryParameters, TransactionCallback, UpdateResult } from './types.js';
|
|
2
|
+
import type { BatchQuery, ConnectionConfig, QueryParameters, TransactionCallback, TransactionResult } from './types.js';
|
|
4
3
|
/**
|
|
5
4
|
* MySQL database wrapper with connection pooling and named parameter support.
|
|
6
5
|
* Automatically reads connection configuration from environment variables.
|
|
@@ -15,26 +14,64 @@ export declare class MySQL {
|
|
|
15
14
|
private versionPrefix;
|
|
16
15
|
private metricsExportResource;
|
|
17
16
|
private metricsExportFunction;
|
|
17
|
+
private poolReady;
|
|
18
18
|
/**
|
|
19
19
|
* Creates a new MySQL instance with connection pooling.
|
|
20
20
|
* If no config is provided, it will automatically look for connection strings in environment variables.
|
|
21
21
|
*
|
|
22
22
|
* @param config - Optional database configuration. If omitted, uses environment variables.
|
|
23
|
+
* @throws {Error} If no connection string is found or if connection string validation fails
|
|
23
24
|
*/
|
|
24
25
|
constructor(config?: ConnectionConfig);
|
|
25
|
-
private fetchDatabaseVersion;
|
|
26
26
|
private getConvar;
|
|
27
27
|
private getConvarInt;
|
|
28
28
|
private getConvarBool;
|
|
29
29
|
private getResourceName;
|
|
30
30
|
private formatResourceConvar;
|
|
31
|
+
/**
|
|
32
|
+
* Gets default configuration from environment variables.
|
|
33
|
+
*
|
|
34
|
+
* @returns ConnectionConfig object
|
|
35
|
+
* @throws {Error} If no connection string is found in environment variables
|
|
36
|
+
* @throws {Error} If connection string validation fails
|
|
37
|
+
*/
|
|
31
38
|
private getDefaultConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Validates the connection string format.
|
|
41
|
+
*
|
|
42
|
+
* @param connectionString - Connection string to validate
|
|
43
|
+
* @throws {Error} If protocol is not 'mysql:'
|
|
44
|
+
* @throws {Error} If hostname is missing
|
|
45
|
+
* @throws {Error} If database name is missing
|
|
46
|
+
* @throws {Error} If username is missing
|
|
47
|
+
* @throws {Error} If connection string format is invalid
|
|
48
|
+
*/
|
|
32
49
|
private validateConnectionString;
|
|
50
|
+
/**
|
|
51
|
+
* Parses connection string into PoolOptions.
|
|
52
|
+
*
|
|
53
|
+
* @param connectionString - Connection string to parse
|
|
54
|
+
* @returns PoolOptions configuration object
|
|
55
|
+
* @throws {TypeError} If connection string is not a valid URL
|
|
56
|
+
*/
|
|
33
57
|
private parseConnectionString;
|
|
34
58
|
private normalizeParameters;
|
|
35
59
|
private setupConvarListeners;
|
|
36
60
|
private scheduleResourceTick;
|
|
61
|
+
private executeWithTiming;
|
|
37
62
|
private exportMetric;
|
|
63
|
+
private replaceAtSymbols;
|
|
64
|
+
/**
|
|
65
|
+
* Executes a query on a specific connection with timing and logging.
|
|
66
|
+
*
|
|
67
|
+
* @param connection - Database connection to use
|
|
68
|
+
* @param query - SQL query to execute
|
|
69
|
+
* @param parameters - Query parameters
|
|
70
|
+
* @returns Query result
|
|
71
|
+
* @throws Query execution errors (SQL errors, syntax errors, constraint violations, etc.)
|
|
72
|
+
*/
|
|
73
|
+
private executeInConnection;
|
|
74
|
+
private executeTransaction;
|
|
38
75
|
private processParameters;
|
|
39
76
|
private logQuery;
|
|
40
77
|
private handleError;
|
|
@@ -59,37 +96,37 @@ export declare class MySQL {
|
|
|
59
96
|
* @example
|
|
60
97
|
* const users = await db.query('SELECT * FROM users WHERE age > :age', { age: 18 });
|
|
61
98
|
*/
|
|
62
|
-
query<T
|
|
99
|
+
query<T = RowDataPacket[]>(query: string, parameters?: QueryParameters): Promise<T | null>;
|
|
63
100
|
/**
|
|
64
101
|
* Inserts a row into the database.
|
|
65
|
-
* Returns the auto-generated ID
|
|
102
|
+
* Returns the auto-generated ID.
|
|
66
103
|
*
|
|
67
104
|
* @param query - INSERT query with :name or ? placeholders
|
|
68
105
|
* @param parameters - Values to insert
|
|
69
|
-
* @returns
|
|
106
|
+
* @returns Insert ID or null on error
|
|
70
107
|
* @example
|
|
71
|
-
* const
|
|
108
|
+
* const insertId = await db.insert(
|
|
72
109
|
* 'INSERT INTO users (name, email) VALUES (:name, :email)',
|
|
73
110
|
* { name: 'John', email: 'john@example.com' }
|
|
74
111
|
* );
|
|
75
|
-
* console.log(
|
|
112
|
+
* console.log(insertId);
|
|
76
113
|
*/
|
|
77
|
-
insert(query: string, parameters?: QueryParameters): Promise<
|
|
114
|
+
insert(query: string, parameters?: QueryParameters): Promise<number | null>;
|
|
78
115
|
/**
|
|
79
116
|
* Updates rows in the database.
|
|
80
117
|
* Returns the number of affected rows.
|
|
81
118
|
*
|
|
82
119
|
* @param query - UPDATE query with :name or ? placeholders
|
|
83
120
|
* @param parameters - Values to update
|
|
84
|
-
* @returns
|
|
121
|
+
* @returns Number of affected rows or null on error
|
|
85
122
|
* @example
|
|
86
|
-
* const
|
|
123
|
+
* const affectedRows = await db.update(
|
|
87
124
|
* 'UPDATE users SET verified = 1 WHERE id = :id',
|
|
88
125
|
* { id: 123 }
|
|
89
126
|
* );
|
|
90
|
-
* console.log(
|
|
127
|
+
* console.log(affectedRows);
|
|
91
128
|
*/
|
|
92
|
-
update(query: string, parameters?: QueryParameters): Promise<
|
|
129
|
+
update(query: string, parameters?: QueryParameters): Promise<number | null>;
|
|
93
130
|
/**
|
|
94
131
|
* Returns a single value from the database.
|
|
95
132
|
* Use for COUNT, SUM, or single column queries.
|
|
@@ -115,30 +152,21 @@ export declare class MySQL {
|
|
|
115
152
|
* console.log(user.name);
|
|
116
153
|
* }
|
|
117
154
|
*/
|
|
118
|
-
single<T
|
|
119
|
-
/**
|
|
120
|
-
* Prepares a statement for execution.
|
|
121
|
-
* Use for executing the same query multiple times with different parameters.
|
|
122
|
-
*
|
|
123
|
-
* @param query - SQL query to prepare
|
|
124
|
-
* @returns Prepared statement
|
|
125
|
-
* @example
|
|
126
|
-
* const stmt = await db.prepare('SELECT * FROM users WHERE id = ?');
|
|
127
|
-
*/
|
|
128
|
-
prepare(query: string): Promise<mysql.PreparedStatementInfo>;
|
|
155
|
+
single<T = RowDataPacket>(query: string, parameters?: QueryParameters): Promise<T | null>;
|
|
129
156
|
/**
|
|
130
157
|
* Executes multiple queries as an atomic transaction.
|
|
131
158
|
* All changes are rolled back if any query fails.
|
|
132
159
|
*
|
|
133
160
|
* @param callback - Function receiving an execute function for queries
|
|
134
|
-
* @returns
|
|
161
|
+
* @returns TransactionResult with success status and result/error
|
|
135
162
|
* @example
|
|
136
|
-
* await db.transaction(async (execute) => {
|
|
163
|
+
* const { success, result, error } = await db.transaction(async (execute) => {
|
|
137
164
|
* await execute('INSERT INTO accounts (balance) VALUES (:balance)', { balance: 100 });
|
|
138
165
|
* await execute('UPDATE users SET has_account = 1 WHERE id = :id', { id: 1 });
|
|
166
|
+
* return { accountId: 123 };
|
|
139
167
|
* });
|
|
140
168
|
*/
|
|
141
|
-
transaction<T = unknown>(callback: TransactionCallback): Promise<T
|
|
169
|
+
transaction<T = unknown>(callback: TransactionCallback): Promise<TransactionResult<T>>;
|
|
142
170
|
/**
|
|
143
171
|
* Executes a query with positional parameters.
|
|
144
172
|
* Skips named parameter processing. Use ? placeholders only.
|
|
@@ -150,11 +178,30 @@ export declare class MySQL {
|
|
|
150
178
|
* const result = await db.rawExecute('SELECT * FROM users WHERE id = ?', [1]);
|
|
151
179
|
*/
|
|
152
180
|
rawExecute<T = unknown>(query: string, parameters?: unknown[]): Promise<T | null>;
|
|
181
|
+
/**
|
|
182
|
+
* Executes multiple queries in a batch within a transaction.
|
|
183
|
+
* All queries are executed atomically - either all succeed or all are rolled back.
|
|
184
|
+
* More efficient than executing queries one by one.
|
|
185
|
+
*
|
|
186
|
+
* @param queries - Array of queries with their parameters
|
|
187
|
+
* @returns TransactionResult with success status and array of results
|
|
188
|
+
* @example
|
|
189
|
+
* const { success, result } = await db.batch([
|
|
190
|
+
* { query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'John' } },
|
|
191
|
+
* { query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'Jane' } },
|
|
192
|
+
* { query: 'UPDATE accounts SET balance = :balance WHERE id = :id', parameters: { balance: 100, id: 1 } }
|
|
193
|
+
* ]);
|
|
194
|
+
* if (success) {
|
|
195
|
+
* console.log(`Executed ${result.length} queries`);
|
|
196
|
+
* }
|
|
197
|
+
*/
|
|
198
|
+
batch(queries: BatchQuery[]): Promise<TransactionResult<any[]>>;
|
|
153
199
|
/**
|
|
154
200
|
* Returns a connection from the pool.
|
|
155
201
|
* Must call connection.release() when finished.
|
|
156
202
|
*
|
|
157
203
|
* @returns Database connection
|
|
204
|
+
* @throws {Error} If pool is unable to provide a connection (pool exhausted, connection timeout, etc.)
|
|
158
205
|
* @example
|
|
159
206
|
* const connection = await db.getConnection();
|
|
160
207
|
* try {
|
|
@@ -168,6 +215,7 @@ export declare class MySQL {
|
|
|
168
215
|
* Closes all connections in the pool.
|
|
169
216
|
* Call when shutting down the application.
|
|
170
217
|
*
|
|
218
|
+
* @throws {Error} If pool fails to close connections
|
|
171
219
|
* @example
|
|
172
220
|
* await db.end();
|
|
173
221
|
*/
|
package/dist/MySQL.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQL.d.ts","sourceRoot":"","sources":["../src/MySQL.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EAGd,aAAa,EACd,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MySQL.d.ts","sourceRoot":"","sources":["../src/MySQL.ts"],"names":[],"mappings":"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"}
|
package/dist/MySQL.js
CHANGED
|
@@ -15,11 +15,13 @@ export class MySQL {
|
|
|
15
15
|
versionPrefix = '';
|
|
16
16
|
metricsExportResource;
|
|
17
17
|
metricsExportFunction;
|
|
18
|
+
poolReady;
|
|
18
19
|
/**
|
|
19
20
|
* Creates a new MySQL instance with connection pooling.
|
|
20
21
|
* If no config is provided, it will automatically look for connection strings in environment variables.
|
|
21
22
|
*
|
|
22
23
|
* @param config - Optional database configuration. If omitted, uses environment variables.
|
|
24
|
+
* @throws {Error} If no connection string is found or if connection string validation fails
|
|
23
25
|
*/
|
|
24
26
|
constructor(config) {
|
|
25
27
|
this.resourceName = this.getResourceName();
|
|
@@ -40,23 +42,13 @@ export class MySQL {
|
|
|
40
42
|
...poolConfig,
|
|
41
43
|
});
|
|
42
44
|
this.namedPlaceholdersCompiler = namedPlaceholders();
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const connection = await this.pool.getConnection();
|
|
48
|
-
try {
|
|
49
|
-
const serverVersion = connection.connection?._handshakePacket?.serverVersion;
|
|
50
|
-
if (serverVersion) {
|
|
51
|
-
this.versionPrefix = `^4[${serverVersion}]^0 `;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
finally {
|
|
55
|
-
connection.release();
|
|
45
|
+
this.poolReady = this.pool.getConnection().then(conn => {
|
|
46
|
+
const serverVersion = conn.connection?._handshakePacket?.serverVersion;
|
|
47
|
+
if (serverVersion) {
|
|
48
|
+
this.versionPrefix = `^4[${serverVersion}]^0 `;
|
|
56
49
|
}
|
|
57
|
-
|
|
58
|
-
catch {
|
|
59
|
-
}
|
|
50
|
+
conn.release();
|
|
51
|
+
}).catch(() => { });
|
|
60
52
|
}
|
|
61
53
|
getConvar(varName) {
|
|
62
54
|
if (typeof globalThis.GetConvar === 'function') {
|
|
@@ -94,6 +86,13 @@ export class MySQL {
|
|
|
94
86
|
formatResourceConvar(resourceName) {
|
|
95
87
|
return resourceName.replace(/-/g, '_').toLowerCase();
|
|
96
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Gets default configuration from environment variables.
|
|
91
|
+
*
|
|
92
|
+
* @returns ConnectionConfig object
|
|
93
|
+
* @throws {Error} If no connection string is found in environment variables
|
|
94
|
+
* @throws {Error} If connection string validation fails
|
|
95
|
+
*/
|
|
97
96
|
getDefaultConfig() {
|
|
98
97
|
let connectionString = null;
|
|
99
98
|
const resourceName = this.getResourceName();
|
|
@@ -116,6 +115,16 @@ export class MySQL {
|
|
|
116
115
|
this.validateConnectionString(connectionString);
|
|
117
116
|
return { connectionString };
|
|
118
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Validates the connection string format.
|
|
120
|
+
*
|
|
121
|
+
* @param connectionString - Connection string to validate
|
|
122
|
+
* @throws {Error} If protocol is not 'mysql:'
|
|
123
|
+
* @throws {Error} If hostname is missing
|
|
124
|
+
* @throws {Error} If database name is missing
|
|
125
|
+
* @throws {Error} If username is missing
|
|
126
|
+
* @throws {Error} If connection string format is invalid
|
|
127
|
+
*/
|
|
119
128
|
validateConnectionString(connectionString) {
|
|
120
129
|
try {
|
|
121
130
|
const url = new URL(connectionString);
|
|
@@ -140,6 +149,13 @@ export class MySQL {
|
|
|
140
149
|
throw error;
|
|
141
150
|
}
|
|
142
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Parses connection string into PoolOptions.
|
|
154
|
+
*
|
|
155
|
+
* @param connectionString - Connection string to parse
|
|
156
|
+
* @returns PoolOptions configuration object
|
|
157
|
+
* @throws {TypeError} If connection string is not a valid URL
|
|
158
|
+
*/
|
|
143
159
|
parseConnectionString(connectionString) {
|
|
144
160
|
const url = new URL(connectionString);
|
|
145
161
|
return {
|
|
@@ -197,6 +213,22 @@ export class MySQL {
|
|
|
197
213
|
globalThis.ScheduleResourceTick(this.resourceName);
|
|
198
214
|
}
|
|
199
215
|
}
|
|
216
|
+
async executeWithTiming(processedQuery, processedParams, executor) {
|
|
217
|
+
await this.poolReady;
|
|
218
|
+
const startTime = performance.now();
|
|
219
|
+
try {
|
|
220
|
+
const result = await executor();
|
|
221
|
+
const executionTime = performance.now() - startTime;
|
|
222
|
+
this.logQuery(processedQuery, executionTime, processedParams);
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
const executionTime = performance.now() - startTime;
|
|
227
|
+
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
228
|
+
this.handleError(error);
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
200
232
|
exportMetric(metric) {
|
|
201
233
|
if (this.metricsExportResource && this.metricsExportFunction) {
|
|
202
234
|
try {
|
|
@@ -205,8 +237,54 @@ export class MySQL {
|
|
|
205
237
|
catch (error) { }
|
|
206
238
|
}
|
|
207
239
|
}
|
|
240
|
+
replaceAtSymbols(query) {
|
|
241
|
+
return query.replace(/@/g, ':');
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Executes a query on a specific connection with timing and logging.
|
|
245
|
+
*
|
|
246
|
+
* @param connection - Database connection to use
|
|
247
|
+
* @param query - SQL query to execute
|
|
248
|
+
* @param parameters - Query parameters
|
|
249
|
+
* @returns Query result
|
|
250
|
+
* @throws Query execution errors (SQL errors, syntax errors, constraint violations, etc.)
|
|
251
|
+
*/
|
|
252
|
+
async executeInConnection(connection, query, parameters) {
|
|
253
|
+
this.scheduleResourceTick();
|
|
254
|
+
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
255
|
+
const startTime = performance.now();
|
|
256
|
+
try {
|
|
257
|
+
const [result] = await connection.execute(processedQuery, processedParams);
|
|
258
|
+
const executionTime = performance.now() - startTime;
|
|
259
|
+
this.logQuery(processedQuery, executionTime, processedParams);
|
|
260
|
+
return result;
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
const executionTime = performance.now() - startTime;
|
|
264
|
+
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
265
|
+
throw error;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async executeTransaction(callback) {
|
|
269
|
+
await this.poolReady;
|
|
270
|
+
const connection = await this.pool.getConnection();
|
|
271
|
+
try {
|
|
272
|
+
await connection.beginTransaction();
|
|
273
|
+
const result = await callback(connection);
|
|
274
|
+
await connection.commit();
|
|
275
|
+
return { success: true, result };
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
await connection.rollback();
|
|
279
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
280
|
+
return { success: false, error: errorMessage };
|
|
281
|
+
}
|
|
282
|
+
finally {
|
|
283
|
+
connection.release();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
208
286
|
processParameters(query, parameters) {
|
|
209
|
-
const processedQuery =
|
|
287
|
+
const processedQuery = this.replaceAtSymbols(query);
|
|
210
288
|
if (!parameters) {
|
|
211
289
|
return [processedQuery, []];
|
|
212
290
|
}
|
|
@@ -267,20 +345,11 @@ export class MySQL {
|
|
|
267
345
|
*/
|
|
268
346
|
async execute(query, parameters) {
|
|
269
347
|
this.scheduleResourceTick();
|
|
270
|
-
const startTime = performance.now();
|
|
271
348
|
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
272
|
-
|
|
349
|
+
return this.executeWithTiming(processedQuery, processedParams, async () => {
|
|
273
350
|
const [results] = await this.pool.execute(processedQuery, processedParams);
|
|
274
|
-
const executionTime = performance.now() - startTime;
|
|
275
|
-
this.logQuery(processedQuery, executionTime, processedParams);
|
|
276
351
|
return results;
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
const executionTime = performance.now() - startTime;
|
|
280
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
281
|
-
this.handleError(error);
|
|
282
|
-
return null;
|
|
283
|
-
}
|
|
352
|
+
});
|
|
284
353
|
}
|
|
285
354
|
/**
|
|
286
355
|
* Executes a SELECT query and returns rows.
|
|
@@ -294,53 +363,32 @@ export class MySQL {
|
|
|
294
363
|
*/
|
|
295
364
|
async query(query, parameters) {
|
|
296
365
|
this.scheduleResourceTick();
|
|
297
|
-
const startTime = performance.now();
|
|
298
366
|
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
299
|
-
|
|
367
|
+
return this.executeWithTiming(processedQuery, processedParams, async () => {
|
|
300
368
|
const [rows] = await this.pool.query(processedQuery, processedParams);
|
|
301
|
-
const executionTime = performance.now() - startTime;
|
|
302
|
-
this.logQuery(processedQuery, executionTime, processedParams);
|
|
303
369
|
return rows;
|
|
304
|
-
}
|
|
305
|
-
catch (error) {
|
|
306
|
-
const executionTime = performance.now() - startTime;
|
|
307
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
308
|
-
this.handleError(error);
|
|
309
|
-
return null;
|
|
310
|
-
}
|
|
370
|
+
});
|
|
311
371
|
}
|
|
312
372
|
/**
|
|
313
373
|
* Inserts a row into the database.
|
|
314
|
-
* Returns the auto-generated ID
|
|
374
|
+
* Returns the auto-generated ID.
|
|
315
375
|
*
|
|
316
376
|
* @param query - INSERT query with :name or ? placeholders
|
|
317
377
|
* @param parameters - Values to insert
|
|
318
|
-
* @returns
|
|
378
|
+
* @returns Insert ID or null on error
|
|
319
379
|
* @example
|
|
320
|
-
* const
|
|
380
|
+
* const insertId = await db.insert(
|
|
321
381
|
* 'INSERT INTO users (name, email) VALUES (:name, :email)',
|
|
322
382
|
* { name: 'John', email: 'john@example.com' }
|
|
323
383
|
* );
|
|
324
|
-
* console.log(
|
|
384
|
+
* console.log(insertId);
|
|
325
385
|
*/
|
|
326
386
|
async insert(query, parameters) {
|
|
327
|
-
const startTime = performance.now();
|
|
328
387
|
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
329
|
-
|
|
388
|
+
return this.executeWithTiming(processedQuery, processedParams, async () => {
|
|
330
389
|
const [result] = await this.pool.execute(processedQuery, processedParams);
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
return {
|
|
334
|
-
insertId: result.insertId,
|
|
335
|
-
affectedRows: result.affectedRows,
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
catch (error) {
|
|
339
|
-
const executionTime = performance.now() - startTime;
|
|
340
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
341
|
-
this.handleError(error);
|
|
342
|
-
return null;
|
|
343
|
-
}
|
|
390
|
+
return result.insertId;
|
|
391
|
+
});
|
|
344
392
|
}
|
|
345
393
|
/**
|
|
346
394
|
* Updates rows in the database.
|
|
@@ -348,31 +396,20 @@ export class MySQL {
|
|
|
348
396
|
*
|
|
349
397
|
* @param query - UPDATE query with :name or ? placeholders
|
|
350
398
|
* @param parameters - Values to update
|
|
351
|
-
* @returns
|
|
399
|
+
* @returns Number of affected rows or null on error
|
|
352
400
|
* @example
|
|
353
|
-
* const
|
|
401
|
+
* const affectedRows = await db.update(
|
|
354
402
|
* 'UPDATE users SET verified = 1 WHERE id = :id',
|
|
355
403
|
* { id: 123 }
|
|
356
404
|
* );
|
|
357
|
-
* console.log(
|
|
405
|
+
* console.log(affectedRows);
|
|
358
406
|
*/
|
|
359
407
|
async update(query, parameters) {
|
|
360
|
-
const startTime = performance.now();
|
|
361
408
|
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
362
|
-
|
|
409
|
+
return this.executeWithTiming(processedQuery, processedParams, async () => {
|
|
363
410
|
const [result] = await this.pool.execute(processedQuery, processedParams);
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
return {
|
|
367
|
-
affectedRows: result.affectedRows,
|
|
368
|
-
};
|
|
369
|
-
}
|
|
370
|
-
catch (error) {
|
|
371
|
-
const executionTime = performance.now() - startTime;
|
|
372
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
373
|
-
this.handleError(error);
|
|
374
|
-
return null;
|
|
375
|
-
}
|
|
411
|
+
return result.affectedRows;
|
|
412
|
+
});
|
|
376
413
|
}
|
|
377
414
|
/**
|
|
378
415
|
* Returns a single value from the database.
|
|
@@ -386,25 +423,16 @@ export class MySQL {
|
|
|
386
423
|
* const name = await db.scalar('SELECT name FROM users WHERE id = :id', { id: 1 });
|
|
387
424
|
*/
|
|
388
425
|
async scalar(query, parameters) {
|
|
389
|
-
const startTime = performance.now();
|
|
390
426
|
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
391
|
-
|
|
427
|
+
return this.executeWithTiming(processedQuery, processedParams, async () => {
|
|
392
428
|
const [rows] = await this.pool.query(processedQuery, processedParams);
|
|
393
|
-
const executionTime = performance.now() - startTime;
|
|
394
|
-
this.logQuery(processedQuery, executionTime, processedParams);
|
|
395
429
|
if (!rows || rows.length === 0) {
|
|
396
430
|
return null;
|
|
397
431
|
}
|
|
398
432
|
const firstRow = rows[0];
|
|
399
433
|
const firstColumn = Object.values(firstRow)[0];
|
|
400
434
|
return firstColumn;
|
|
401
|
-
}
|
|
402
|
-
catch (error) {
|
|
403
|
-
const executionTime = performance.now() - startTime;
|
|
404
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
405
|
-
this.handleError(error);
|
|
406
|
-
return null;
|
|
407
|
-
}
|
|
435
|
+
});
|
|
408
436
|
}
|
|
409
437
|
/**
|
|
410
438
|
* Returns a single row from the database.
|
|
@@ -420,87 +448,33 @@ export class MySQL {
|
|
|
420
448
|
* }
|
|
421
449
|
*/
|
|
422
450
|
async single(query, parameters) {
|
|
423
|
-
const startTime = performance.now();
|
|
424
451
|
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
425
|
-
|
|
452
|
+
return this.executeWithTiming(processedQuery, processedParams, async () => {
|
|
426
453
|
const [rows] = await this.pool.query(processedQuery, processedParams);
|
|
427
|
-
const executionTime = performance.now() - startTime;
|
|
428
|
-
this.logQuery(processedQuery, executionTime, processedParams);
|
|
429
454
|
return rows.length > 0 ? rows[0] : null;
|
|
430
|
-
}
|
|
431
|
-
catch (error) {
|
|
432
|
-
const executionTime = performance.now() - startTime;
|
|
433
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
434
|
-
this.handleError(error);
|
|
435
|
-
return null;
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
/**
|
|
439
|
-
* Prepares a statement for execution.
|
|
440
|
-
* Use for executing the same query multiple times with different parameters.
|
|
441
|
-
*
|
|
442
|
-
* @param query - SQL query to prepare
|
|
443
|
-
* @returns Prepared statement
|
|
444
|
-
* @example
|
|
445
|
-
* const stmt = await db.prepare('SELECT * FROM users WHERE id = ?');
|
|
446
|
-
*/
|
|
447
|
-
async prepare(query) {
|
|
448
|
-
this.scheduleResourceTick();
|
|
449
|
-
const connection = await this.pool.getConnection();
|
|
450
|
-
try {
|
|
451
|
-
const processedQuery = query.replace(/@/g, ':');
|
|
452
|
-
const statement = await connection.prepare(processedQuery);
|
|
453
|
-
return statement;
|
|
454
|
-
}
|
|
455
|
-
finally {
|
|
456
|
-
connection.release();
|
|
457
|
-
}
|
|
455
|
+
});
|
|
458
456
|
}
|
|
459
457
|
/**
|
|
460
458
|
* Executes multiple queries as an atomic transaction.
|
|
461
459
|
* All changes are rolled back if any query fails.
|
|
462
460
|
*
|
|
463
461
|
* @param callback - Function receiving an execute function for queries
|
|
464
|
-
* @returns
|
|
462
|
+
* @returns TransactionResult with success status and result/error
|
|
465
463
|
* @example
|
|
466
|
-
* await db.transaction(async (execute) => {
|
|
464
|
+
* const { success, result, error } = await db.transaction(async (execute) => {
|
|
467
465
|
* await execute('INSERT INTO accounts (balance) VALUES (:balance)', { balance: 100 });
|
|
468
466
|
* await execute('UPDATE users SET has_account = 1 WHERE id = :id', { id: 1 });
|
|
467
|
+
* return { accountId: 123 };
|
|
469
468
|
* });
|
|
470
469
|
*/
|
|
471
470
|
async transaction(callback) {
|
|
472
471
|
this.scheduleResourceTick();
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
const executeInTransaction = async (query, parameters) => {
|
|
477
|
-
this.scheduleResourceTick();
|
|
478
|
-
const startTime = performance.now();
|
|
479
|
-
const [processedQuery, processedParams] = this.processParameters(query, parameters);
|
|
480
|
-
try {
|
|
481
|
-
const [result] = await connection.execute(processedQuery, processedParams);
|
|
482
|
-
const executionTime = performance.now() - startTime;
|
|
483
|
-
this.logQuery(processedQuery, executionTime, processedParams);
|
|
484
|
-
return result;
|
|
485
|
-
}
|
|
486
|
-
catch (error) {
|
|
487
|
-
const executionTime = performance.now() - startTime;
|
|
488
|
-
this.logQuery(processedQuery, executionTime, processedParams, error);
|
|
489
|
-
throw error;
|
|
490
|
-
}
|
|
472
|
+
return this.executeTransaction(async (connection) => {
|
|
473
|
+
const executeInTransaction = (query, parameters) => {
|
|
474
|
+
return this.executeInConnection(connection, query, parameters);
|
|
491
475
|
};
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
return result;
|
|
495
|
-
}
|
|
496
|
-
catch (error) {
|
|
497
|
-
await connection.rollback();
|
|
498
|
-
this.handleError(error);
|
|
499
|
-
return null;
|
|
500
|
-
}
|
|
501
|
-
finally {
|
|
502
|
-
connection.release();
|
|
503
|
-
}
|
|
476
|
+
return callback(executeInTransaction);
|
|
477
|
+
});
|
|
504
478
|
}
|
|
505
479
|
/**
|
|
506
480
|
* Executes a query with positional parameters.
|
|
@@ -514,32 +488,48 @@ export class MySQL {
|
|
|
514
488
|
*/
|
|
515
489
|
async rawExecute(query, parameters) {
|
|
516
490
|
this.scheduleResourceTick();
|
|
517
|
-
const
|
|
518
|
-
const processedQuery = query.replace(/@/g, ':');
|
|
491
|
+
const processedQuery = this.replaceAtSymbols(query);
|
|
519
492
|
const params = parameters || [];
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
params[i] = null;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
try {
|
|
493
|
+
this.normalizeParameters(params);
|
|
494
|
+
return this.executeWithTiming(processedQuery, params, async () => {
|
|
526
495
|
const [results] = await this.pool.execute(processedQuery, params);
|
|
527
|
-
const executionTime = performance.now() - startTime;
|
|
528
|
-
this.logQuery(processedQuery, executionTime, params);
|
|
529
496
|
return results;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Executes multiple queries in a batch within a transaction.
|
|
501
|
+
* All queries are executed atomically - either all succeed or all are rolled back.
|
|
502
|
+
* More efficient than executing queries one by one.
|
|
503
|
+
*
|
|
504
|
+
* @param queries - Array of queries with their parameters
|
|
505
|
+
* @returns TransactionResult with success status and array of results
|
|
506
|
+
* @example
|
|
507
|
+
* const { success, result } = await db.batch([
|
|
508
|
+
* { query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'John' } },
|
|
509
|
+
* { query: 'INSERT INTO users (name) VALUES (:name)', parameters: { name: 'Jane' } },
|
|
510
|
+
* { query: 'UPDATE accounts SET balance = :balance WHERE id = :id', parameters: { balance: 100, id: 1 } }
|
|
511
|
+
* ]);
|
|
512
|
+
* if (success) {
|
|
513
|
+
* console.log(`Executed ${result.length} queries`);
|
|
514
|
+
* }
|
|
515
|
+
*/
|
|
516
|
+
async batch(queries) {
|
|
517
|
+
this.scheduleResourceTick();
|
|
518
|
+
return this.executeTransaction(async (connection) => {
|
|
519
|
+
const results = [];
|
|
520
|
+
for (const { query, parameters } of queries) {
|
|
521
|
+
const result = await this.executeInConnection(connection, query, parameters);
|
|
522
|
+
results.push(result);
|
|
523
|
+
}
|
|
524
|
+
return results;
|
|
525
|
+
});
|
|
537
526
|
}
|
|
538
527
|
/**
|
|
539
528
|
* Returns a connection from the pool.
|
|
540
529
|
* Must call connection.release() when finished.
|
|
541
530
|
*
|
|
542
531
|
* @returns Database connection
|
|
532
|
+
* @throws {Error} If pool is unable to provide a connection (pool exhausted, connection timeout, etc.)
|
|
543
533
|
* @example
|
|
544
534
|
* const connection = await db.getConnection();
|
|
545
535
|
* try {
|
|
@@ -555,6 +545,7 @@ export class MySQL {
|
|
|
555
545
|
* Closes all connections in the pool.
|
|
556
546
|
* Call when shutting down the application.
|
|
557
547
|
*
|
|
548
|
+
* @throws {Error} If pool fails to close connections
|
|
558
549
|
* @example
|
|
559
550
|
* await db.end();
|
|
560
551
|
*/
|
package/dist/MySQL.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQL.js","sourceRoot":"","sources":["../src/MySQL.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MySQL.js","sourceRoot":"","sources":["../src/MySQL.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MySQL } from './MySQL.js';
|
|
2
2
|
export { MySQL };
|
|
3
|
-
export type { ConnectionConfig, FieldPacket,
|
|
3
|
+
export type { BatchQuery, ConnectionConfig, FieldPacket, Pool, PoolOptions, QueryMetrics, QueryParameters, QueryResult, ResultSetHeader, RowDataPacket, TransactionCallback, TransactionResult, } from './types.js';
|
|
4
4
|
export declare const db: MySQL;
|
|
5
5
|
export default db;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,EAAE,OAAc,CAAC;AAC9B,eAAe,EAAE,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,16 +4,18 @@ export interface ConnectionConfig extends PoolOptions {
|
|
|
4
4
|
}
|
|
5
5
|
export type QueryParameters = Record<string, any> | any[];
|
|
6
6
|
export type QueryResult<T = any> = T extends RowDataPacket[] ? T : any;
|
|
7
|
-
export interface InsertResult {
|
|
8
|
-
insertId: number;
|
|
9
|
-
affectedRows: number;
|
|
10
|
-
}
|
|
11
|
-
export interface UpdateResult {
|
|
12
|
-
affectedRows: number;
|
|
13
|
-
}
|
|
14
7
|
export interface TransactionCallback {
|
|
15
8
|
(execute: (query: string, parameters?: QueryParameters) => Promise<any>): Promise<any>;
|
|
16
9
|
}
|
|
10
|
+
export interface TransactionResult<T = any> {
|
|
11
|
+
success: boolean;
|
|
12
|
+
result?: T;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface BatchQuery {
|
|
16
|
+
query: string;
|
|
17
|
+
parameters?: QueryParameters;
|
|
18
|
+
}
|
|
17
19
|
export interface QueryMetrics {
|
|
18
20
|
query: string;
|
|
19
21
|
executionTime: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErG,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAEvE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErG,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,GAAG;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
|
package/package.json
CHANGED