@pma-network/sql 1.0.7 → 1.0.9

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 CHANGED
@@ -44,12 +44,17 @@ Import and use:
44
44
  ```typescript
45
45
  import db from '@pma-network/sql';
46
46
 
47
- const users = await db.query('SELECT * FROM users WHERE age > :age', { age: 18 });
48
- const insertId = await db.insert('INSERT INTO users (name, sex, identifier) VALUES (:name, :sex, :identifier)', {
49
- name: 'John Doe',
50
- sex: 'm',
51
- identifier: 'discord:123456789',
52
- });
47
+ const users = await db.query('SELECT * FROM users WHERE job_name = :job', { job: 'police' });
48
+ const insertId = await db.insert(
49
+ 'INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (:identifier_id, :char_data_id, :first_name, :last_name, :inventory_id)',
50
+ {
51
+ identifier_id: 1,
52
+ char_data_id: 1,
53
+ first_name: 'John',
54
+ last_name: 'Doe',
55
+ inventory_id: 1
56
+ }
57
+ );
53
58
  ```
54
59
 
55
60
  ## Usage
@@ -97,15 +102,31 @@ Optional: password, port (default: 3306)
97
102
 
98
103
  Named parameters:
99
104
  ```typescript
100
- await db.query('SELECT * FROM users WHERE name = :name AND age > :age', {
101
- name: 'John',
102
- age: 18,
105
+ await db.query('SELECT * FROM users WHERE first_name = :first_name AND job_name = :job', {
106
+ first_name: 'John',
107
+ job: 'police',
103
108
  });
104
109
  ```
105
110
 
106
111
  Positional parameters:
107
112
  ```typescript
108
- await db.query('SELECT * FROM users WHERE name = ? AND age > ?', ['John', 18]);
113
+ await db.query('SELECT * FROM users WHERE first_name = ? AND job_name = ?', ['John', 'police']);
114
+ ```
115
+
116
+ Raw queries (no parameter processing - no named params, no @ conversion, no undefined->null):
117
+ ```typescript
118
+ // Use raw methods when you need direct control
119
+ const users = await db.rawQuery('SELECT * FROM users WHERE uid = ?', [1]);
120
+ const insertId = await db.rawInsert(
121
+ 'INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (?, ?, ?, ?, ?)',
122
+ [1, 1, 'John', 'Doe', 1]
123
+ );
124
+
125
+ // Regular methods process parameters automatically:
126
+ // - Convert @ to :
127
+ // - Support named parameters (:name)
128
+ // - Convert undefined to null
129
+ const users2 = await db.query('SELECT * FROM users WHERE uid = :uid', { uid: 1 });
109
130
  ```
110
131
 
111
132
  TypeScript with type definitions:
@@ -113,21 +134,37 @@ TypeScript with type definitions:
113
134
  import db from '@pma-network/sql';
114
135
 
115
136
  interface User {
116
- id: number;
117
- name: string;
118
- email: string;
137
+ uid: number;
138
+ identifier_id: number;
139
+ bank: number;
140
+ char_data_id: number;
141
+ first_name: string;
142
+ last_name: string;
143
+ job_name: string;
144
+ job_rank: number;
145
+ slot_id: number | null;
146
+ model: string | null;
147
+ inventory_id: number;
148
+ x: number;
149
+ y: number;
150
+ z: number;
151
+ is_deleted: boolean | null;
119
152
  }
120
153
 
121
- const users = await db.query<User[]>('SELECT * FROM users');
122
- const user = await db.single<User>('SELECT * FROM users WHERE id = 1');
154
+ const users = await db.query<User[]>('SELECT * FROM users WHERE job_name = :job', { job: 'police' });
155
+ const user = await db.single<User>('SELECT * FROM users WHERE uid = :uid', { uid: 1 });
123
156
  ```
124
157
 
125
158
  Transactions with success/failure:
126
159
  ```typescript
