@pi-r/mysql 0.2.2 → 0.2.5
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/client/index.js +38 -8
- package/package.json +2 -2
- package/types/index.d.ts +1 -1
package/client/index.js
CHANGED
|
@@ -21,9 +21,25 @@ class MySQLPool extends DbPool {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
const POOL_STATE = {};
|
|
24
|
+
const POOL_UNUSED = ['ssl', 'connectTimeout', 'queueLimit', 'waitForConnections', 'connectionLimit', 'maxIdle', 'idleTimeout', 'enableKeepAlive', 'keepAliveInitialDelay'];
|
|
24
25
|
function removePoolProperties(credential) {
|
|
25
|
-
if (!credential.uuidKey
|
|
26
|
-
|
|
26
|
+
if (!credential.uuidKey) {
|
|
27
|
+
let result;
|
|
28
|
+
for (let i = 0, length = POOL_UNUSED.length; i < length; ++i) {
|
|
29
|
+
const attr = POOL_UNUSED[i];
|
|
30
|
+
if (attr in credential) {
|
|
31
|
+
result || (result = { ...credential });
|
|
32
|
+
if (attr === 'ssl' && (0, types_1.isObject)(result[attr])) {
|
|
33
|
+
result[attr] = true;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
delete result[attr];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (result) {
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
27
43
|
}
|
|
28
44
|
return credential;
|
|
29
45
|
}
|
|
@@ -31,7 +47,6 @@ function removeUUIDKey(credential) {
|
|
|
31
47
|
if ('uuidKey' in credential) {
|
|
32
48
|
credential = { ...credential };
|
|
33
49
|
delete credential.uuidKey;
|
|
34
|
-
return credential;
|
|
35
50
|
}
|
|
36
51
|
return credential;
|
|
37
52
|
}
|
|
@@ -81,10 +96,13 @@ function setCredential(item) {
|
|
|
81
96
|
const { createPool } = require("mysql2/promise" /* STRINGS.PACKAGE_NAME */);
|
|
82
97
|
const config = this.getPoolConfig("mysql" /* STRINGS.MODULE_NAME */, password);
|
|
83
98
|
if (config) {
|
|
84
|
-
const { max, queue_max } = config;
|
|
99
|
+
const { max, idle, queue_max } = config;
|
|
85
100
|
if (max > 0) {
|
|
86
101
|
credential.connectionLimit ?? (credential.connectionLimit = max);
|
|
87
102
|
}
|
|
103
|
+
if (idle >= 0) {
|
|
104
|
+
credential.idleTimeout ?? (credential.idleTimeout = idle);
|
|
105
|
+
}
|
|
88
106
|
if (queue_max >= 0) {
|
|
89
107
|
credential.queueLimit ?? (credential.queueLimit = queue_max);
|
|
90
108
|
}
|
|
@@ -153,6 +171,9 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
153
171
|
let close;
|
|
154
172
|
switch (err instanceof Error && err.code) {
|
|
155
173
|
case 'ER_ACCESS_DENIED_ERROR':
|
|
174
|
+
case 'ER_DBACCESS_DENIED_ERROR':
|
|
175
|
+
case 'ER_SPECIFIC_ACCESS_DENIED_ERROR':
|
|
176
|
+
case 'ER_ACCESS_DENIED_NO_PASSWORD_ERROR':
|
|
156
177
|
close = 1;
|
|
157
178
|
break;
|
|
158
179
|
default:
|
|
@@ -261,7 +282,6 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
261
282
|
commandType = this.commandType.SELECT;
|
|
262
283
|
client
|
|
263
284
|
.query(query, params)
|
|
264
|
-
.on('error', err => error || (error = err))
|
|
265
285
|
.on('result', row => {
|
|
266
286
|
if (processRow) {
|
|
267
287
|
const err = processRow(row);
|
|
@@ -275,13 +295,14 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
275
295
|
}
|
|
276
296
|
rows.push(row);
|
|
277
297
|
})
|
|
298
|
+
.on('error', err => error || (error = err))
|
|
278
299
|
.on('end', () => {
|
|
279
300
|
if (error && this.handleFail(error, item, { errorQuery, commandType })) {
|
|
280
301
|
reject(error);
|
|
281
302
|
}
|
|
282
303
|
else {
|
|
283
304
|
this.add(item, 4 /* DB_TRANSACTION.COMMIT */);
|
|
284
|
-
resolve(!error ? this.setQueryResult(source, removePoolProperties(credential), queryString, rows, cacheValue) : rows);
|
|
305
|
+
resolve(!error ? this.setQueryResult(source, removePoolProperties(credential), queryString, rows, cacheValue) : rows.length ? rows : null);
|
|
285
306
|
}
|
|
286
307
|
});
|
|
287
308
|
}
|
|
@@ -291,9 +312,18 @@ async function executeBatchQuery(batch, options = '', outResult) {
|
|
|
291
312
|
mysqlClient = undefined;
|
|
292
313
|
}
|
|
293
314
|
commandType = this.commandType.SELECT;
|
|
294
|
-
|
|
315
|
+
let [rows] = await client.query(query, params);
|
|
295
316
|
this.add(item, 4 /* DB_TRANSACTION.COMMIT */);
|
|
296
|
-
|
|
317
|
+
if (Array.isArray(rows)) {
|
|
318
|
+
if (rows.length === 2 && Array.isArray(rows[0]) && !Array.isArray(rows[0])) {
|
|
319
|
+
rows = rows[0];
|
|
320
|
+
}
|
|
321
|
+
rows = rows.filter(row => Array.isArray(row) || !('affectedRows' in row && 'fieldCount' in row && 'serverStatus' in row));
|
|
322
|
+
resolve((0, types_1.isArray)(rows) ? this.setQueryResult(source, removePoolProperties(credential), queryString, rows, cacheValue) : null);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
resolve(null);
|
|
326
|
+
}
|
|
297
327
|
}
|
|
298
328
|
}
|
|
299
329
|
catch (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/mysql",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "MySQL client driver for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"types": "client/index.d.ts",
|
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@e-mc/db": "^0.5.3",
|
|
25
25
|
"@e-mc/types": "^0.5.3",
|
|
26
|
-
"mysql2": "^3.
|
|
26
|
+
"mysql2": "^3.5.2"
|
|
27
27
|
}
|
|
28
28
|
}
|
package/types/index.d.ts
CHANGED