mysql2-core 0.2.4 → 0.3.1

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/index.js CHANGED
@@ -67,28 +67,101 @@ 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
127
  this.driver = "mysql";
74
128
  this.param = this.param.bind(this);
75
- this.exec = this.exec.bind(this);
76
- this.execBatch = this.execBatch.bind(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.execScalar = this.execScalar.bind(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
137
  return "?";
84
138
  };
85
- PoolManager.prototype.exec = function (sql, args, ctx) {
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
+ });
157
+ };
158
+ PoolManager.prototype.execute = function (sql, args, ctx) {
86
159
  var p = ctx ? ctx : this.pool;
87
- return exec(p, sql, args);
160
+ return execute(p, sql, args);
88
161
  };
89
- PoolManager.prototype.execBatch = function (statements, firstSuccess, ctx) {
162
+ PoolManager.prototype.executeBatch = function (statements, firstSuccess, ctx) {
90
163
  var p = ctx ? ctx : this.pool;
91
- return execBatch(p, statements, firstSuccess);
164
+ return executeBatch(p, statements, firstSuccess);
92
165
  };
93
166
  PoolManager.prototype.query = function (sql, args, m, bools, ctx) {
94
167
  var p = ctx ? ctx : this.pool;
@@ -98,9 +171,9 @@ var PoolManager = (function () {
98
171
  var p = ctx ? ctx : this.pool;
99
172
  return queryOne(p, sql, args, m, bools);
100
173
  };
101
- PoolManager.prototype.execScalar = function (sql, args, ctx) {
174
+ PoolManager.prototype.executeScalar = function (sql, args, ctx) {
102
175
  var p = ctx ? ctx : this.pool;
103
- return execScalar(p, sql, args);
176
+ return executeScalar(p, sql, args);
104
177
  };
105
178
  PoolManager.prototype.count = function (sql, args, ctx) {
106
179
  var p = ctx ? ctx : this.pool;
@@ -109,135 +182,593 @@ var PoolManager = (function () {
109
182
  return PoolManager;
110
183
  }());
111
184
  exports.PoolManager = PoolManager;
112
- function execBatch(pool, statements, firstSuccess) {
113
- if (!statements || statements.length === 0) {
114
- return Promise.resolve(0);
115
- }
116
- else if (statements.length === 1) {
117
- return exec(pool, statements[0].query, statements[0].params);
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
- if (firstSuccess) {
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
- pool.getConnection(function (er0, connection) {
122
- if (er0) {
123
- return reject(er0);
203
+ _this.connection.commit(function (er3) {
204
+ if (er3) {
205
+ return reject(er3);
124
206
  }
125
- connection.beginTransaction(function (er1) {
126
- if (er1) {
127
- connection.rollback(function () {
128
- return reject(er1);
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
- var query0 = "";
133
- var queries_1 = [];
134
- var l = statements.length;
135
- for (var j = 0; j < l; j++) {
136
- var item = statements[j];
137
- if (j === 0) {
138
- query0 = mysql2_1.format(item.query, toArray(item.params));
139
- }
140
- else {
141
- if (item.query.endsWith(";")) {
142
- queries_1.push(mysql2_1.format(item.query, toArray(item.params)));
143
- }
144
- else {
145
- queries_1.push(mysql2_1.format(item.query + ";", toArray(item.params)));
146
- }
147
- }
148
- }
149
- connection.execute(query0, function (er2a, results0) {
150
- if (er2a) {
151
- connection.rollback(function () {
152
- return reject(er2a);
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.query(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
- else {
156
- if (results0 && results0.affectedRows === 0) {
157
- return 0;
158
- }
159
- else {
160
- connection.execute(queries_1.join(""), function (er2, results) {
161
- if (er2) {
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(er2);
347
+ return reject(er1);
164
348
  });
165
349
  }
166
350
  else {
167
- connection.commit(function (er3) {
168
- if (er3) {
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.query(queries_1.join(""), toArray(params_1), function (er2, results) {
368
+ if (er2) {
169
369
  connection.rollback(function () {
170
- return reject(er3);
370
+ buildError(er2);
371
+ return reject(er2);
171
372
  });
172
373
  }
374
+ else {
375
+ connection.commit(function (er3) {
376
+ if (er3) {
377
+ connection.rollback(function () {
378
+ return reject(er3);
379
+ });
380
+ }
381
+ });
382
+ return resolve(results.affectedRows);
383
+ }
173
384
  });
174
- var c = 0;
175
- c += results0.affectedRows + results.affectedRows;
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
- else {
188
- return new Promise(function (resolve, reject) {
189
- pool.getConnection(function (er0, connection) {
190
- if (er0) {
191
- return reject(er0);
192
- }
193
- connection.beginTransaction(function (er1) {
194
- if (er1) {
195
- connection.rollback(function () {
196
- return reject(er1);
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.query(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
- var queries_2 = [];
201
- statements.forEach(function (item) {
202
- if (item.query.endsWith(";")) {
203
- queries_2.push(mysql2_1.format(item.query, toArray(item.params)));
204
- }
205
- else {
206
- queries_2.push(mysql2_1.format(item.query + ";", toArray(item.params)));
207
- }
208
- });
209
- connection.execute(queries_2.join(""), function (er2, results) {
210
- if (er2) {
211
- connection.rollback(function () {
212
- buildError(er2);
213
- return reject(er2);
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.query(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
- else {
217
- connection.commit(function (er3) {
218
- if (er3) {
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.query(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.query(queries.join(""), toArray(params), function (er2, results) {
679
+ if (er2) {
219
680
  connection.rollback(function () {
220
- return reject(er3);
681
+ buildError(er2);
682
+ return reject(er2);
221
683
  });
222
684
  }
685
+ else {
686
+ connection.commit(function (er3) {
687
+ if (er3) {
688
+ connection.rollback(function () {
689
+ return reject(er3);
690
+ });
691
+ }
692
+ });
693
+ return resolve(results.affectedRows);
694
+ }
223
695
  });
224
- return resolve(results.affectedRows);
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.execBatch = execBatch;
764
+ exports.executeBatchConnection = executeBatchConnection;
234
765
  function buildError(err) {
235
766
  if (err.errno === 1062 && err.code === "ER_DUP_ENTRY") {
236
767
  err.error = "duplicate";
237
768
  }
238
769
  return err;
239
770
  }
240
- function exec(pool, sql, args) {
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) {
@@ -256,7 +787,7 @@ function exec(pool, sql, args) {
256
787
  });
257
788
  });
258
789
  }
259
- exports.exec = exec;
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;
@@ -295,7 +826,7 @@ function queryOne(pool, sql, args, m, bools) {
295
826
  });
296
827
  }
297
828
  exports.queryOne = queryOne;
298
- function execScalar(pool, sql, args) {
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,21 +837,21 @@ function execScalar(pool, sql, args) {
306
837
  }
307
838
  });
308
839
  }
309
- exports.execScalar = execScalar;
840
+ exports.executeScalar = executeScalar;
310
841
  function count(pool, sql, args) {
311
- return execScalar(pool, sql, args);
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
850
  if (typeof pool === "function") {
320
851
  return pool(s.query, s.params);
321
852
  }
322
853
  else {
323
- return exec(pool, s.query, s.params);
854
+ return execute(pool, s.query, s.params);
324
855
  }
325
856
  }
326
857
  exports.save = save;
@@ -330,7 +861,7 @@ function saveBatch(pool, objs, table, attrs, ver, buildParam) {
330
861
  return pool(s);
331
862
  }
332
863
  else {
333
- return execBatch(pool, s);
864
+ return executeBatch(pool, s);
334
865
  }
335
866
  }
336
867
  exports.saveBatch = saveBatch;
@@ -549,7 +1080,7 @@ var StringService = (function () {
549
1080
  arr.push("(?)");
550
1081
  }
551
1082
  var s = "insert ignore into " + this.table + "(" + this.column + ")values" + arr.join(",");
552
- return exec(this.pool, s, values);
1083
+ return execute(this.pool, s, values);
553
1084
  };
554
1085
  return StringService;
555
1086
  }());
@@ -574,7 +1105,7 @@ var MySQLWriter = (function () {
574
1105
  this.oneIfSuccess = oneIfSuccess;
575
1106
  this.write = this.write.bind(this);
576
1107
  if (typeof pool === "function") {
577
- this.exec = pool;
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.exec) {
1130
+ if (this.execute) {
600
1131
  if (this.oneIfSuccess) {
601
- return this.exec(stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
1132
+ return this.execute(stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
602
1133
  }
603
1134
  else {
604
- return this.exec(stmt.query, stmt.params);
1135
+ return this.execute(stmt.query, stmt.params);
605
1136
  }
606
1137
  }
607
1138
  else {
608
1139
  if (this.oneIfSuccess) {
609
- return exec(this.pool, stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
1140
+ return execute(this.pool, stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
610
1141
  }
611
1142
  else {
612
- return exec(this.pool, stmt.query, stmt.params);
1143
+ return execute(this.pool, stmt.query, stmt.params);
613
1144
  }
614
1145
  }
615
1146
  }
@@ -629,7 +1160,7 @@ var MySQLStreamWriter = (function () {
629
1160
  this.write = this.write.bind(this);
630
1161
  this.flush = this.flush.bind(this);
631
1162
  if (typeof pool === "function") {
632
- this.execBatch = pool;
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.execBatch) {
676
- return this.execBatch(stmt).then(function (r) {
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 execBatch(this.pool, stmt).then(function (r) {
1213
+ return executeBatch(this.pool, stmt).then(function (r) {
683
1214
  _this.list = [];
684
1215
  return total_1;
685
1216
  });
@@ -737,10 +1268,10 @@ var MySQLBatchWriter = (function () {
737
1268
  }
738
1269
  else {
739
1270
  if (this.oneIfSuccess) {
740
- return execBatch(this.pool, stmts).then(function (ct) { return stmts.length; });
1271
+ return executeBatch(this.pool, stmts).then(function (ct) { return stmts.length; });
741
1272
  }
742
1273
  else {
743
- return execBatch(this.pool, stmts);
1274
+ return executeBatch(this.pool, stmts);
744
1275
  }
745
1276
  }
746
1277
  }