query-core 0.0.4

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 ADDED
@@ -0,0 +1,784 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function params(length, p, from) {
4
+ if (from === undefined || from == null) {
5
+ from = 0;
6
+ }
7
+ var ps = [];
8
+ for (var i = 1; i <= length; i++) {
9
+ ps.push(p(i + from));
10
+ }
11
+ return ps;
12
+ }
13
+ exports.params = params;
14
+ function select(obj, table, ks, buildParam, i) {
15
+ if (!i) {
16
+ i = 1;
17
+ }
18
+ if (ks.length === 1) {
19
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
20
+ if (typeof obj === 'number') {
21
+ var query = "select * from " + table + " where " + field + " = " + obj;
22
+ return { query: query, params: [] };
23
+ }
24
+ else {
25
+ var query = "select * from " + table + " where " + field + " = " + buildParam(i);
26
+ return { query: query, params: [obj] };
27
+ }
28
+ }
29
+ else if (ks.length > 1) {
30
+ var cols = [];
31
+ var args = [];
32
+ for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
33
+ var k = ks_1[_i];
34
+ if (k.name) {
35
+ var field = (k.column ? k.column : k.name);
36
+ cols.push(field + " = " + buildParam(i++));
37
+ args.push(obj[k.name]);
38
+ }
39
+ }
40
+ var query = "select * from " + table + " where " + cols.join(' and ');
41
+ return { query: query, params: args };
42
+ }
43
+ else {
44
+ return undefined;
45
+ }
46
+ }
47
+ exports.select = select;
48
+ function exist(obj, table, ks, buildParam, col, i) {
49
+ if (!i) {
50
+ i = 1;
51
+ }
52
+ if (!col || col.length === 0) {
53
+ col = '*';
54
+ }
55
+ if (ks.length === 1) {
56
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
57
+ if (typeof obj === 'number') {
58
+ var query = "select " + col + " from " + table + " where " + field + " = " + obj;
59
+ return { query: query, params: [] };
60
+ }
61
+ else {
62
+ var query = "select " + col + " from " + table + " where " + field + " = " + buildParam(i);
63
+ return { query: query, params: [obj] };
64
+ }
65
+ }
66
+ else if (ks.length > 1) {
67
+ var cols = [];
68
+ var args = [];
69
+ for (var _i = 0, ks_2 = ks; _i < ks_2.length; _i++) {
70
+ var k = ks_2[_i];
71
+ if (k.name) {
72
+ var field = (k.column ? k.column : k.name);
73
+ cols.push(field + " = " + buildParam(i++));
74
+ args.push(obj[k.name]);
75
+ }
76
+ }
77
+ var query = "select * from " + table + " where " + cols.join(' and ');
78
+ return { query: query, params: args };
79
+ }
80
+ else {
81
+ return undefined;
82
+ }
83
+ }
84
+ exports.exist = exist;
85
+ function buildToDelete(obj, table, ks, buildParam, i) {
86
+ if (!i) {
87
+ i = 1;
88
+ }
89
+ if (ks.length === 1) {
90
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
91
+ if (typeof obj === 'number') {
92
+ var query = "delete from " + table + " where " + field + " = " + obj;
93
+ return { query: query, params: [] };
94
+ }
95
+ else {
96
+ var query = "delete from " + table + " where " + field + " = " + buildParam(i);
97
+ return { query: query, params: [obj] };
98
+ }
99
+ }
100
+ else if (ks.length > 1) {
101
+ var cols = [];
102
+ var args = [];
103
+ for (var _i = 0, ks_3 = ks; _i < ks_3.length; _i++) {
104
+ var k = ks_3[_i];
105
+ if (k.name) {
106
+ var field = (k.column ? k.column : k.name);
107
+ cols.push(field + " = " + buildParam(i++));
108
+ args.push(obj[k.name]);
109
+ }
110
+ }
111
+ var query = "delete from " + table + " where " + cols.join(' and ');
112
+ return { query: query, params: args };
113
+ }
114
+ else {
115
+ return undefined;
116
+ }
117
+ }
118
+ exports.buildToDelete = buildToDelete;
119
+ function insert(exec, obj, table, attrs, buildParam, ver, i) {
120
+ var stm = buildToInsert(obj, table, attrs, buildParam, ver, i);
121
+ if (!stm) {
122
+ return Promise.resolve(0);
123
+ }
124
+ else {
125
+ return exec(stm.query, stm.params);
126
+ }
127
+ }
128
+ exports.insert = insert;
129
+ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
130
+ if (!i) {
131
+ i = 1;
132
+ }
133
+ var o = obj;
134
+ var ks = Object.keys(attrs);
135
+ var cols = [];
136
+ var values = [];
137
+ var args = [];
138
+ var isVersion = false;
139
+ for (var _i = 0, ks_4 = ks; _i < ks_4.length; _i++) {
140
+ var k = ks_4[_i];
141
+ var v = o[k];
142
+ var attr = attrs[k];
143
+ if (attr && !attr.ignored && !attr.noinsert) {
144
+ if (v === undefined || v == null) {
145
+ v = attr.default;
146
+ }
147
+ if (v !== undefined && v != null) {
148
+ var field = (attr.column ? attr.column : k);
149
+ cols.push(field);
150
+ if (k === ver) {
151
+ isVersion = true;
152
+ values.push("" + 1);
153
+ }
154
+ else {
155
+ if (v === '') {
156
+ values.push("''");
157
+ }
158
+ else if (typeof v === 'number') {
159
+ values.push(toString(v));
160
+ }
161
+ else if (typeof v === 'boolean') {
162
+ if (attr.true === undefined) {
163
+ if (v === true) {
164
+ values.push("true");
165
+ }
166
+ else {
167
+ values.push("false");
168
+ }
169
+ }
170
+ else {
171
+ var p = buildParam(i++);
172
+ values.push(p);
173
+ if (v === true) {
174
+ var v2 = (attr.true ? attr.true : '1');
175
+ args.push(v2);
176
+ }
177
+ else {
178
+ var v2 = (attr.false ? attr.false : '0');
179
+ args.push(v2);
180
+ }
181
+ }
182
+ }
183
+ else {
184
+ var p = buildParam(i++);
185
+ values.push(p);
186
+ args.push(v);
187
+ }
188
+ }
189
+ }
190
+ }
191
+ }
192
+ if (!isVersion && ver && ver.length > 0) {
193
+ var attr = attrs[ver];
194
+ var field = (attr.column ? attr.column : ver);
195
+ cols.push(field);
196
+ values.push("" + 1);
197
+ }
198
+ if (cols.length === 0) {
199
+ return undefined;
200
+ }
201
+ else {
202
+ var query = "insert into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ")";
203
+ return { query: query, params: args };
204
+ }
205
+ }
206
+ exports.buildToInsert = buildToInsert;
207
+ function insertBatch(exec, objs, table, attrs, buildParam, ver, i) {
208
+ var stm = buildToInsertBatch(objs, table, attrs, buildParam, ver, i);
209
+ if (!stm) {
210
+ return Promise.resolve(0);
211
+ }
212
+ else {
213
+ return exec(stm.query, stm.params);
214
+ }
215
+ }
216
+ exports.insertBatch = insertBatch;
217
+ function buildOracleParam(i) {
218
+ return ':' + i;
219
+ }
220
+ function buildToInsertBatch(objs, table, attrs, buildParam, ver, i) {
221
+ if (!i) {
222
+ i = 1;
223
+ }
224
+ var ks = Object.keys(attrs);
225
+ var args = [];
226
+ if (buildParam && typeof buildParam === 'function') {
227
+ var cols = [];
228
+ var rows = [];
229
+ for (var _i = 0, ks_5 = ks; _i < ks_5.length; _i++) {
230
+ var k = ks_5[_i];
231
+ var attr = attrs[k];
232
+ if (attr && !attr.ignored && !attr.noinsert) {
233
+ var field = (attr.column ? attr.column : k);
234
+ cols.push(field);
235
+ }
236
+ }
237
+ for (var _a = 0, objs_1 = objs; _a < objs_1.length; _a++) {
238
+ var obj = objs_1[_a];
239
+ var values = [];
240
+ for (var _b = 0, ks_6 = ks; _b < ks_6.length; _b++) {
241
+ var k = ks_6[_b];
242
+ var attr = attrs[k];
243
+ if (attr && !attr.ignored && !attr.noinsert) {
244
+ var v = obj[k];
245
+ if (v === undefined || v === null) {
246
+ v = attr.default;
247
+ }
248
+ if (attr.version) {
249
+ values.push('1');
250
+ }
251
+ else if (v === undefined || v == null) {
252
+ values.push('null');
253
+ }
254
+ else if (v === '') {
255
+ values.push("''");
256
+ }
257
+ else if (typeof v === 'number') {
258
+ values.push(toString(v));
259
+ }
260
+ else if (typeof v === 'boolean') {
261
+ if (attr.true === undefined) {
262
+ if (v === true) {
263
+ values.push("true");
264
+ }
265
+ else {
266
+ values.push("false");
267
+ }
268
+ }
269
+ else {
270
+ var p = buildParam(i++);
271
+ values.push(p);
272
+ if (v === true) {
273
+ var v2 = (attr.true ? attr.true : '1');
274
+ args.push(v2);
275
+ }
276
+ else {
277
+ var v2 = (attr.false ? attr.false : '0');
278
+ args.push(v2);
279
+ }
280
+ }
281
+ }
282
+ else {
283
+ var p = buildParam(i++);
284
+ values.push(p);
285
+ args.push(v);
286
+ }
287
+ }
288
+ }
289
+ rows.push("(" + values.join(',') + ")");
290
+ }
291
+ var query = "insert into " + table + "(" + cols.join(',') + ")values " + rows.join(',');
292
+ return { query: query, params: args };
293
+ }
294
+ else {
295
+ var notSkipInvalid = false;
296
+ if (buildParam === true) {
297
+ notSkipInvalid = true;
298
+ }
299
+ var rows = [];
300
+ for (var _c = 0, objs_2 = objs; _c < objs_2.length; _c++) {
301
+ var obj = objs_2[_c];
302
+ var cols = [];
303
+ var values = [];
304
+ var isVersion = false;
305
+ for (var _d = 0, ks_7 = ks; _d < ks_7.length; _d++) {
306
+ var k = ks_7[_d];
307
+ var v = obj[k];
308
+ var attr = attrs[k];
309
+ if (attr && !attr.ignored && !attr.noinsert) {
310
+ if (v === undefined || v == null) {
311
+ v = attr.default;
312
+ }
313
+ if (v !== undefined && v != null) {
314
+ var field = (attr.column ? attr.column : k);
315
+ cols.push(field);
316
+ if (k === ver) {
317
+ isVersion = true;
318
+ values.push("" + 1);
319
+ }
320
+ else {
321
+ if (v === '') {
322
+ values.push("''");
323
+ }
324
+ else if (typeof v === 'number') {
325
+ values.push(toString(v));
326
+ }
327
+ else if (typeof v === 'boolean') {
328
+ if (attr.true === undefined) {
329
+ if (v === true) {
330
+ values.push("true");
331
+ }
332
+ else {
333
+ values.push("false");
334
+ }
335
+ }
336
+ else {
337
+ var p = buildOracleParam(i++);
338
+ values.push(p);
339
+ if (v === true) {
340
+ var v2 = (attr.true ? attr.true : '1');
341
+ args.push(v2);
342
+ }
343
+ else {
344
+ var v2 = (attr.false ? attr.false : '0');
345
+ args.push(v2);
346
+ }
347
+ }
348
+ }
349
+ else {
350
+ var p = buildOracleParam(i++);
351
+ values.push(p);
352
+ args.push(v);
353
+ }
354
+ }
355
+ }
356
+ }
357
+ }
358
+ if (!isVersion && ver && ver.length > 0) {
359
+ var attr = attrs[ver];
360
+ var field = (attr.column ? attr.column : ver);
361
+ cols.push(field);
362
+ values.push("" + 1);
363
+ }
364
+ if (cols.length === 0) {
365
+ if (notSkipInvalid) {
366
+ return undefined;
367
+ }
368
+ }
369
+ else {
370
+ var s = "into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ")";
371
+ rows.push(s);
372
+ }
373
+ }
374
+ if (rows.length === 0) {
375
+ return undefined;
376
+ }
377
+ var query = "insert all " + rows.join(' ') + " select * from dual";
378
+ return { query: query, params: args };
379
+ }
380
+ }
381
+ exports.buildToInsertBatch = buildToInsertBatch;
382
+ function update(exec, obj, table, attrs, buildParam, ver, i) {
383
+ var stm = buildToUpdate(obj, table, attrs, buildParam, ver, i);
384
+ if (!stm) {
385
+ return Promise.resolve(0);
386
+ }
387
+ else {
388
+ return exec(stm.query, stm.params);
389
+ }
390
+ }
391
+ exports.update = update;
392
+ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
393
+ if (!i) {
394
+ i = 1;
395
+ }
396
+ var o = obj;
397
+ var ks = Object.keys(attrs);
398
+ var pks = [];
399
+ var colSet = [];
400
+ var colQuery = [];
401
+ var args = [];
402
+ for (var _i = 0, ks_8 = ks; _i < ks_8.length; _i++) {
403
+ var k = ks_8[_i];
404
+ var v = o[k];
405
+ if (v !== undefined) {
406
+ var attr = attrs[k];
407
+ attr.name = k;
408
+ if (attr && !attr.ignored && k !== ver) {
409
+ if (attr.key) {
410
+ pks.push(attr);
411
+ }
412
+ else if (!attr.noupdate) {
413
+ var field = (attr.column ? attr.column : k);
414
+ var x = void 0;
415
+ if (v == null) {
416
+ x = 'null';
417
+ }
418
+ else if (v === '') {
419
+ x = "''";
420
+ }
421
+ else if (typeof v === 'number') {
422
+ x = toString(v);
423
+ }
424
+ else if (typeof v === 'boolean') {
425
+ if (attr.true === undefined) {
426
+ if (v === true) {
427
+ x = "true";
428
+ }
429
+ else {
430
+ x = "false";
431
+ }
432
+ }
433
+ else {
434
+ x = buildParam(i++);
435
+ if (v === true) {
436
+ var v2 = (attr.true ? attr.true : '1');
437
+ args.push(v2);
438
+ }
439
+ else {
440
+ var v2 = (attr.false ? attr.false : '0');
441
+ args.push(v2);
442
+ }
443
+ }
444
+ }
445
+ else {
446
+ x = buildParam(i++);
447
+ args.push(v);
448
+ }
449
+ colSet.push(field + "=" + x);
450
+ }
451
+ }
452
+ }
453
+ }
454
+ for (var _a = 0, pks_1 = pks; _a < pks_1.length; _a++) {
455
+ var pk = pks_1[_a];
456
+ var na = (pk.name ? pk.name : '');
457
+ var v = o[na];
458
+ if (!v) {
459
+ return undefined;
460
+ }
461
+ else {
462
+ var attr = attrs[na];
463
+ var field = (attr.column ? attr.column : pk.name);
464
+ var x = void 0;
465
+ if (v == null) {
466
+ x = 'null';
467
+ }
468
+ else if (v === '') {
469
+ x = "''";
470
+ }
471
+ else if (typeof v === 'number') {
472
+ x = toString(v);
473
+ }
474
+ else {
475
+ x = buildParam(i++);
476
+ if (typeof v === 'boolean') {
477
+ if (v === true) {
478
+ var v2 = (attr.true ? '' + attr.true : '1');
479
+ args.push(v2);
480
+ }
481
+ else {
482
+ var v2 = (attr.false ? '' + attr.false : '0');
483
+ args.push(v2);
484
+ }
485
+ }
486
+ else {
487
+ args.push(v);
488
+ }
489
+ }
490
+ colQuery.push(field + "=" + x);
491
+ }
492
+ }
493
+ if (ver && ver.length > 0) {
494
+ var v = o[ver];
495
+ if (typeof v === 'number' && !isNaN(v)) {
496
+ var attr = attrs[ver];
497
+ if (attr) {
498
+ var field = (attr.column ? attr.column : ver);
499
+ colSet.push(field + "=" + (1 + v));
500
+ colQuery.push(field + "=" + v);
501
+ }
502
+ }
503
+ }
504
+ if (colSet.length === 0 || colQuery.length === 0) {
505
+ return undefined;
506
+ }
507
+ else {
508
+ var query = "update " + table + " set " + colSet.join(',') + " where " + colQuery.join(' and ');
509
+ return { query: query, params: args };
510
+ }
511
+ }
512
+ exports.buildToUpdate = buildToUpdate;
513
+ function updateBatch(exec, objs, table, attrs, buildParam, notSkipInvalid) {
514
+ var stmts = buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid);
515
+ if (!stmts || stmts.length === 0) {
516
+ return Promise.resolve(0);
517
+ }
518
+ else {
519
+ return exec(stmts);
520
+ }
521
+ }
522
+ exports.updateBatch = updateBatch;
523
+ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
524
+ var sts = [];
525
+ var meta = metadata(attrs);
526
+ if (!meta.keys || meta.keys.length === 0) {
527
+ return undefined;
528
+ }
529
+ for (var _i = 0, objs_3 = objs; _i < objs_3.length; _i++) {
530
+ var obj = objs_3[_i];
531
+ var o = obj;
532
+ var i = 1;
533
+ var ks = Object.keys(o);
534
+ var colSet = [];
535
+ var colQuery = [];
536
+ var args = [];
537
+ for (var _a = 0, ks_9 = ks; _a < ks_9.length; _a++) {
538
+ var k = ks_9[_a];
539
+ var v = o[k];
540
+ if (v !== undefined) {
541
+ var attr = attrs[k];
542
+ attr.name = k;
543
+ if (attr && !attr.ignored && !attr.key && !attr.version && !attr.noupdate) {
544
+ var field = (attr.column ? attr.column : k);
545
+ var x = void 0;
546
+ if (v == null) {
547
+ x = 'null';
548
+ }
549
+ else if (v === '') {
550
+ x = "''";
551
+ }
552
+ else if (typeof v === 'number') {
553
+ x = toString(v);
554
+ }
555
+ else if (typeof v === 'boolean') {
556
+ if (attr.true === undefined) {
557
+ if (v === true) {
558
+ x = "true";
559
+ }
560
+ else {
561
+ x = "false";
562
+ }
563
+ }
564
+ else {
565
+ x = buildParam(i++);
566
+ if (v === true) {
567
+ var v2 = (attr.true ? attr.true : '1');
568
+ args.push(v2);
569
+ }
570
+ else {
571
+ var v2 = (attr.false ? attr.false : '0');
572
+ args.push(v2);
573
+ }
574
+ }
575
+ }
576
+ else {
577
+ x = buildParam(i++);
578
+ args.push(v);
579
+ }
580
+ colSet.push(field + "=" + x);
581
+ }
582
+ }
583
+ }
584
+ var valid = true;
585
+ for (var _b = 0, _c = meta.keys; _b < _c.length; _b++) {
586
+ var pk = _c[_b];
587
+ var na = (pk.name ? pk.name : '');
588
+ var v = o[na];
589
+ if (!v) {
590
+ valid = false;
591
+ }
592
+ else {
593
+ var attr = attrs[na];
594
+ var field = (attr.column ? attr.column : pk.name);
595
+ var x = void 0;
596
+ if (v == null) {
597
+ x = 'null';
598
+ }
599
+ else if (v === '') {
600
+ x = "''";
601
+ }
602
+ else if (typeof v === 'number') {
603
+ x = toString(v);
604
+ }
605
+ else {
606
+ x = buildParam(i++);
607
+ if (typeof v === 'boolean') {
608
+ if (v === true) {
609
+ var v2 = (attr.true ? '' + attr.true : '1');
610
+ args.push(v2);
611
+ }
612
+ else {
613
+ var v2 = (attr.false ? '' + attr.false : '0');
614
+ args.push(v2);
615
+ }
616
+ }
617
+ else {
618
+ args.push(v);
619
+ }
620
+ }
621
+ colQuery.push(field + "=" + x);
622
+ }
623
+ }
624
+ if (!valid || colSet.length === 0 || colQuery.length === 0) {
625
+ if (notSkipInvalid) {
626
+ return undefined;
627
+ }
628
+ }
629
+ else {
630
+ var ver = meta.version;
631
+ if (ver && ver.length > 0) {
632
+ var v = o[ver];
633
+ if (typeof v === 'number' && !isNaN(v)) {
634
+ var attr = attrs[ver];
635
+ if (attr) {
636
+ var field = (attr.column ? attr.column : ver);
637
+ colSet.push(field + "=" + (1 + v));
638
+ colQuery.push(field + "=" + v);
639
+ }
640
+ }
641
+ }
642
+ var query = "update " + table + " set " + colSet.join(',') + " where " + colQuery.join(' and ');
643
+ var stm = { query: query, params: args };
644
+ sts.push(stm);
645
+ }
646
+ }
647
+ return sts;
648
+ }
649
+ exports.buildToUpdateBatch = buildToUpdateBatch;
650
+ function version(attrs) {
651
+ var ks = Object.keys(attrs);
652
+ for (var _i = 0, ks_10 = ks; _i < ks_10.length; _i++) {
653
+ var k = ks_10[_i];
654
+ var attr = attrs[k];
655
+ if (attr.version) {
656
+ attr.name = k;
657
+ return attr;
658
+ }
659
+ }
660
+ return undefined;
661
+ }
662
+ exports.version = version;
663
+ function key(attrs) {
664
+ var ks = Object.keys(attrs);
665
+ for (var _i = 0, ks_11 = ks; _i < ks_11.length; _i++) {
666
+ var k = ks_11[_i];
667
+ var attr = attrs[k];
668
+ attr.name = k;
669
+ if (attr.key) {
670
+ return attr;
671
+ }
672
+ }
673
+ return undefined;
674
+ }
675
+ exports.key = key;
676
+ function keys(attrs) {
677
+ var ks = Object.keys(attrs);
678
+ var ats = [];
679
+ for (var _i = 0, ks_12 = ks; _i < ks_12.length; _i++) {
680
+ var k = ks_12[_i];
681
+ var attr = attrs[k];
682
+ attr.name = k;
683
+ if (attr.key) {
684
+ ats.push(attr);
685
+ }
686
+ }
687
+ return ats;
688
+ }
689
+ exports.keys = keys;
690
+ function buildMap(attrs) {
691
+ var mp = {};
692
+ var ks = Object.keys(attrs);
693
+ for (var _i = 0, ks_13 = ks; _i < ks_13.length; _i++) {
694
+ var k = ks_13[_i];
695
+ var attr = attrs[k];
696
+ attr.name = k;
697
+ var field = (attr.column ? attr.column : k);
698
+ var s = field.toLowerCase();
699
+ if (s !== k) {
700
+ mp[s] = k;
701
+ }
702
+ }
703
+ return mp;
704
+ }
705
+ exports.buildMap = buildMap;
706
+ function metadata(attrs) {
707
+ var mp = {};
708
+ var ks = Object.keys(attrs);
709
+ var ats = [];
710
+ var bools = [];
711
+ var fields = [];
712
+ var isMap = false;
713
+ var m = { keys: ats, fields: fields };
714
+ for (var _i = 0, ks_14 = ks; _i < ks_14.length; _i++) {
715
+ var k = ks_14[_i];
716
+ var attr = attrs[k];
717
+ attr.name = k;
718
+ if (attr.key) {
719
+ ats.push(attr);
720
+ }
721
+ if (!attr.ignored) {
722
+ fields.push(k);
723
+ }
724
+ if (attr.type === 'boolean') {
725
+ bools.push(attr);
726
+ }
727
+ if (attr.version) {
728
+ m.version = k;
729
+ }
730
+ var field = (attr.column ? attr.column : k);
731
+ var s = field.toLowerCase();
732
+ if (s !== k) {
733
+ mp[s] = k;
734
+ isMap = true;
735
+ }
736
+ }
737
+ if (isMap) {
738
+ m.map = mp;
739
+ }
740
+ if (bools.length > 0) {
741
+ m.bools = bools;
742
+ }
743
+ return m;
744
+ }
745
+ exports.metadata = metadata;
746
+ function attributes(attrs, isKey) {
747
+ var ks = [];
748
+ for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {
749
+ var s = attrs_1[_i];
750
+ var a = { name: s, column: s, key: isKey };
751
+ ks.push(a);
752
+ }
753
+ return ks;
754
+ }
755
+ exports.attributes = attributes;
756
+ function param(i) {
757
+ return '?';
758
+ }
759
+ exports.param = param;
760
+ function setValue(obj, path, value) {
761
+ var paths = path.split('.');
762
+ var o = obj;
763
+ for (var i = 0; i < paths.length - 1; i++) {
764
+ var p = paths[i];
765
+ if (p in o) {
766
+ o = o[p];
767
+ }
768
+ else {
769
+ o[p] = {};
770
+ o = o[p];
771
+ }
772
+ }
773
+ o[paths[paths.length - 1]] = value;
774
+ }
775
+ exports.setValue = setValue;
776
+ var n = 'NaN';
777
+ function toString(v) {
778
+ var x = '' + v;
779
+ if (x === n) {
780
+ x = 'null';
781
+ }
782
+ return x;
783
+ }
784
+ exports.toString = toString;