mysql2-core 0.2.3 → 0.3.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.
- package/lib/build.js +40 -40
- package/lib/index.js +806 -283
- package/package.json +2 -1
- package/src/build.ts +153 -153
- package/src/index.ts +925 -462
- package/src/metadata.ts +51 -70
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
5
|
s = arguments[i];
|
|
6
6
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -67,235 +67,766 @@ function createPool(conf) {
|
|
|
67
67
|
return pool;
|
|
68
68
|
}
|
|
69
69
|
exports.createPool = createPool;
|
|
70
|
+
function getConnection(pool) {
|
|
71
|
+
return new Promise(function (resolve, reject) {
|
|
72
|
+
pool.getConnection(function (err, connection) {
|
|
73
|
+
if (err) {
|
|
74
|
+
return reject(err);
|
|
75
|
+
}
|
|
76
|
+
return resolve(connection);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
exports.getConnection = getConnection;
|
|
81
|
+
function beginTransaction(connection, rollbackIfError) {
|
|
82
|
+
return new Promise(function (resolve, reject) {
|
|
83
|
+
connection.beginTransaction(function (err) {
|
|
84
|
+
if (err) {
|
|
85
|
+
if (!rollbackIfError) {
|
|
86
|
+
return reject(err);
|
|
87
|
+
}
|
|
88
|
+
connection.rollback(function () {
|
|
89
|
+
return reject(err);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return resolve();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exports.beginTransaction = beginTransaction;
|
|
97
|
+
function commit(connection, rollbackIfError) {
|
|
98
|
+
return new Promise(function (resolve, reject) {
|
|
99
|
+
connection.commit(function (err) {
|
|
100
|
+
if (err) {
|
|
101
|
+
if (!rollbackIfError) {
|
|
102
|
+
return reject(err);
|
|
103
|
+
}
|
|
104
|
+
connection.rollback(function () {
|
|
105
|
+
return reject(err);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
resolve();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
exports.commit = commit;
|
|
113
|
+
function rollback(connection) {
|
|
114
|
+
return new Promise(function (resolve, reject) {
|
|
115
|
+
connection.rollback(function (err) {
|
|
116
|
+
if (err) {
|
|
117
|
+
return reject(err);
|
|
118
|
+
}
|
|
119
|
+
resolve();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
exports.rollback = rollback;
|
|
70
124
|
var PoolManager = (function () {
|
|
71
125
|
function PoolManager(pool) {
|
|
72
126
|
this.pool = pool;
|
|
73
|
-
this.driver =
|
|
127
|
+
this.driver = "mysql";
|
|
74
128
|
this.param = this.param.bind(this);
|
|
75
|
-
this.
|
|
76
|
-
this.
|
|
129
|
+
this.execute = this.execute.bind(this);
|
|
130
|
+
this.executeBatch = this.executeBatch.bind(this);
|
|
77
131
|
this.query = this.query.bind(this);
|
|
78
132
|
this.queryOne = this.queryOne.bind(this);
|
|
79
|
-
this.
|
|
133
|
+
this.executeScalar = this.executeScalar.bind(this);
|
|
80
134
|
this.count = this.count.bind(this);
|
|
81
135
|
}
|
|
82
136
|
PoolManager.prototype.param = function (i) {
|
|
83
|
-
return
|
|
137
|
+
return "?";
|
|
138
|
+
};
|
|
139
|
+
PoolManager.prototype.beginTransaction = function () {
|
|
140
|
+
var _this = this;
|
|
141
|
+
return new Promise(function (resolve, reject) {
|
|
142
|
+
_this.pool.getConnection(function (er0, connection) {
|
|
143
|
+
if (er0) {
|
|
144
|
+
return reject(er0);
|
|
145
|
+
}
|
|
146
|
+
connection.beginTransaction(function (er1) {
|
|
147
|
+
if (er1) {
|
|
148
|
+
connection.rollback(function () {
|
|
149
|
+
return reject(er1);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
var tx = new PoolConnectionManager(connection);
|
|
153
|
+
return resolve(tx);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
});
|
|
84
157
|
};
|
|
85
|
-
PoolManager.prototype.
|
|
86
|
-
var p =
|
|
87
|
-
return
|
|
158
|
+
PoolManager.prototype.execute = function (sql, args, ctx) {
|
|
159
|
+
var p = ctx ? ctx : this.pool;
|
|
160
|
+
return execute(p, sql, args);
|
|
88
161
|
};
|
|
89
|
-
PoolManager.prototype.
|
|
90
|
-
var p =
|
|
91
|
-
return
|
|
162
|
+
PoolManager.prototype.executeBatch = function (statements, firstSuccess, ctx) {
|
|
163
|
+
var p = ctx ? ctx : this.pool;
|
|
164
|
+
return executeBatch(p, statements, firstSuccess);
|
|
92
165
|
};
|
|
93
166
|
PoolManager.prototype.query = function (sql, args, m, bools, ctx) {
|
|
94
|
-
var p =
|
|
167
|
+
var p = ctx ? ctx : this.pool;
|
|
95
168
|
return query(p, sql, args, m, bools);
|
|
96
169
|
};
|
|
97
170
|
PoolManager.prototype.queryOne = function (sql, args, m, bools, ctx) {
|
|
98
|
-
var p =
|
|
171
|
+
var p = ctx ? ctx : this.pool;
|
|
99
172
|
return queryOne(p, sql, args, m, bools);
|
|
100
173
|
};
|
|
101
|
-
PoolManager.prototype.
|
|
102
|
-
var p =
|
|
103
|
-
return
|
|
174
|
+
PoolManager.prototype.executeScalar = function (sql, args, ctx) {
|
|
175
|
+
var p = ctx ? ctx : this.pool;
|
|
176
|
+
return executeScalar(p, sql, args);
|
|
104
177
|
};
|
|
105
178
|
PoolManager.prototype.count = function (sql, args, ctx) {
|
|
106
|
-
var p =
|
|
179
|
+
var p = ctx ? ctx : this.pool;
|
|
107
180
|
return count(p, sql, args);
|
|
108
181
|
};
|
|
109
182
|
return PoolManager;
|
|
110
183
|
}());
|
|
111
184
|
exports.PoolManager = PoolManager;
|
|
112
|
-
function
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
185
|
+
var PoolConnectionManager = (function () {
|
|
186
|
+
function PoolConnectionManager(connection) {
|
|
187
|
+
this.connection = connection;
|
|
188
|
+
this.driver = "mysql";
|
|
189
|
+
this.param = this.param.bind(this);
|
|
190
|
+
this.execute = this.execute.bind(this);
|
|
191
|
+
this.executeBatch = this.executeBatch.bind(this);
|
|
192
|
+
this.query = this.query.bind(this);
|
|
193
|
+
this.queryOne = this.queryOne.bind(this);
|
|
194
|
+
this.executeScalar = this.executeScalar.bind(this);
|
|
195
|
+
this.count = this.count.bind(this);
|
|
118
196
|
}
|
|
119
|
-
|
|
197
|
+
PoolConnectionManager.prototype.param = function (i) {
|
|
198
|
+
return "?";
|
|
199
|
+
};
|
|
200
|
+
PoolConnectionManager.prototype.commit = function () {
|
|
201
|
+
var _this = this;
|
|
120
202
|
return new Promise(function (resolve, reject) {
|
|
121
|
-
|
|
122
|
-
if (
|
|
123
|
-
return reject(
|
|
203
|
+
_this.connection.commit(function (er3) {
|
|
204
|
+
if (er3) {
|
|
205
|
+
return reject(er3);
|
|
124
206
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
207
|
+
return resolve();
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
PoolConnectionManager.prototype.rollback = function () {
|
|
212
|
+
var _this = this;
|
|
213
|
+
return new Promise(function (resolve, reject) {
|
|
214
|
+
_this.connection.rollback(function (er3) {
|
|
215
|
+
if (er3) {
|
|
216
|
+
return reject(er3);
|
|
217
|
+
}
|
|
218
|
+
return resolve();
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
PoolConnectionManager.prototype.execute = function (sql, args, ctx) {
|
|
223
|
+
var p = ctx ? ctx : this.connection;
|
|
224
|
+
return execute(p, sql, args);
|
|
225
|
+
};
|
|
226
|
+
PoolConnectionManager.prototype.executeBatch = function (statements, firstSuccess, ctx) {
|
|
227
|
+
var p = ctx ? ctx : this.connection;
|
|
228
|
+
return executeBatchConnection(p, statements, firstSuccess);
|
|
229
|
+
};
|
|
230
|
+
PoolConnectionManager.prototype.query = function (sql, args, m, bools, ctx) {
|
|
231
|
+
var p = ctx ? ctx : this.connection;
|
|
232
|
+
return query(p, sql, args, m, bools);
|
|
233
|
+
};
|
|
234
|
+
PoolConnectionManager.prototype.queryOne = function (sql, args, m, bools, ctx) {
|
|
235
|
+
var p = ctx ? ctx : this.connection;
|
|
236
|
+
return queryOne(p, sql, args, m, bools);
|
|
237
|
+
};
|
|
238
|
+
PoolConnectionManager.prototype.executeScalar = function (sql, args, ctx) {
|
|
239
|
+
var p = ctx ? ctx : this.connection;
|
|
240
|
+
return executeScalar(p, sql, args);
|
|
241
|
+
};
|
|
242
|
+
PoolConnectionManager.prototype.count = function (sql, args, ctx) {
|
|
243
|
+
var p = ctx ? ctx : this.connection;
|
|
244
|
+
return count(p, sql, args);
|
|
245
|
+
};
|
|
246
|
+
return PoolConnectionManager;
|
|
247
|
+
}());
|
|
248
|
+
exports.PoolConnectionManager = PoolConnectionManager;
|
|
249
|
+
function executeBatch(pool, statements, firstSuccess) {
|
|
250
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
251
|
+
var connection;
|
|
252
|
+
return __generator(this, function (_a) {
|
|
253
|
+
switch (_a.label) {
|
|
254
|
+
case 0:
|
|
255
|
+
if (!statements || statements.length === 0) {
|
|
256
|
+
return [2, Promise.resolve(0)];
|
|
130
257
|
}
|
|
131
|
-
else {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
258
|
+
else if (statements.length === 1) {
|
|
259
|
+
return [2, execute(pool, statements[0].query, statements[0].params)];
|
|
260
|
+
}
|
|
261
|
+
if (!resource.multipleStatements) return [3, 1];
|
|
262
|
+
if (firstSuccess) {
|
|
263
|
+
return [2, new Promise(function (resolve, reject) {
|
|
264
|
+
pool.getConnection(function (er0, connection) {
|
|
265
|
+
if (er0) {
|
|
266
|
+
return reject(er0);
|
|
267
|
+
}
|
|
268
|
+
connection.beginTransaction(function (er1) {
|
|
269
|
+
if (er1) {
|
|
270
|
+
connection.rollback(function () {
|
|
271
|
+
return reject(er1);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
connection.execute(statements[0].query, toArray(statements[0].params), function (er2a, results0) {
|
|
276
|
+
if (er2a) {
|
|
277
|
+
connection.rollback(function () {
|
|
278
|
+
return reject(er2a);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
if (results0 && results0.affectedRows === 0) {
|
|
283
|
+
connection.commit(function (er3) {
|
|
284
|
+
if (er3) {
|
|
285
|
+
connection.rollback(function () {
|
|
286
|
+
return reject(er3);
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
return 0;
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
var queries = [];
|
|
294
|
+
var params = [];
|
|
295
|
+
var l = statements.length;
|
|
296
|
+
for (var j = 1; j < l; j++) {
|
|
297
|
+
var item = statements[j];
|
|
298
|
+
if (item.query.endsWith(";")) {
|
|
299
|
+
queries.push(item.query);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
queries.push(item.query + ";");
|
|
303
|
+
}
|
|
304
|
+
if (item.params && item.params.length > 0) {
|
|
305
|
+
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
306
|
+
var p = _a[_i];
|
|
307
|
+
params.push(p);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
connection.execute(queries.join(""), toArray(params), function (er2, results) {
|
|
312
|
+
if (er2) {
|
|
313
|
+
connection.rollback(function () {
|
|
314
|
+
return reject(er2);
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
connection.commit(function (er3) {
|
|
319
|
+
if (er3) {
|
|
320
|
+
connection.rollback(function () {
|
|
321
|
+
return reject(er3);
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
var c = 0;
|
|
326
|
+
c += results0.affectedRows + results.affectedRows;
|
|
327
|
+
return resolve(c);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
});
|
|
153
335
|
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
336
|
+
})];
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
return [2, new Promise(function (resolve, reject) {
|
|
340
|
+
pool.getConnection(function (er0, connection) {
|
|
341
|
+
if (er0) {
|
|
342
|
+
return reject(er0);
|
|
343
|
+
}
|
|
344
|
+
connection.beginTransaction(function (er1) {
|
|
345
|
+
if (er1) {
|
|
162
346
|
connection.rollback(function () {
|
|
163
|
-
return reject(
|
|
347
|
+
return reject(er1);
|
|
164
348
|
});
|
|
165
349
|
}
|
|
166
350
|
else {
|
|
167
|
-
|
|
168
|
-
|
|
351
|
+
var queries_1 = [];
|
|
352
|
+
var params_1 = [];
|
|
353
|
+
statements.forEach(function (item) {
|
|
354
|
+
if (item.query.endsWith(";")) {
|
|
355
|
+
queries_1.push(item.query);
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
queries_1.push(item.query + ";");
|
|
359
|
+
}
|
|
360
|
+
if (item.params && item.params.length > 0) {
|
|
361
|
+
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
362
|
+
var p = _a[_i];
|
|
363
|
+
params_1.push(p);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
connection.execute(queries_1.join(""), toArray(params_1), function (er2, results) {
|
|
368
|
+
if (er2) {
|
|
169
369
|
connection.rollback(function () {
|
|
170
|
-
|
|
370
|
+
buildError(er2);
|
|
371
|
+
return reject(er2);
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
connection.commit(function (er3) {
|
|
376
|
+
if (er3) {
|
|
377
|
+
connection.rollback(function () {
|
|
378
|
+
return reject(er3);
|
|
379
|
+
});
|
|
380
|
+
}
|
|
171
381
|
});
|
|
382
|
+
return resolve(results.affectedRows);
|
|
172
383
|
}
|
|
173
384
|
});
|
|
174
|
-
var c = 0;
|
|
175
|
-
c += results0.affectedRows + results.reduce(function (prev, item) { return prev + item.affectedRows; }, 0);
|
|
176
|
-
return resolve(c);
|
|
177
385
|
}
|
|
178
386
|
});
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
});
|
|
387
|
+
});
|
|
388
|
+
})];
|
|
182
389
|
}
|
|
183
|
-
|
|
184
|
-
|
|
390
|
+
return [3, 3];
|
|
391
|
+
case 1: return [4, getConnection(pool)];
|
|
392
|
+
case 2:
|
|
393
|
+
connection = _a.sent();
|
|
394
|
+
return [2, executeBatchConnectionTx(connection, statements, firstSuccess)];
|
|
395
|
+
case 3: return [2];
|
|
396
|
+
}
|
|
185
397
|
});
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
exports.executeBatch = executeBatch;
|
|
401
|
+
function executeBatchConnectionTx(connection, statements, firstSuccess) {
|
|
402
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
403
|
+
var count_1, l, j, item, c, err_1, count_2, l, j, item, c, err_2;
|
|
404
|
+
return __generator(this, function (_a) {
|
|
405
|
+
switch (_a.label) {
|
|
406
|
+
case 0:
|
|
407
|
+
if (!statements || statements.length === 0) {
|
|
408
|
+
return [2, Promise.resolve(0)];
|
|
409
|
+
}
|
|
410
|
+
else if (statements.length === 1) {
|
|
411
|
+
return [2, execute(connection, statements[0].query, statements[0].params)];
|
|
412
|
+
}
|
|
413
|
+
if (!resource.multipleStatements) return [3, 1];
|
|
414
|
+
if (firstSuccess) {
|
|
415
|
+
return [2, new Promise(function (resolve, reject) {
|
|
416
|
+
connection.beginTransaction(function (er1) {
|
|
417
|
+
if (er1) {
|
|
418
|
+
connection.rollback(function () {
|
|
419
|
+
return reject(er1);
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
else {
|
|
423
|
+
connection.execute(statements[0].query, toArray(statements[0].params), function (er2a, results0) {
|
|
424
|
+
if (er2a) {
|
|
425
|
+
connection.rollback(function () {
|
|
426
|
+
return reject(er2a);
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
if (results0 && results0.affectedRows === 0) {
|
|
431
|
+
connection.commit(function (er3) {
|
|
432
|
+
if (er3) {
|
|
433
|
+
connection.rollback(function () {
|
|
434
|
+
return reject(er3);
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
return 0;
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
var queries = [];
|
|
442
|
+
var params = [];
|
|
443
|
+
var l = statements.length;
|
|
444
|
+
for (var j = 1; j < l; j++) {
|
|
445
|
+
var item = statements[j];
|
|
446
|
+
if (item.query.endsWith(";")) {
|
|
447
|
+
queries.push(item.query);
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
queries.push(item.query + ";");
|
|
451
|
+
}
|
|
452
|
+
if (item.params && item.params.length > 0) {
|
|
453
|
+
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
454
|
+
var p = _a[_i];
|
|
455
|
+
params.push(p);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
connection.execute(queries.join(""), toArray(params), function (er2, results) {
|
|
460
|
+
if (er2) {
|
|
461
|
+
connection.rollback(function () {
|
|
462
|
+
return reject(er2);
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
connection.commit(function (er3) {
|
|
467
|
+
if (er3) {
|
|
468
|
+
connection.rollback(function () {
|
|
469
|
+
return reject(er3);
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
});
|
|
473
|
+
var c = 0;
|
|
474
|
+
c += results0.affectedRows + results.affectedRows;
|
|
475
|
+
return resolve(c);
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
})];
|
|
198
484
|
}
|
|
199
485
|
else {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
486
|
+
return [2, new Promise(function (resolve, reject) {
|
|
487
|
+
connection.beginTransaction(function (er1) {
|
|
488
|
+
if (er1) {
|
|
489
|
+
connection.rollback(function () {
|
|
490
|
+
return reject(er1);
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
var queries_2 = [];
|
|
495
|
+
var params_2 = [];
|
|
496
|
+
statements.forEach(function (item) {
|
|
497
|
+
if (item.query.endsWith(";")) {
|
|
498
|
+
queries_2.push(item.query);
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
queries_2.push(item.query + ";");
|
|
502
|
+
}
|
|
503
|
+
if (item.params && item.params.length > 0) {
|
|
504
|
+
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
505
|
+
var p = _a[_i];
|
|
506
|
+
params_2.push(p);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
});
|
|
510
|
+
connection.execute(queries_2.join(""), toArray(params_2), function (er2, results) {
|
|
511
|
+
if (er2) {
|
|
512
|
+
connection.rollback(function () {
|
|
513
|
+
buildError(er2);
|
|
514
|
+
return reject(er2);
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
connection.commit(function (er3) {
|
|
519
|
+
if (er3) {
|
|
520
|
+
connection.rollback(function () {
|
|
521
|
+
return reject(er3);
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
return resolve(results.affectedRows);
|
|
526
|
+
}
|
|
527
|
+
});
|
|
528
|
+
}
|
|
214
529
|
});
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
530
|
+
})];
|
|
531
|
+
}
|
|
532
|
+
return [3, 18];
|
|
533
|
+
case 1:
|
|
534
|
+
if (!firstSuccess) return [3, 11];
|
|
535
|
+
_a.label = 2;
|
|
536
|
+
case 2:
|
|
537
|
+
_a.trys.push([2, 9, , 10]);
|
|
538
|
+
return [4, beginTransaction(connection, true)];
|
|
539
|
+
case 3:
|
|
540
|
+
_a.sent();
|
|
541
|
+
return [4, execute(connection, statements[0].query, toArray(statements[0].params))];
|
|
542
|
+
case 4:
|
|
543
|
+
count_1 = _a.sent();
|
|
544
|
+
if (count_1 === 0) {
|
|
545
|
+
commit(connection, true);
|
|
546
|
+
return [2, 0];
|
|
547
|
+
}
|
|
548
|
+
l = statements.length;
|
|
549
|
+
j = 1;
|
|
550
|
+
_a.label = 5;
|
|
551
|
+
case 5:
|
|
552
|
+
if (!(j < l)) return [3, 8];
|
|
553
|
+
item = statements[j];
|
|
554
|
+
return [4, execute(connection, item.query, toArray(item.params))];
|
|
555
|
+
case 6:
|
|
556
|
+
c = _a.sent();
|
|
557
|
+
count_1 = count_1 + c;
|
|
558
|
+
_a.label = 7;
|
|
559
|
+
case 7:
|
|
560
|
+
j++;
|
|
561
|
+
return [3, 5];
|
|
562
|
+
case 8:
|
|
563
|
+
commit(connection, true);
|
|
564
|
+
return [2, count_1];
|
|
565
|
+
case 9:
|
|
566
|
+
err_1 = _a.sent();
|
|
567
|
+
rollback(connection);
|
|
568
|
+
throw err_1;
|
|
569
|
+
case 10: return [3, 18];
|
|
570
|
+
case 11:
|
|
571
|
+
_a.trys.push([11, 17, , 18]);
|
|
572
|
+
return [4, beginTransaction(connection, true)];
|
|
573
|
+
case 12:
|
|
574
|
+
_a.sent();
|
|
575
|
+
count_2 = 0;
|
|
576
|
+
l = statements.length;
|
|
577
|
+
j = 0;
|
|
578
|
+
_a.label = 13;
|
|
579
|
+
case 13:
|
|
580
|
+
if (!(j < l)) return [3, 16];
|
|
581
|
+
item = statements[j];
|
|
582
|
+
return [4, execute(connection, item.query, toArray(item.params))];
|
|
583
|
+
case 14:
|
|
584
|
+
c = _a.sent();
|
|
585
|
+
count_2 = count_2 + c;
|
|
586
|
+
_a.label = 15;
|
|
587
|
+
case 15:
|
|
588
|
+
j++;
|
|
589
|
+
return [3, 13];
|
|
590
|
+
case 16:
|
|
591
|
+
commit(connection, true);
|
|
592
|
+
return [2, count_2];
|
|
593
|
+
case 17:
|
|
594
|
+
err_2 = _a.sent();
|
|
595
|
+
rollback(connection);
|
|
596
|
+
throw err_2;
|
|
597
|
+
case 18: return [2];
|
|
598
|
+
}
|
|
599
|
+
});
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
exports.executeBatchConnectionTx = executeBatchConnectionTx;
|
|
603
|
+
function executeBatchConnection(connection, statements, firstSuccess) {
|
|
604
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
605
|
+
var count_3, l, j, item, c, er1_1, er0_1, count_4, l, j, item, c, err_3;
|
|
606
|
+
return __generator(this, function (_a) {
|
|
607
|
+
switch (_a.label) {
|
|
608
|
+
case 0:
|
|
609
|
+
if (!statements || statements.length === 0) {
|
|
610
|
+
return [2, Promise.resolve(0)];
|
|
611
|
+
}
|
|
612
|
+
else if (statements.length === 1) {
|
|
613
|
+
return [2, execute(connection, statements[0].query, statements[0].params)];
|
|
614
|
+
}
|
|
615
|
+
if (!resource.multipleStatements) return [3, 1];
|
|
616
|
+
if (firstSuccess) {
|
|
617
|
+
return [2, new Promise(function (resolve, reject) {
|
|
618
|
+
connection.execute(statements[0].query, toArray(statements[0].params), function (er2a, results0) {
|
|
619
|
+
if (er2a) {
|
|
620
|
+
return reject(er2a);
|
|
621
|
+
}
|
|
622
|
+
else {
|
|
623
|
+
if (results0 && results0.affectedRows === 0) {
|
|
624
|
+
return 0;
|
|
625
|
+
}
|
|
626
|
+
else {
|
|
627
|
+
var queries = [];
|
|
628
|
+
var params = [];
|
|
629
|
+
var l = statements.length;
|
|
630
|
+
for (var j = 1; j < l; j++) {
|
|
631
|
+
var item = statements[j];
|
|
632
|
+
if (item.query.endsWith(";")) {
|
|
633
|
+
queries.push(item.query);
|
|
634
|
+
}
|
|
635
|
+
else {
|
|
636
|
+
queries.push(item.query + ";");
|
|
637
|
+
}
|
|
638
|
+
if (item.params && item.params.length > 0) {
|
|
639
|
+
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
640
|
+
var p = _a[_i];
|
|
641
|
+
params.push(p);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
connection.execute(queries.join(""), toArray(params), function (er2, results) {
|
|
646
|
+
if (er2) {
|
|
647
|
+
return reject(er2);
|
|
648
|
+
}
|
|
649
|
+
else {
|
|
650
|
+
var c = 0;
|
|
651
|
+
c += results0.affectedRows + results.affectedRows;
|
|
652
|
+
return resolve(c);
|
|
653
|
+
}
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
});
|
|
658
|
+
})];
|
|
659
|
+
}
|
|
660
|
+
else {
|
|
661
|
+
return [2, new Promise(function (resolve, reject) {
|
|
662
|
+
var queries = [];
|
|
663
|
+
var params = [];
|
|
664
|
+
statements.forEach(function (item) {
|
|
665
|
+
if (item.query.endsWith(";")) {
|
|
666
|
+
queries.push(item.query);
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
queries.push(item.query + ";");
|
|
670
|
+
}
|
|
671
|
+
if (item.params && item.params.length > 0) {
|
|
672
|
+
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
673
|
+
var p = _a[_i];
|
|
674
|
+
params.push(p);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
});
|
|
678
|
+
connection.execute(queries.join(""), toArray(params), function (er2, results) {
|
|
679
|
+
if (er2) {
|
|
219
680
|
connection.rollback(function () {
|
|
220
|
-
|
|
681
|
+
buildError(er2);
|
|
682
|
+
return reject(er2);
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
connection.commit(function (er3) {
|
|
687
|
+
if (er3) {
|
|
688
|
+
connection.rollback(function () {
|
|
689
|
+
return reject(er3);
|
|
690
|
+
});
|
|
691
|
+
}
|
|
221
692
|
});
|
|
693
|
+
return resolve(results.affectedRows);
|
|
222
694
|
}
|
|
223
695
|
});
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
});
|
|
696
|
+
})];
|
|
227
697
|
}
|
|
228
|
-
|
|
229
|
-
|
|
698
|
+
return [3, 20];
|
|
699
|
+
case 1:
|
|
700
|
+
if (!firstSuccess) return [3, 13];
|
|
701
|
+
_a.label = 2;
|
|
702
|
+
case 2:
|
|
703
|
+
_a.trys.push([2, 11, , 12]);
|
|
704
|
+
return [4, execute(connection, statements[0].query, toArray(statements[0].params))];
|
|
705
|
+
case 3:
|
|
706
|
+
count_3 = _a.sent();
|
|
707
|
+
if (count_3 === 0) {
|
|
708
|
+
return [2, 0];
|
|
709
|
+
}
|
|
710
|
+
l = statements.length;
|
|
711
|
+
_a.label = 4;
|
|
712
|
+
case 4:
|
|
713
|
+
_a.trys.push([4, 9, , 10]);
|
|
714
|
+
j = 1;
|
|
715
|
+
_a.label = 5;
|
|
716
|
+
case 5:
|
|
717
|
+
if (!(j < l)) return [3, 8];
|
|
718
|
+
item = statements[j];
|
|
719
|
+
return [4, execute(connection, item.query, toArray(item.params))];
|
|
720
|
+
case 6:
|
|
721
|
+
c = _a.sent();
|
|
722
|
+
count_3 = count_3 + c;
|
|
723
|
+
_a.label = 7;
|
|
724
|
+
case 7:
|
|
725
|
+
j++;
|
|
726
|
+
return [3, 5];
|
|
727
|
+
case 8: return [2, count_3];
|
|
728
|
+
case 9:
|
|
729
|
+
er1_1 = _a.sent();
|
|
730
|
+
throw er1_1;
|
|
731
|
+
case 10: return [3, 12];
|
|
732
|
+
case 11:
|
|
733
|
+
er0_1 = _a.sent();
|
|
734
|
+
throw er0_1;
|
|
735
|
+
case 12: return [3, 20];
|
|
736
|
+
case 13:
|
|
737
|
+
count_4 = 0;
|
|
738
|
+
l = statements.length;
|
|
739
|
+
_a.label = 14;
|
|
740
|
+
case 14:
|
|
741
|
+
_a.trys.push([14, 19, , 20]);
|
|
742
|
+
j = 0;
|
|
743
|
+
_a.label = 15;
|
|
744
|
+
case 15:
|
|
745
|
+
if (!(j < l)) return [3, 18];
|
|
746
|
+
item = statements[j];
|
|
747
|
+
return [4, execute(connection, item.query, toArray(item.params))];
|
|
748
|
+
case 16:
|
|
749
|
+
c = _a.sent();
|
|
750
|
+
count_4 = count_4 + c;
|
|
751
|
+
_a.label = 17;
|
|
752
|
+
case 17:
|
|
753
|
+
j++;
|
|
754
|
+
return [3, 15];
|
|
755
|
+
case 18: return [2, count_4];
|
|
756
|
+
case 19:
|
|
757
|
+
err_3 = _a.sent();
|
|
758
|
+
throw err_3;
|
|
759
|
+
case 20: return [2];
|
|
760
|
+
}
|
|
230
761
|
});
|
|
231
|
-
}
|
|
762
|
+
});
|
|
232
763
|
}
|
|
233
|
-
exports.
|
|
764
|
+
exports.executeBatchConnection = executeBatchConnection;
|
|
234
765
|
function buildError(err) {
|
|
235
|
-
if (err.errno === 1062 && err.code ===
|
|
236
|
-
err.error =
|
|
766
|
+
if (err.errno === 1062 && err.code === "ER_DUP_ENTRY") {
|
|
767
|
+
err.error = "duplicate";
|
|
237
768
|
}
|
|
238
769
|
return err;
|
|
239
770
|
}
|
|
240
|
-
function
|
|
771
|
+
function execute(pool, sql, args) {
|
|
241
772
|
return __awaiter(this, void 0, void 0, function () {
|
|
242
773
|
var p;
|
|
243
774
|
return __generator(this, function (_a) {
|
|
244
775
|
p = toArray(args);
|
|
245
776
|
return [2, new Promise(function (resolve, reject) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
777
|
+
return pool.execute(sql, p, function (err, res) {
|
|
778
|
+
if (err) {
|
|
779
|
+
buildError(err);
|
|
780
|
+
return reject(err);
|
|
781
|
+
}
|
|
782
|
+
else {
|
|
783
|
+
return resolve(res.affectedRows);
|
|
784
|
+
}
|
|
785
|
+
});
|
|
786
|
+
})];
|
|
256
787
|
});
|
|
257
788
|
});
|
|
258
789
|
}
|
|
259
|
-
exports.
|
|
790
|
+
exports.execute = execute;
|
|
260
791
|
function query(pool, sql, args, m, bools) {
|
|
261
792
|
return __awaiter(this, void 0, void 0, function () {
|
|
262
793
|
var p;
|
|
263
794
|
return __generator(this, function (_a) {
|
|
264
795
|
p = toArray(args);
|
|
265
796
|
return [2, new Promise(function (resolve, reject) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
if (results.length > 0) {
|
|
272
|
-
var arrayResult = results.map(function (item) {
|
|
273
|
-
if (Array.isArray(item)) {
|
|
274
|
-
return formatData(fields, item);
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
return item;
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
return resolve(handleResults(arrayResult, m, bools));
|
|
797
|
+
return pool.query(sql, p, function (err, results, fields) {
|
|
798
|
+
if (err) {
|
|
799
|
+
return reject(err);
|
|
281
800
|
}
|
|
282
801
|
else {
|
|
283
|
-
|
|
802
|
+
if (results.length > 0) {
|
|
803
|
+
var arrayResult = results.map(function (item) {
|
|
804
|
+
if (Array.isArray(item)) {
|
|
805
|
+
return formatData(fields, item);
|
|
806
|
+
}
|
|
807
|
+
else {
|
|
808
|
+
return item;
|
|
809
|
+
}
|
|
810
|
+
});
|
|
811
|
+
return resolve(handleResults(arrayResult, m, bools));
|
|
812
|
+
}
|
|
813
|
+
else {
|
|
814
|
+
resolve([]);
|
|
815
|
+
}
|
|
284
816
|
}
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
})];
|
|
817
|
+
});
|
|
818
|
+
})];
|
|
288
819
|
});
|
|
289
820
|
});
|
|
290
821
|
}
|
|
291
822
|
exports.query = query;
|
|
292
823
|
function queryOne(pool, sql, args, m, bools) {
|
|
293
824
|
return query(pool, sql, args, m, bools).then(function (r) {
|
|
294
|
-
return
|
|
825
|
+
return r && r.length > 0 ? r[0] : null;
|
|
295
826
|
});
|
|
296
827
|
}
|
|
297
828
|
exports.queryOne = queryOne;
|
|
298
|
-
function
|
|
829
|
+
function executeScalar(pool, sql, args) {
|
|
299
830
|
return queryOne(pool, sql, args).then(function (r) {
|
|
300
831
|
if (!r) {
|
|
301
832
|
return null;
|
|
@@ -306,31 +837,31 @@ function execScalar(pool, sql, args) {
|
|
|
306
837
|
}
|
|
307
838
|
});
|
|
308
839
|
}
|
|
309
|
-
exports.
|
|
840
|
+
exports.executeScalar = executeScalar;
|
|
310
841
|
function count(pool, sql, args) {
|
|
311
|
-
return
|
|
842
|
+
return executeScalar(pool, sql, args);
|
|
312
843
|
}
|
|
313
844
|
exports.count = count;
|
|
314
845
|
function save(pool, obj, table, attrs, ver, buildParam, i) {
|
|
315
846
|
var s = build_1.buildToSave(obj, table, attrs, ver, buildParam);
|
|
316
|
-
if (!s) {
|
|
847
|
+
if (!s.query) {
|
|
317
848
|
return Promise.resolve(-1);
|
|
318
849
|
}
|
|
319
|
-
if (typeof pool ===
|
|
850
|
+
if (typeof pool === "function") {
|
|
320
851
|
return pool(s.query, s.params);
|
|
321
852
|
}
|
|
322
853
|
else {
|
|
323
|
-
return
|
|
854
|
+
return execute(pool, s.query, s.params);
|
|
324
855
|
}
|
|
325
856
|
}
|
|
326
857
|
exports.save = save;
|
|
327
858
|
function saveBatch(pool, objs, table, attrs, ver, buildParam) {
|
|
328
859
|
var s = build_1.buildToSaveBatch(objs, table, attrs, ver, buildParam);
|
|
329
|
-
if (typeof pool ===
|
|
860
|
+
if (typeof pool === "function") {
|
|
330
861
|
return pool(s);
|
|
331
862
|
}
|
|
332
863
|
else {
|
|
333
|
-
return
|
|
864
|
+
return executeBatch(pool, s);
|
|
334
865
|
}
|
|
335
866
|
}
|
|
336
867
|
exports.saveBatch = saveBatch;
|
|
@@ -345,7 +876,7 @@ function toArray(arr) {
|
|
|
345
876
|
p.push(null);
|
|
346
877
|
}
|
|
347
878
|
else {
|
|
348
|
-
if (typeof arr[i] ===
|
|
879
|
+
if (typeof arr[i] === "object") {
|
|
349
880
|
if (arr[i] instanceof Date) {
|
|
350
881
|
p.push(arr[i]);
|
|
351
882
|
}
|
|
@@ -398,13 +929,13 @@ function handleBool(objs, bools) {
|
|
|
398
929
|
var field = bools_1[_a];
|
|
399
930
|
if (field.name) {
|
|
400
931
|
var v = o[field.name];
|
|
401
|
-
if (typeof v !==
|
|
932
|
+
if (typeof v !== "boolean" && v != null && v !== undefined) {
|
|
402
933
|
var b = field.true;
|
|
403
934
|
if (b == null || b === undefined) {
|
|
404
|
-
o[field.name] =
|
|
935
|
+
o[field.name] = "1" == v || "T" == v || "Y" == v || "true" == v || "on" == v;
|
|
405
936
|
}
|
|
406
937
|
else {
|
|
407
|
-
o[field.name] =
|
|
938
|
+
o[field.name] = v == b ? true : false;
|
|
408
939
|
}
|
|
409
940
|
}
|
|
410
941
|
}
|
|
@@ -500,10 +1031,10 @@ exports.getFields = getFields;
|
|
|
500
1031
|
function buildFields(fields, all) {
|
|
501
1032
|
var s = getFields(fields, all);
|
|
502
1033
|
if (!s || s.length === 0) {
|
|
503
|
-
return
|
|
1034
|
+
return "*";
|
|
504
1035
|
}
|
|
505
1036
|
else {
|
|
506
|
-
return s.join(
|
|
1037
|
+
return s.join(",");
|
|
507
1038
|
}
|
|
508
1039
|
}
|
|
509
1040
|
exports.buildFields = buildFields;
|
|
@@ -515,7 +1046,7 @@ function getMapField(name, mp) {
|
|
|
515
1046
|
if (!x) {
|
|
516
1047
|
return name;
|
|
517
1048
|
}
|
|
518
|
-
if (typeof x ===
|
|
1049
|
+
if (typeof x === "string") {
|
|
519
1050
|
return x;
|
|
520
1051
|
}
|
|
521
1052
|
return name;
|
|
@@ -536,7 +1067,7 @@ var StringService = (function () {
|
|
|
536
1067
|
StringService.prototype.load = function (key, max) {
|
|
537
1068
|
var _this = this;
|
|
538
1069
|
var s = "select " + this.column + " from " + this.table + " where " + this.column + " like ? order by " + this.column + " limit " + max;
|
|
539
|
-
return query(this.pool, s, [
|
|
1070
|
+
return query(this.pool, s, ["" + key + "%"]).then(function (arr) {
|
|
540
1071
|
return arr.map(function (i) { return i[_this.column]; });
|
|
541
1072
|
});
|
|
542
1073
|
};
|
|
@@ -546,10 +1077,10 @@ var StringService = (function () {
|
|
|
546
1077
|
}
|
|
547
1078
|
var arr = [];
|
|
548
1079
|
for (var i = 1; i <= values.length; i++) {
|
|
549
|
-
arr.push(
|
|
1080
|
+
arr.push("(?)");
|
|
550
1081
|
}
|
|
551
|
-
var s = "insert ignore into " + this.table + "(" + this.column + ")values" + arr.join(
|
|
552
|
-
return
|
|
1082
|
+
var s = "insert ignore into " + this.table + "(" + this.column + ")values" + arr.join(",");
|
|
1083
|
+
return execute(this.pool, s, values);
|
|
553
1084
|
};
|
|
554
1085
|
return StringService;
|
|
555
1086
|
}());
|
|
@@ -573,8 +1104,8 @@ var MySQLWriter = (function () {
|
|
|
573
1104
|
this.attributes = attributes;
|
|
574
1105
|
this.oneIfSuccess = oneIfSuccess;
|
|
575
1106
|
this.write = this.write.bind(this);
|
|
576
|
-
if (typeof pool ===
|
|
577
|
-
this.
|
|
1107
|
+
if (typeof pool === "function") {
|
|
1108
|
+
this.execute = pool;
|
|
578
1109
|
}
|
|
579
1110
|
else {
|
|
580
1111
|
this.pool = pool;
|
|
@@ -596,20 +1127,20 @@ var MySQLWriter = (function () {
|
|
|
596
1127
|
}
|
|
597
1128
|
var stmt = build_1.buildToSave(obj2, this.table, this.attributes, this.version, this.param);
|
|
598
1129
|
if (stmt) {
|
|
599
|
-
if (this.
|
|
1130
|
+
if (this.execute) {
|
|
600
1131
|
if (this.oneIfSuccess) {
|
|
601
|
-
return this.
|
|
1132
|
+
return this.execute(stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
|
|
602
1133
|
}
|
|
603
1134
|
else {
|
|
604
|
-
return this.
|
|
1135
|
+
return this.execute(stmt.query, stmt.params);
|
|
605
1136
|
}
|
|
606
1137
|
}
|
|
607
1138
|
else {
|
|
608
1139
|
if (this.oneIfSuccess) {
|
|
609
|
-
return
|
|
1140
|
+
return execute(this.pool, stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
|
|
610
1141
|
}
|
|
611
1142
|
else {
|
|
612
|
-
return
|
|
1143
|
+
return execute(this.pool, stmt.query, stmt.params);
|
|
613
1144
|
}
|
|
614
1145
|
}
|
|
615
1146
|
}
|
|
@@ -628,8 +1159,8 @@ var MySQLStreamWriter = (function () {
|
|
|
628
1159
|
this.size = 0;
|
|
629
1160
|
this.write = this.write.bind(this);
|
|
630
1161
|
this.flush = this.flush.bind(this);
|
|
631
|
-
if (typeof pool ===
|
|
632
|
-
this.
|
|
1162
|
+
if (typeof pool === "function") {
|
|
1163
|
+
this.executeBatch = pool;
|
|
633
1164
|
}
|
|
634
1165
|
else {
|
|
635
1166
|
this.pool = pool;
|
|
@@ -672,14 +1203,14 @@ var MySQLStreamWriter = (function () {
|
|
|
672
1203
|
var total_1 = this.list.length;
|
|
673
1204
|
var stmt = build_1.buildToSaveBatch(this.list, this.table, this.attributes, this.version, this.param);
|
|
674
1205
|
if (stmt) {
|
|
675
|
-
if (this.
|
|
676
|
-
return this.
|
|
1206
|
+
if (this.executeBatch) {
|
|
1207
|
+
return this.executeBatch(stmt).then(function (r) {
|
|
677
1208
|
_this.list = [];
|
|
678
1209
|
return total_1;
|
|
679
1210
|
});
|
|
680
1211
|
}
|
|
681
1212
|
else {
|
|
682
|
-
return
|
|
1213
|
+
return executeBatch(this.pool, stmt).then(function (r) {
|
|
683
1214
|
_this.list = [];
|
|
684
1215
|
return total_1;
|
|
685
1216
|
});
|
|
@@ -699,7 +1230,7 @@ var MySQLBatchWriter = (function () {
|
|
|
699
1230
|
this.attributes = attributes;
|
|
700
1231
|
this.oneIfSuccess = oneIfSuccess;
|
|
701
1232
|
this.write = this.write.bind(this);
|
|
702
|
-
if (typeof pool ===
|
|
1233
|
+
if (typeof pool === "function") {
|
|
703
1234
|
this.execute = pool;
|
|
704
1235
|
}
|
|
705
1236
|
else {
|
|
@@ -737,10 +1268,10 @@ var MySQLBatchWriter = (function () {
|
|
|
737
1268
|
}
|
|
738
1269
|
else {
|
|
739
1270
|
if (this.oneIfSuccess) {
|
|
740
|
-
return
|
|
1271
|
+
return executeBatch(this.pool, stmts).then(function (ct) { return stmts.length; });
|
|
741
1272
|
}
|
|
742
1273
|
else {
|
|
743
|
-
return
|
|
1274
|
+
return executeBatch(this.pool, stmts);
|
|
744
1275
|
}
|
|
745
1276
|
}
|
|
746
1277
|
}
|
|
@@ -754,8 +1285,8 @@ exports.MySQLBatchWriter = MySQLBatchWriter;
|
|
|
754
1285
|
var MySQLChecker = (function () {
|
|
755
1286
|
function MySQLChecker(pool, service, timeout) {
|
|
756
1287
|
this.pool = pool;
|
|
757
|
-
this.timeout =
|
|
758
|
-
this.service =
|
|
1288
|
+
this.timeout = timeout ? timeout : 4200;
|
|
1289
|
+
this.service = service ? service : "mysql";
|
|
759
1290
|
this.check = this.check.bind(this);
|
|
760
1291
|
this.name = this.name.bind(this);
|
|
761
1292
|
this.build = this.build.bind(this);
|
|
@@ -767,7 +1298,7 @@ var MySQLChecker = (function () {
|
|
|
767
1298
|
return __generator(this, function (_a) {
|
|
768
1299
|
obj = {};
|
|
769
1300
|
promise = new Promise(function (resolve, reject) {
|
|
770
|
-
_this.pool.query(
|
|
1301
|
+
_this.pool.query("select current_time", function (err, result) {
|
|
771
1302
|
if (err) {
|
|
772
1303
|
return reject(err);
|
|
773
1304
|
}
|
|
@@ -794,7 +1325,7 @@ var MySQLChecker = (function () {
|
|
|
794
1325
|
if (!data) {
|
|
795
1326
|
data = {};
|
|
796
1327
|
}
|
|
797
|
-
data[
|
|
1328
|
+
data["error"] = err;
|
|
798
1329
|
}
|
|
799
1330
|
return data;
|
|
800
1331
|
};
|
|
@@ -808,7 +1339,7 @@ function promiseTimeOut(timeoutInMilliseconds, promise) {
|
|
|
808
1339
|
setTimeout(function () {
|
|
809
1340
|
reject("Timed out in: " + timeoutInMilliseconds + " milliseconds!");
|
|
810
1341
|
}, timeoutInMilliseconds);
|
|
811
|
-
})
|
|
1342
|
+
}),
|
|
812
1343
|
]);
|
|
813
1344
|
}
|
|
814
1345
|
var Exporter = (function () {
|
|
@@ -836,56 +1367,52 @@ var Exporter = (function () {
|
|
|
836
1367
|
case 1:
|
|
837
1368
|
stmt = _a.sent();
|
|
838
1369
|
reader = this.connection.query(stmt.query, stmt.params);
|
|
839
|
-
reader.on(
|
|
1370
|
+
reader.on("error", function (err) { return (er = err); });
|
|
840
1371
|
if (this.map) {
|
|
841
|
-
reader.on(
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
return [2];
|
|
852
|
-
});
|
|
1372
|
+
reader.on("result", function (row) { return __awaiter(_this, void 0, void 0, function () {
|
|
1373
|
+
var obj, data;
|
|
1374
|
+
return __generator(this, function (_a) {
|
|
1375
|
+
++idx;
|
|
1376
|
+
this.connection.pause();
|
|
1377
|
+
obj = mapOne(row, this.map);
|
|
1378
|
+
data = this.format(obj);
|
|
1379
|
+
this.write(data);
|
|
1380
|
+
this.connection.resume();
|
|
1381
|
+
return [2];
|
|
853
1382
|
});
|
|
854
|
-
});
|
|
1383
|
+
}); });
|
|
855
1384
|
}
|
|
856
1385
|
else {
|
|
857
|
-
reader.on(
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
return [2];
|
|
867
|
-
});
|
|
1386
|
+
reader.on("result", function (row) { return __awaiter(_this, void 0, void 0, function () {
|
|
1387
|
+
var data;
|
|
1388
|
+
return __generator(this, function (_a) {
|
|
1389
|
+
++idx;
|
|
1390
|
+
this.connection.pause();
|
|
1391
|
+
data = this.format(row);
|
|
1392
|
+
this.write(data);
|
|
1393
|
+
this.connection.resume();
|
|
1394
|
+
return [2];
|
|
868
1395
|
});
|
|
869
|
-
});
|
|
1396
|
+
}); });
|
|
870
1397
|
}
|
|
871
1398
|
return [2, new Promise(function (resolve, reject) {
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
1399
|
+
reader.on("end", function () {
|
|
1400
|
+
_this.end();
|
|
1401
|
+
if (er) {
|
|
1402
|
+
reject(er);
|
|
1403
|
+
}
|
|
1404
|
+
else {
|
|
1405
|
+
_this.connection.end(function (err) {
|
|
1406
|
+
if (err) {
|
|
1407
|
+
reject(err);
|
|
1408
|
+
}
|
|
1409
|
+
else {
|
|
1410
|
+
resolve(idx);
|
|
1411
|
+
}
|
|
1412
|
+
});
|
|
1413
|
+
}
|
|
1414
|
+
});
|
|
1415
|
+
})];
|
|
889
1416
|
}
|
|
890
1417
|
});
|
|
891
1418
|
});
|
|
@@ -917,61 +1444,57 @@ var ExportService = (function () {
|
|
|
917
1444
|
case 1:
|
|
918
1445
|
stmt = _a.sent();
|
|
919
1446
|
reader = this.connection.query(stmt.query, stmt.params);
|
|
920
|
-
reader.on(
|
|
1447
|
+
reader.on("error", function (err) { return (er = err); });
|
|
921
1448
|
if (this.map) {
|
|
922
|
-
reader.on(
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
return [2];
|
|
933
|
-
});
|
|
1449
|
+
reader.on("result", function (row) { return __awaiter(_this, void 0, void 0, function () {
|
|
1450
|
+
var obj, data;
|
|
1451
|
+
return __generator(this, function (_a) {
|
|
1452
|
+
++idx;
|
|
1453
|
+
this.connection.pause();
|
|
1454
|
+
obj = mapOne(row, this.map);
|
|
1455
|
+
data = this.formatter.format(obj);
|
|
1456
|
+
this.writer.write(data);
|
|
1457
|
+
this.connection.resume();
|
|
1458
|
+
return [2];
|
|
934
1459
|
});
|
|
935
|
-
});
|
|
1460
|
+
}); });
|
|
936
1461
|
}
|
|
937
1462
|
else {
|
|
938
|
-
reader.on(
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
return [2];
|
|
948
|
-
});
|
|
1463
|
+
reader.on("result", function (row) { return __awaiter(_this, void 0, void 0, function () {
|
|
1464
|
+
var data;
|
|
1465
|
+
return __generator(this, function (_a) {
|
|
1466
|
+
++idx;
|
|
1467
|
+
this.connection.pause();
|
|
1468
|
+
data = this.formatter.format(row);
|
|
1469
|
+
this.writer.write(data);
|
|
1470
|
+
this.connection.resume();
|
|
1471
|
+
return [2];
|
|
949
1472
|
});
|
|
950
|
-
});
|
|
1473
|
+
}); });
|
|
951
1474
|
}
|
|
952
1475
|
return [2, new Promise(function (resolve, reject) {
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
1476
|
+
reader.on("end", function () {
|
|
1477
|
+
if (_this.writer.end) {
|
|
1478
|
+
_this.writer.end();
|
|
1479
|
+
}
|
|
1480
|
+
else if (_this.writer.flush) {
|
|
1481
|
+
_this.writer.flush();
|
|
1482
|
+
}
|
|
1483
|
+
if (er) {
|
|
1484
|
+
reject(er);
|
|
1485
|
+
}
|
|
1486
|
+
else {
|
|
1487
|
+
_this.connection.end(function (err) {
|
|
1488
|
+
if (err) {
|
|
1489
|
+
reject(err);
|
|
1490
|
+
}
|
|
1491
|
+
else {
|
|
1492
|
+
resolve(idx);
|
|
1493
|
+
}
|
|
1494
|
+
});
|
|
1495
|
+
}
|
|
1496
|
+
});
|
|
1497
|
+
})];
|
|
975
1498
|
}
|
|
976
1499
|
});
|
|
977
1500
|
});
|
|
@@ -996,7 +1519,7 @@ function mapOne(results, m) {
|
|
|
996
1519
|
if (!k0) {
|
|
997
1520
|
k0 = key;
|
|
998
1521
|
}
|
|
999
|
-
obj2[k0] =
|
|
1522
|
+
obj2[k0] = obj[key];
|
|
1000
1523
|
}
|
|
1001
1524
|
return obj2;
|
|
1002
1525
|
}
|
|
@@ -1009,7 +1532,7 @@ function buildMap(attrs) {
|
|
|
1009
1532
|
var k = ks_2[_i];
|
|
1010
1533
|
var attr = attrs[k];
|
|
1011
1534
|
attr.name = k;
|
|
1012
|
-
var field =
|
|
1535
|
+
var field = attr.column ? attr.column : k;
|
|
1013
1536
|
var s = field.toLowerCase();
|
|
1014
1537
|
if (s !== k) {
|
|
1015
1538
|
mp[s] = k;
|
|
@@ -1029,9 +1552,9 @@ function select(table, attrs) {
|
|
|
1029
1552
|
var k = ks_3[_i];
|
|
1030
1553
|
var attr = attrs[k];
|
|
1031
1554
|
attr.name = k;
|
|
1032
|
-
var field =
|
|
1555
|
+
var field = attr.column ? attr.column : k;
|
|
1033
1556
|
cols.push(field);
|
|
1034
1557
|
}
|
|
1035
|
-
return "select " + cols.join(
|
|
1558
|
+
return "select " + cols.join(",") + " from " + table;
|
|
1036
1559
|
}
|
|
1037
1560
|
exports.select = select;
|