/
client-wrapper.js
49 lines (38 loc) · 1.05 KB
/
client-wrapper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'use strict';
const debug = require('debug')('mysql:query');
const mysql = require('mysql');
module.exports = function(client) {
return {
command,
query,
escapeId: mysql.escapeId
};
function command() {
return _query('run', arguments);
}
function query() {
return _query('all', arguments);
}
function _query(method, args) {
debug(args[0]);
return new Promise((resolve, reject) => {
client.query.apply(client, [].slice.call(args).concat((err, result) => {
if (err) {
return reject(err);
}
if (method !== 'run') {
return resolve(result);
}
const lastID = result.insertId;
const changes = result.affectedRows;
resolve({
result,
meta: {
lastID,
changes
}
});
}));
});
}
};