127
160
  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 };
161
+ await execute('UPDATE users SET bank = bank + :amount WHERE uid = :uid', { amount: 1000, uid: 1 });
162
+ await execute('UPDATE users SET job_name = :job, job_rank = :rank WHERE uid = :uid', {
163
+ job: 'police',
164
+ rank: 1,
165
+ uid: 1
166
+ });
167
+ return { uid: 1 };
131
168
  });
132
169
 
133
170
  if (success) {
@@ -140,12 +177,21 @@ if (success) {
140
177
  Batch operations for bulk inserts/updates:
141
178
  ```typescript
142
179
  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' } }
180
+ {
181
+ query: 'INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (:identifier_id, :char_data_id, :first_name, :last_name, :inventory_id)',
182
+ parameters: { identifier_id: 1, char_data_id: 1, first_name: 'John', last_name: 'Doe', inventory_id: 1 }
183
+ },
184
+ {
185
+ query: 'INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (:identifier_id, :char_data_id, :first_name, :last_name, :inventory_id)',
186
+ parameters: { identifier_id: 2, char_data_id: 2, first_name: 'Jane', last_name: 'Smith', inventory_id: 2 }
187
+ },
188
+ {
189
+ query: 'UPDATE users SET job_name = :job WHERE uid = :uid',
190
+ parameters: { job: 'police', uid: 1 }
191
+ }
146
192
  ]);
147
193
 
148
194
  if (success) {
149
- console.log(`Inserted ${result.length} users`);
195
+ console.log(`Executed ${result.length} queries`);
150
196
  }
151
197
  ```
package/dist/MySQL.d.ts CHANGED
@@ -14,7 +14,6 @@ export declare class MySQL {
14
14
  private versionPrefix;
15
15
  private metricsExportResource;
16
16
  private metricsExportFunction;
17
- private poolReady;
18
17
  /**
19
18
  * Creates a new MySQL instance with connection pooling.
20
19
  * If no config is provided, it will automatically look for connection strings in environment variables.
@@ -23,6 +22,7 @@ export declare class MySQL {
23
22
  * @throws {Error} If no connection string is found or if connection string validation fails
24
23
  */
25
24
  constructor(config?: ConnectionConfig);
25
+ private fetchServerVersion;
26
26
  private getConvar;
27
27
  private getConvarInt;
28
28
  private getConvarBool;
@@ -75,61 +75,124 @@ export declare class MySQL {
75
75
  private processParameters;
76
76
  private logQuery;
77
77
  private handleError;
78
+ /**
79
+ * Executes a SQL query with raw positional parameters.
80
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
81
+ * Use ? placeholders only.
82
+ *
83
+ * @param query - SQL query with ? placeholders only
84
+ * @param parameters - Array of values (undefined values are NOT converted to null)
85
+ * @returns Query result
86
+ * @example
87
+ * const result = await db.rawExecute('SELECT * FROM users WHERE uid = ?', [1]);
88
+ */
89
+ rawExecute<T = unknown>(query: string, parameters?: unknown[]): Promise<T | null>;
78
90
  /**
79
91
  * Executes a SQL query and returns the raw results.
80
92
  * Supports SELECT, INSERT, UPDATE, DELETE, and other SQL statements.
93
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
81
94
  *
82
95
  * @param query - SQL query with :name or ? placeholders
83
96
  * @param parameters - Parameter values as object or array
84
97
  * @returns Query result
85
98
  * @example
86
- * const result = await db.execute('SELECT * FROM users WHERE id = :id', { id: 1 });
99
+ * const result = await db.execute('SELECT * FROM users WHERE uid = :uid', { uid: 1 });
87
100
  */
88
101
  execute<T = unknown>(query: string, parameters?: QueryParameters): Promise<T | null>;
102
+ /**
103
+ * Executes a SELECT query with raw positional parameters.
104
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
105
+ * Use ? placeholders only.
106
+ *
107
+ * @param query - SELECT query with ? placeholders only
108
+ * @param parameters - Array of values (undefined values are NOT converted to null)
109
+ * @returns Array of rows
110
+ * @example
111
+ * const users = await db.rawQuery('SELECT * FROM users WHERE job_name = ?', ['police']);
112
+ */
113
+ rawQuery<T = RowDataPacket[]>(query: string, parameters?: unknown[]): Promise<T | null>;
89
114
  /**
90
115
  * Executes a SELECT query and returns rows.
91
116
  * Use for queries returning multiple rows.
117
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
92
118
  *
93
119
  * @param query - SELECT query with :name or ? placeholders
94
120
  * @param parameters - Parameter values
95
121
  * @returns Array of rows
96
122
  * @example
97
- * const users = await db.query('SELECT * FROM users WHERE age > :age', { age: 18 });
123
+ * const users = await db.query('SELECT * FROM users WHERE job_name = :job', { job: 'police' });
98
124
  */
99
125
  query<T = RowDataPacket[]>(query: string, parameters?: QueryParameters): Promise<T | null>;
126
+ /**
127
+ * Inserts a row with raw positional parameters.
128
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
129
+ * Returns the auto-generated ID.
130
+ *
131
+ * @param query - INSERT query with ? placeholders only
132
+ * @param parameters - Array of values (undefined values are NOT converted to null)
133
+ * @returns Insert ID or null on error
134
+ * @example
135
+ * const insertId = await db.rawInsert('INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (?, ?, ?, ?, ?)', [1, 1, 'John', 'Doe', 1]);
136
+ */
137
+ rawInsert(query: string, parameters?: unknown[]): Promise<number | null>;
100
138
  /**
101
139
  * Inserts a row into the database.
102
140
  * Returns the auto-generated ID.
141
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
103
142
  *
104
143
  * @param query - INSERT query with :name or ? placeholders
105
144
  * @param parameters - Values to insert
106
145
  * @returns Insert ID or null on error
107
146
  * @example
108
147
  * const insertId = await db.insert(
109
- * 'INSERT INTO users (name, email) VALUES (:name, :email)',
110
- * { name: 'John', email: 'john@example.com' }
148
+ * 'INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (:identifier_id, :char_data_id, :first_name, :last_name, :inventory_id)',
149
+ * { identifier_id: 1, char_data_id: 1, first_name: 'John', last_name: 'Doe', inventory_id: 1 }
111
150
  * );
112
- * console.log(insertId);
113
151
  */
114
152
  insert(query: string, parameters?: QueryParameters): Promise<number | null>;
153
+ /**
154
+ * Updates rows with raw positional parameters.
155
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
156
+ * Returns the number of affected rows.
157
+ *
158
+ * @param query - UPDATE query with ? placeholders only
159
+ * @param parameters - Array of values (undefined values are NOT converted to null)
160
+ * @returns Number of affected rows or null on error
161
+ * @example
162
+ * const affectedRows = await db.rawUpdate('UPDATE users SET job_name = ?, job_rank = ? WHERE uid = ?', ['police', 1, 123]);
163
+ */
164
+ rawUpdate(query: string, parameters?: unknown[]): Promise<number | null>;
115
165
  /**
116
166
  * Updates rows in the database.
117
167
  * Returns the number of affected rows.
168
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
118
169
  *
119
170
  * @param query - UPDATE query with :name or ? placeholders
120
171
  * @param parameters - Values to update
121
172
  * @returns Number of affected rows or null on error
122
173
  * @example
123
174
  * const affectedRows = await db.update(
124
- * 'UPDATE users SET verified = 1 WHERE id = :id',
125
- * { id: 123 }
175
+ * 'UPDATE users SET job_name = :job, job_rank = :rank WHERE uid = :uid',
176
+ * { job: 'police', rank: 1, uid: 123 }
126
177
  * );
127
- * console.log(affectedRows);
128
178
  */
129
179
  update(query: string, parameters?: QueryParameters): Promise<number | null>;
180
+ /**
181
+ * Returns a single value with raw positional parameters.
182
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
183
+ * Use for COUNT, SUM, or single column queries.
184
+ *
185
+ * @param query - SELECT query with ? placeholders only, returning one column
186
+ * @param parameters - Array of values (undefined values are NOT converted to null)
187
+ * @returns Value from first column of first row, or null
188
+ * @example
189
+ * const count = await db.rawScalar('SELECT COUNT(*) FROM users WHERE age > ?', [18]);
190
+ */
191
+ rawScalar<T = unknown>(query: string, parameters?: unknown[]): Promise<T | null>;
130
192
  /**
131
193
  * Returns a single value from the database.
132
194
  * Use for COUNT, SUM, or single column queries.
195
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
133
196
  *
134
197
  * @param query - SELECT query returning one column
135
198
  * @param parameters - Parameter values
@@ -139,9 +202,22 @@ export declare class MySQL {
139
202
  * const name = await db.scalar('SELECT name FROM users WHERE id = :id', { id: 1 });
140
203
  */
141
204
  scalar<T = unknown>(query: string, parameters?: QueryParameters): Promise<T | null>;
205
+ /**
206
+ * Returns a single row with raw positional parameters.
207
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
208
+ * Returns null if no rows match.
209
+ *
210
+ * @param query - SELECT query with ? placeholders only
211
+ * @param parameters - Array of values (undefined values are NOT converted to null)
212
+ * @returns Single row or null
213
+ * @example
214
+ * const user = await db.rawSingle('SELECT * FROM users WHERE id = ?', [1]);
215
+ */
216
+ rawSingle<T = RowDataPacket>(query: string, parameters?: unknown[]): Promise<T | null>;
142
217
  /**
143
218
  * Returns a single row from the database.
144
219
  * Returns null if no rows match.
220
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
145
221
  *
146
222
  * @param query - SELECT query with :name or ? placeholders
147
223
  * @param parameters - Parameter values
@@ -167,17 +243,6 @@ export declare class MySQL {
167
243
  * });
168
244
  */
169
245
  transaction<T = unknown>(callback: TransactionCallback): Promise<TransactionResult<T>>;
170
- /**
171
- * Executes a query with positional parameters.
172
- * Skips named parameter processing. Use ? placeholders only.
173
- *
174
- * @param query - SQL query with ? placeholders
175
- * @param parameters - Array of values for placeholders
176
- * @returns Query result
177
- * @example
178
- * const result = await db.rawExecute('SELECT * FROM users WHERE id = ?', [1]);
179
- */
180
- rawExecute<T = unknown>(query: string, parameters?: unknown[]): Promise<T | null>;
181
246
  /**
182
247
  * Executes multiple queries in a batch within a transaction.
183
248
  * All queries are executed atomically - either all succeed or all are rolled back.
@@ -195,7 +260,7 @@ export declare class MySQL {
195
260
  * console.log(`Executed ${result.length} queries`);
196
261
  * }
197
262
  */
198
- batch(queries: BatchQuery[]): Promise<TransactionResult<any[]>>;
263
+ batch<T = unknown>(queries: BatchQuery[]): Promise<TransactionResult<T[]>>;
199
264
  /**
200
265
  * Returns a connection from the pool.
201
266
  * Must call connection.release() when finished.
@@ -1 +1 @@
1
- {"version":3,"file":"MySQL.d.ts","sourceRoot":"","sources":["../src/MySQL.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MySQL.d.ts","sourceRoot":"","sources":["../src/MySQL.ts"],"names":[],"mappings":"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"}
package/dist/MySQL.js CHANGED
@@ -15,7 +15,6 @@ export class MySQL {
15
15
  versionPrefix = '';
16
16
  metricsExportResource;
17
17
  metricsExportFunction;
18
- poolReady;
19
18
  /**
20
19
  * Creates a new MySQL instance with connection pooling.
21
20
  * If no config is provided, it will automatically look for connection strings in environment variables.
@@ -39,17 +38,29 @@ export class MySQL {
39
38
  waitForConnections: true,
40
39
  connectionLimit: 10,
41
40
  queueLimit: 0,
41
+ idleTimeout: 300_000,
42
42
  ...poolConfig,
43
43
  });
44
44
  this.namedPlaceholdersCompiler = namedPlaceholders();
45
- this.poolReady = this.pool.getConnection().then(conn => {
46
- const serverVersion = conn.connection?._handshakePacket?.serverVersion;
47
- if (serverVersion) {
48
- this.versionPrefix = `^4[${serverVersion}]^0 `;
45
+ this.fetchServerVersion();
46
+ }
47
+ async fetchServerVersion() {
48
+ try {
49
+ const connection = await this.pool.getConnection();
50
+ try {
51
+ const serverVersion = connection.connection?._handshakePacket?.serverVersion;
52
+ if (serverVersion) {
53
+ this.versionPrefix = `^4[${serverVersion}]^0 `;
54
+ }
49
55
  }
50
- conn.release();
51
- }).catch(() => { });
56
+ finally {
57
+ connection.release();
58
+ }
59
+ }
60
+ catch { }
52
61
  }
62
+ // This wrapper is meant to be usable for our Node.js code since it has way better
63
+ // ergonmoics, so we have to test that GetConvar exists before trying to do anything else
53
64
  getConvar(varName) {
54
65
  if (typeof globalThis.GetConvar === 'function') {
55
66
  return globalThis.GetConvar(varName, '') || null;
@@ -214,7 +225,6 @@ export class MySQL {
214
225
  }
215
226
  }
216
227
  async executeWithTiming(processedQuery, processedParams, executor) {
217
- await this.poolReady;
218
228
  const startTime = performance.now();
219
229
  try {
220
230
  const result = await executor();
@@ -266,7 +276,7 @@ export class MySQL {
266
276
  }
267
277
  }
268
278
  async executeTransaction(callback) {
269
- await this.poolReady;
279
+ this.scheduleResourceTick();
270
280
  const connection = await this.pool.getConnection();
271
281
  try {
272
282
  await connection.beginTransaction();
@@ -333,87 +343,176 @@ export class MySQL {
333
343
  throw error;
334
344
  }
335
345
  }
346
+ /**
347
+ * Executes a SQL query with raw positional parameters.
348
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
349
+ * Use ? placeholders only.
350
+ *
351
+ * @param query - SQL query with ? placeholders only
352
+ * @param parameters - Array of values (undefined values are NOT converted to null)
353
+ * @returns Query result
354
+ * @example
355
+ * const result = await db.rawExecute('SELECT * FROM users WHERE uid = ?', [1]);
356
+ */
357
+ async rawExecute(query, parameters) {
358
+ this.scheduleResourceTick();
359
+ const params = parameters || [];
360
+ return this.executeWithTiming(query, params, async () => {
361
+ const [results] = await this.pool.execute(query, params);
362
+ return results;
363
+ });
364
+ }
336
365
  /**
337
366
  * Executes a SQL query and returns the raw results.
338
367
  * Supports SELECT, INSERT, UPDATE, DELETE, and other SQL statements.
368
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
339
369
  *
340
370
  * @param query - SQL query with :name or ? placeholders
341
371
  * @param parameters - Parameter values as object or array
342
372
  * @returns Query result
343
373
  * @example
344
- * const result = await db.execute('SELECT * FROM users WHERE id = :id', { id: 1 });
374
+ * const result = await db.execute('SELECT * FROM users WHERE uid = :uid', { uid: 1 });
345
375
  */
346
376
  async execute(query, parameters) {
347
- this.scheduleResourceTick();
348
377
  const [processedQuery, processedParams] = this.processParameters(query, parameters);
349
- return this.executeWithTiming(processedQuery, processedParams, async () => {
350
- const [results] = await this.pool.execute(processedQuery, processedParams);
351
- return results;
378
+ return this.rawExecute(processedQuery, processedParams);
379
+ }
380
+ /**
381
+ * Executes a SELECT query with raw positional parameters.
382
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
383
+ * Use ? placeholders only.
384
+ *
385
+ * @param query - SELECT query with ? placeholders only
386
+ * @param parameters - Array of values (undefined values are NOT converted to null)
387
+ * @returns Array of rows
388
+ * @example
389
+ * const users = await db.rawQuery('SELECT * FROM users WHERE job_name = ?', ['police']);
390
+ */
391
+ async rawQuery(query, parameters) {
392
+ this.scheduleResourceTick();
393
+ const params = parameters || [];
394
+ return this.executeWithTiming(query, params, async () => {
395
+ const [rows] = await this.pool.query(query, params);
396
+ return rows;
352
397
  });
353
398
  }
354
399
  /**
355
400
  * Executes a SELECT query and returns rows.
356
401
  * Use for queries returning multiple rows.
402
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
357
403
  *
358
404
  * @param query - SELECT query with :name or ? placeholders
359
405
  * @param parameters - Parameter values
360
406
  * @returns Array of rows
361
407
  * @example
362
- * const users = await db.query('SELECT * FROM users WHERE age > :age', { age: 18 });
408
+ * const users = await db.query('SELECT * FROM users WHERE job_name = :job', { job: 'police' });
363
409
  */
364
410
  async query(query, parameters) {
365
- this.scheduleResourceTick();
366
411
  const [processedQuery, processedParams] = this.processParameters(query, parameters);
367
- return this.executeWithTiming(processedQuery, processedParams, async () => {
368
- const [rows] = await this.pool.query(processedQuery, processedParams);
369
- return rows;
412
+ return this.rawQuery(processedQuery, processedParams);
413
+ }
414
+ /**
415
+ * Inserts a row with raw positional parameters.
416
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
417
+ * Returns the auto-generated ID.
418
+ *
419
+ * @param query - INSERT query with ? placeholders only
420
+ * @param parameters - Array of values (undefined values are NOT converted to null)
421
+ * @returns Insert ID or null on error
422
+ * @example
423
+ * const insertId = await db.rawInsert('INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (?, ?, ?, ?, ?)', [1, 1, 'John', 'Doe', 1]);
424
+ */
425
+ async rawInsert(query, parameters) {
426
+ this.scheduleResourceTick();
427
+ const params = parameters || [];
428
+ return this.executeWithTiming(query, params, async () => {
429
+ const [result] = await this.pool.execute(query, params);
430
+ return result.insertId;
370
431
  });
371
432
  }
372
433
  /**
373
434
  * Inserts a row into the database.
374
435
  * Returns the auto-generated ID.
436
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
375
437
  *
376
438
  * @param query - INSERT query with :name or ? placeholders
377
439
  * @param parameters - Values to insert
378
440
  * @returns Insert ID or null on error
379
441
  * @example
380
442
  * const insertId = await db.insert(
381
- * 'INSERT INTO users (name, email) VALUES (:name, :email)',
382
- * { name: 'John', email: 'john@example.com' }
443
+ * 'INSERT INTO users (identifier_id, char_data_id, first_name, last_name, inventory_id) VALUES (:identifier_id, :char_data_id, :first_name, :last_name, :inventory_id)',
444
+ * { identifier_id: 1, char_data_id: 1, first_name: 'John', last_name: 'Doe', inventory_id: 1 }
383
445
  * );
384
- * console.log(insertId);
385
446
  */
386
447
  async insert(query, parameters) {
387
448
  const [processedQuery, processedParams] = this.processParameters(query, parameters);
388
- return this.executeWithTiming(processedQuery, processedParams, async () => {
389
- const [result] = await this.pool.execute(processedQuery, processedParams);
390
- return result.insertId;
449
+ return this.rawInsert(processedQuery, processedParams);
450
+ }
451
+ /**
452
+ * Updates rows with raw positional parameters.
453
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
454
+ * Returns the number of affected rows.
455
+ *
456
+ * @param query - UPDATE query with ? placeholders only
457
+ * @param parameters - Array of values (undefined values are NOT converted to null)
458
+ * @returns Number of affected rows or null on error
459
+ * @example
460
+ * const affectedRows = await db.rawUpdate('UPDATE users SET job_name = ?, job_rank = ? WHERE uid = ?', ['police', 1, 123]);
461
+ */
462
+ async rawUpdate(query, parameters) {
463
+ this.scheduleResourceTick();
464
+ const params = parameters || [];
465
+ return this.executeWithTiming(query, params, async () => {
466
+ const [result] = await this.pool.execute(query, params);
467
+ return result.affectedRows;
391
468
  });
392
469
  }
393
470
  /**
394
471
  * Updates rows in the database.
395
472
  * Returns the number of affected rows.
473
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
396
474
  *
397
475
  * @param query - UPDATE query with :name or ? placeholders
398
476
  * @param parameters - Values to update
399
477
  * @returns Number of affected rows or null on error
400
478
  * @example
401
479
  * const affectedRows = await db.update(
402
- * 'UPDATE users SET verified = 1 WHERE id = :id',
403
- * { id: 123 }
480
+ * 'UPDATE users SET job_name = :job, job_rank = :rank WHERE uid = :uid',
481
+ * { job: 'police', rank: 1, uid: 123 }
404
482
  * );
405
- * console.log(affectedRows);
406
483
  */
407
484
  async update(query, parameters) {
408
485
  const [processedQuery, processedParams] = this.processParameters(query, parameters);
409
- return this.executeWithTiming(processedQuery, processedParams, async () => {
410
- const [result] = await this.pool.execute(processedQuery, processedParams);
411
- return result.affectedRows;
486
+ return this.rawUpdate(processedQuery, processedParams);
487
+ }
488
+ /**
489
+ * Returns a single value with raw positional parameters.
490
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
491
+ * Use for COUNT, SUM, or single column queries.
492
+ *
493
+ * @param query - SELECT query with ? placeholders only, returning one column
494
+ * @param parameters - Array of values (undefined values are NOT converted to null)
495
+ * @returns Value from first column of first row, or null
496
+ * @example
497
+ * const count = await db.rawScalar('SELECT COUNT(*) FROM users WHERE age > ?', [18]);
498
+ */
499
+ async rawScalar(query, parameters) {
500
+ this.scheduleResourceTick();
501
+ const params = parameters || [];
502
+ return this.executeWithTiming(query, params, async () => {
503
+ const [rows] = await this.pool.query(query, params);
504
+ if (!rows || rows.length === 0) {
505
+ return null;
506
+ }
507
+ const firstRow = rows[0];
508
+ const firstColumn = Object.values(firstRow)[0];
509
+ return firstColumn;
412
510
  });
413
511
  }
414
512
  /**
415
513
  * Returns a single value from the database.
416
514
  * Use for COUNT, SUM, or single column queries.
515
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
417
516
  *
418
517
  * @param query - SELECT query returning one column
419
518
  * @param parameters - Parameter values
@@ -424,19 +523,31 @@ export class MySQL {
424
523
  */
425
524
  async scalar(query, parameters) {
426
525
  const [processedQuery, processedParams] = this.processParameters(query, parameters);
427
- return this.executeWithTiming(processedQuery, processedParams, async () => {
428
- const [rows] = await this.pool.query(processedQuery, processedParams);
429
- if (!rows || rows.length === 0) {
430
- return null;
431
- }
432
- const firstRow = rows[0];
433
- const firstColumn = Object.values(firstRow)[0];
434
- return firstColumn;
526
+ return this.rawScalar(processedQuery, processedParams);
527
+ }
528
+ /**
529
+ * Returns a single row with raw positional parameters.
530
+ * This cannot use named parameters (i.e. :job_name, or @job_name), you cannot use undefined as a value here you *must* use null, otherwise you will get an error.
531
+ * Returns null if no rows match.
532
+ *
533
+ * @param query - SELECT query with ? placeholders only
534
+ * @param parameters - Array of values (undefined values are NOT converted to null)
535
+ * @returns Single row or null
536
+ * @example
537
+ * const user = await db.rawSingle('SELECT * FROM users WHERE id = ?', [1]);
538
+ */
539
+ async rawSingle(query, parameters) {
540
+ this.scheduleResourceTick();
541
+ const params = parameters || [];
542
+ return this.executeWithTiming(query, params, async () => {
543
+ const [rows] = await this.pool.query(query, params);
544
+ return rows.length > 0 ? rows[0] : null;
435
545
  });
436
546
  }
437
547
  /**
438
548
  * Returns a single row from the database.
439
549
  * Returns null if no rows match.
550
+ * Processes named parameters (:name), converts undefined to null, and converts @ to :.
440
551
  *
441
552
  * @param query - SELECT query with :name or ? placeholders
442
553
  * @param parameters - Parameter values
@@ -449,10 +560,7 @@ export class MySQL {
449
560
  */
450
561
  async single(query, parameters) {
451
562
  const [processedQuery, processedParams] = this.processParameters(query, parameters);
452
- return this.executeWithTiming(processedQuery, processedParams, async () => {
453
- const [rows] = await this.pool.query(processedQuery, processedParams);
454
- return rows.length > 0 ? rows[0] : null;
455
- });
563
+ return this.rawSingle(processedQuery, processedParams);
456
564
  }
457
565
  /**
458
566
  * Executes multiple queries as an atomic transaction.
@@ -468,32 +576,11 @@ export class MySQL {
468
576
  * });
469
577
  */
470
578
  async transaction(callback) {
471
- this.scheduleResourceTick();
472
579
  return this.executeTransaction(async (connection) => {
473
- const executeInTransaction = (query, parameters) => {
474
- return this.executeInConnection(connection, query, parameters);
580
+ const executeInTransaction = async (query, parameters) => {
581
+ return await this.executeInConnection(connection, query, parameters);
475
582
  };
476
- return callback(executeInTransaction);
477
- });
478
- }
479
- /**
480
- * Executes a query with positional parameters.
481
- * Skips named parameter processing. Use ? placeholders only.
482
- *
483
- * @param query - SQL query with ? placeholders
484
- * @param parameters - Array of values for placeholders
485
- * @returns Query result
486
- * @example
487
- * const result = await db.rawExecute('SELECT * FROM users WHERE id = ?', [1]);
488
- */
489
- async rawExecute(query, parameters) {
490
- this.scheduleResourceTick();
491
- const processedQuery = this.replaceAtSymbols(query);
492
- const params = parameters || [];
493
- this.normalizeParameters(params);
494
- return this.executeWithTiming(processedQuery, params, async () => {
495
- const [results] = await this.pool.execute(processedQuery, params);
496
- return results;
583
+ return await callback(executeInTransaction);
497
584
  });
498
585
  }
499
586
  /**
@@ -514,7 +601,6 @@ export class MySQL {
514
601
  * }
515
602
  */
516
603
  async batch(queries) {
517
- this.scheduleResourceTick();
518
604
  return this.executeTransaction(async (connection) => {
519
605
  const results = [];
520
606
  for (const { query, parameters } of queries) {
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pma-network/sql",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "MySQL wrapper with promise-based async operations, connection pooling, and named parameters support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",