query-core 0.1.8 → 0.1.12

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.
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var build_1 = require("./build");
4
4
  var query_1 = require("./query");
5
5
  var search_1 = require("./search");
6
- exports.postgre = 'postgre';
6
+ exports.postgres = 'postgres';
7
7
  exports.mssql = 'mssql';
8
8
  exports.mysql = 'mysql';
9
9
  exports.sqlite = 'sqlite';
@@ -33,7 +33,7 @@ var SearchBuilder = (function () {
33
33
  if (provider === search_1.oracle) {
34
34
  this.buildParam = query_1.buildOracleParam;
35
35
  }
36
- else if (provider === exports.postgre) {
36
+ else if (provider === exports.postgres) {
37
37
  this.buildParam = query_1.buildDollarParam;
38
38
  }
39
39
  else if (provider === exports.mssql) {
@@ -45,17 +45,25 @@ var SearchBuilder = (function () {
45
45
  }
46
46
  this.total = (total && total.length > 0 ? total : 'total');
47
47
  }
48
- SearchBuilder.prototype.search = function (s, limit, skip, fields) {
49
- var _this = this;
48
+ SearchBuilder.prototype.search = function (s, limit, offset, fields) {
49
+ var skip = 0;
50
+ if (typeof offset === 'number' && offset > 0) {
51
+ skip = offset;
52
+ }
50
53
  var st = (this.sort ? this.sort : 'sort');
51
54
  var sn = s[st];
52
55
  delete s[st];
53
- var x = (this.provider === exports.postgre ? 'ilike' : this.buildParam);
54
- var q2 = query_1.buildQuery(s, x, this.table, this.attributes, sn, fields, this.q, this.excluding, this.buildSort);
55
- if (this.fromDB) {
56
+ var x = (this.provider === exports.postgres ? 'ilike' : this.buildParam);
57
+ var q2 = this.buildQuery(s, x, this.table, this.attributes, sn, fields, this.q, this.excluding, this.buildSort);
58
+ if (!q2) {
59
+ throw new Error('Cannot build query');
60
+ }
61
+ var fn = this.fromDB;
62
+ if (fn) {
56
63
  return search_1.buildFromQuery(this.query, q2.query, q2.params, limit, skip, this.map, this.bools, this.provider, this.total).then(function (r) {
57
64
  if (r.list && r.list.length > 0) {
58
- r.list = r.list.map(function (o) { return _this.fromDB(o); });
65
+ r.list = r.list.map(function (o) { return fn(o); });
66
+ return r;
59
67
  }
60
68
  else {
61
69
  return r;
package/lib/batch.js CHANGED
@@ -91,7 +91,7 @@ var SqlBatchInserter = (function () {
91
91
  list.push(obj2);
92
92
  }
93
93
  }
94
- var stmt = build_1.buildToInsertBatch(list, this.table, this.attributes, this.param);
94
+ var stmt = build_1.buildToInsertBatch(list, this.table, this.attributes, this.param, this.version);
95
95
  if (stmt) {
96
96
  return this.exec(stmt.query, stmt.params);
97
97
  }
package/lib/build.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- function params(length, param, from) {
3
+ function params(length, p, from) {
4
4
  if (from === undefined || from == null) {
5
5
  from = 0;
6
6
  }
7
7
  var ps = [];
8
8
  for (var i = 1; i <= length; i++) {
9
- ps.push(param(i + from));
9
+ ps.push(p(i + from));
10
10
  }
11
11
  return ps;
12
12
  }
@@ -16,7 +16,7 @@ function select(obj, table, ks, buildParam, i) {
16
16
  i = 1;
17
17
  }
18
18
  if (ks.length === 1) {
19
- var field = (ks[0].field ? ks[0].field : ks[0].name);
19
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
20
20
  if (typeof obj === 'number') {
21
21
  var query = "select * from " + table + " where " + field + " = " + obj;
22
22
  return { query: query, params: [] };
@@ -31,15 +31,17 @@ function select(obj, table, ks, buildParam, i) {
31
31
  var args = [];
32
32
  for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
33
33
  var k = ks_1[_i];
34
- var field = (k.field ? k.field : k.name);
35
- cols.push(field + " = " + buildParam(i++));
36
- args.push(obj[k.name]);
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
+ }
37
39
  }
38
40
  var query = "select * from " + table + " where " + cols.join(' and ');
39
41
  return { query: query, params: args };
40
42
  }
41
43
  else {
42
- return null;
44
+ return undefined;
43
45
  }
44
46
  }
45
47
  exports.select = select;
@@ -51,7 +53,7 @@ function exist(obj, table, ks, buildParam, col, i) {
51
53
  col = '*';
52
54
  }
53
55
  if (ks.length === 1) {
54
- var field = (ks[0].field ? ks[0].field : ks[0].name);
56
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
55
57
  if (typeof obj === 'number') {
56
58
  var query = "select " + col + " from " + table + " where " + field + " = " + obj;
57
59
  return { query: query, params: [] };
@@ -66,15 +68,17 @@ function exist(obj, table, ks, buildParam, col, i) {
66
68
  var args = [];
67
69
  for (var _i = 0, ks_2 = ks; _i < ks_2.length; _i++) {
68
70
  var k = ks_2[_i];
69
- var field = (k.field ? k.field : k.name);
70
- cols.push(field + " = " + buildParam(i++));
71
- args.push(obj[k.name]);
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
+ }
72
76
  }
73
77
  var query = "select * from " + table + " where " + cols.join(' and ');
74
78
  return { query: query, params: args };
75
79
  }
76
80
  else {
77
- return null;
81
+ return undefined;
78
82
  }
79
83
  }
80
84
  exports.exist = exist;
@@ -83,7 +87,7 @@ function buildToDelete(obj, table, ks, buildParam, i) {
83
87
  i = 1;
84
88
  }
85
89
  if (ks.length === 1) {
86
- var field = (ks[0].field ? ks[0].field : ks[0].name);
90
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
87
91
  if (typeof obj === 'number') {
88
92
  var query = "delete from " + table + " where " + field + " = " + obj;
89
93
  return { query: query, params: [] };
@@ -98,15 +102,17 @@ function buildToDelete(obj, table, ks, buildParam, i) {
98
102
  var args = [];
99
103
  for (var _i = 0, ks_3 = ks; _i < ks_3.length; _i++) {
100
104
  var k = ks_3[_i];
101
- var field = (k.field ? k.field : k.name);
102
- cols.push(field + " = " + buildParam(i++));
103
- args.push(obj[k.name]);
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
+ }
104
110
  }
105
111
  var query = "delete from " + table + " where " + cols.join(' and ');
106
112
  return { query: query, params: args };
107
113
  }
108
114
  else {
109
- return null;
115
+ return undefined;
110
116
  }
111
117
  }
112
118
  exports.buildToDelete = buildToDelete;
@@ -124,6 +130,7 @@ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
124
130
  if (!i) {
125
131
  i = 1;
126
132
  }
133
+ var o = obj;
127
134
  var ks = Object.keys(attrs);
128
135
  var cols = [];
129
136
  var values = [];
@@ -131,14 +138,14 @@ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
131
138
  var isVersion = false;
132
139
  for (var _i = 0, ks_4 = ks; _i < ks_4.length; _i++) {
133
140
  var k = ks_4[_i];
134
- var v = obj[k];
141
+ var v = o[k];
135
142
  var attr = attrs[k];
136
143
  if (attr && !attr.ignored && !attr.noinsert) {
137
144
  if (v === undefined || v == null) {
138
145
  v = attr.default;
139
146
  }
140
147
  if (v !== undefined && v != null) {
141
- var field = (attr.field ? attr.field : k);
148
+ var field = (attr.column ? attr.column : k);
142
149
  cols.push(field);
143
150
  if (k === ver) {
144
151
  isVersion = true;
@@ -184,12 +191,12 @@ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
184
191
  }
185
192
  if (!isVersion && ver && ver.length > 0) {
186
193
  var attr = attrs[ver];
187
- var field = (attr.field ? attr.field : ver);
194
+ var field = (attr.column ? attr.column : ver);
188
195
  cols.push(field);
189
196
  values.push("" + 1);
190
197
  }
191
198
  if (cols.length === 0) {
192
- return null;
199
+ return undefined;
193
200
  }
194
201
  else {
195
202
  var query = "insert into " + table + "(" + cols.join(',') + ")values(" + values.join(',') + ")";
@@ -197,8 +204,8 @@ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
197
204
  }
198
205
  }
199
206
  exports.buildToInsert = buildToInsert;
200
- function insertBatch(exec, objs, table, attrs, buildParam, i) {
201
- var stm = buildToInsertBatch(objs, table, attrs, buildParam, i);
207
+ function insertBatch(exec, objs, table, attrs, buildParam, ver, i) {
208
+ var stm = buildToInsertBatch(objs, table, attrs, buildParam, ver, i);
202
209
  if (!stm) {
203
210
  return Promise.resolve(0);
204
211
  }
@@ -207,78 +214,169 @@ function insertBatch(exec, objs, table, attrs, buildParam, i) {
207
214
  }
208
215
  }
209
216
  exports.insertBatch = insertBatch;
210
- function buildToInsertBatch(objs, table, attrs, buildParam, i) {
217
+ function buildOracleParam(i) {
218
+ return ':' + i;
219
+ }
220
+ function buildToInsertBatch(objs, table, attrs, buildParam, ver, i) {
211
221
  if (!i) {
212
222
  i = 1;
213
223
  }
214
224
  var ks = Object.keys(attrs);
215
- var cols = [];
216
- var rows = [];
217
225
  var args = [];
218
- for (var _i = 0, ks_5 = ks; _i < ks_5.length; _i++) {
219
- var k = ks_5[_i];
220
- var attr = attrs[k];
221
- if (attr && !attr.ignored && !attr.noinsert) {
222
- var field = (attr.field ? attr.field : k);
223
- cols.push(field);
224
- }
225
- }
226
- for (var _a = 0, objs_1 = objs; _a < objs_1.length; _a++) {
227
- var obj = objs_1[_a];
228
- var values = [];
229
- for (var _b = 0, ks_6 = ks; _b < ks_6.length; _b++) {
230
- var k = ks_6[_b];
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
231
  var attr = attrs[k];
232
232
  if (attr && !attr.ignored && !attr.noinsert) {
233
- var v = obj[k];
234
- if (v === undefined || v === null) {
235
- v = attr.default;
236
- }
237
- if (attr.version) {
238
- values.push('1');
239
- }
240
- else if (v === undefined || v == null) {
241
- values.push('null');
242
- }
243
- else if (v === '') {
244
- values.push("''");
245
- }
246
- else if (typeof v === 'number') {
247
- values.push(toString(v));
248
- }
249
- else if (typeof v === 'boolean') {
250
- if (attr.true === undefined) {
251
- if (v === true) {
252
- values.push("true");
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
+ }
253
268
  }
254
269
  else {
255
- values.push("false");
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
+ }
256
280
  }
257
281
  }
258
282
  else {
259
283
  var p = buildParam(i++);
260
284
  values.push(p);
261
- if (v === true) {
262
- var v2 = (attr.true ? attr.true : '1');
263
- args.push(v2);
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);
264
319
  }
265
320
  else {
266
- var v2 = (attr.false ? attr.false : '0');
267
- args.push(v2);
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
+ }
268
354
  }
269
355
  }
270
356
  }
271
- else {
272
- var p = buildParam(i++);
273
- values.push(p);
274
- args.push(v);
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;
275
367
  }
276
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;
277
376
  }
278
- rows.push("(" + values.join(',') + ")");
377
+ var query = "insert all " + rows.join(' ') + " select * from dual";
378
+ return { query: query, params: args };
279
379
  }
280
- var query = "insert into " + table + "(" + cols.join(',') + ")values " + rows.join(',');
281
- return { query: query, params: args };
282
380
  }
283
381
  exports.buildToInsertBatch = buildToInsertBatch;
284
382
  function update(exec, obj, table, attrs, buildParam, ver, i) {
@@ -295,14 +393,15 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
295
393
  if (!i) {
296
394
  i = 1;
297
395
  }
396
+ var o = obj;
298
397
  var ks = Object.keys(attrs);
299
398
  var pks = [];
300
399
  var colSet = [];
301
400
  var colQuery = [];
302
401
  var args = [];
303
- for (var _i = 0, ks_7 = ks; _i < ks_7.length; _i++) {
304
- var k = ks_7[_i];
305
- var v = obj[k];
402
+ for (var _i = 0, ks_8 = ks; _i < ks_8.length; _i++) {
403
+ var k = ks_8[_i];
404
+ var v = o[k];
306
405
  if (v !== undefined) {
307
406
  var attr = attrs[k];
308
407
  attr.name = k;
@@ -311,7 +410,7 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
311
410
  pks.push(attr);
312
411
  }
313
412
  else if (!attr.noupdate) {
314
- var field = (attr.field ? attr.field : k);
413
+ var field = (attr.column ? attr.column : k);
315
414
  var x = void 0;
316
415
  if (v == null) {
317
416
  x = 'null';
@@ -354,13 +453,14 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
354
453
  }
355
454
  for (var _a = 0, pks_1 = pks; _a < pks_1.length; _a++) {
356
455
  var pk = pks_1[_a];
357
- var v = obj[pk.name];
456
+ var na = (pk.name ? pk.name : '');
457
+ var v = o[na];
358
458
  if (!v) {
359
- return null;
459
+ return undefined;
360
460
  }
361
461
  else {
362
- var attr = attrs[pk.name];
363
- var field = (attr.field ? attr.field : pk.name);
462
+ var attr = attrs[na];
463
+ var field = (attr.column ? attr.column : pk.name);
364
464
  var x = void 0;
365
465
  if (v == null) {
366
466
  x = 'null';
@@ -391,18 +491,18 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
391
491
  }
392
492
  }
393
493
  if (ver && ver.length > 0) {
394
- var v = obj[ver];
494
+ var v = o[ver];
395
495
  if (typeof v === 'number' && !isNaN(v)) {
396
496
  var attr = attrs[ver];
397
497
  if (attr) {
398
- var field = (attr.field ? attr.field : ver);
498
+ var field = (attr.column ? attr.column : ver);
399
499
  colSet.push(field + "=" + (1 + v));
400
500
  colQuery.push(field + "=" + v);
401
501
  }
402
502
  }
403
503
  }
404
504
  if (colSet.length === 0 || colQuery.length === 0) {
405
- return null;
505
+ return undefined;
406
506
  }
407
507
  else {
408
508
  var query = "update " + table + " set " + colSet.join(',') + " where " + colQuery.join(' and ');
@@ -424,22 +524,24 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
424
524
  var sts = [];
425
525
  var meta = metadata(attrs);
426
526
  if (!meta.keys || meta.keys.length === 0) {
427
- return null;
527
+ return undefined;
428
528
  }
429
- for (var _i = 0, objs_2 = objs; _i < objs_2.length; _i++) {
430
- var obj = objs_2[_i];
529
+ for (var _i = 0, objs_3 = objs; _i < objs_3.length; _i++) {
530
+ var obj = objs_3[_i];
531
+ var o = obj;
431
532
  var i = 1;
432
- var ks = Object.keys(obj);
533
+ var ks = Object.keys(o);
433
534
  var colSet = [];
434
535
  var colQuery = [];
435
536
  var args = [];
436
- for (var _a = 0, ks_8 = ks; _a < ks_8.length; _a++) {
437
- var k = ks_8[_a];
438
- var v = obj[k];
537
+ for (var _a = 0, ks_9 = ks; _a < ks_9.length; _a++) {
538
+ var k = ks_9[_a];
539
+ var v = o[k];
439
540
  if (v !== undefined) {
440
541
  var attr = attrs[k];
542
+ attr.name = k;
441
543
  if (attr && !attr.ignored && !attr.key && !attr.version && !attr.noupdate) {
442
- var field = (attr.field ? attr.field : k);
544
+ var field = (attr.column ? attr.column : k);
443
545
  var x = void 0;
444
546
  if (v == null) {
445
547
  x = 'null';
@@ -482,13 +584,14 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
482
584
  var valid = true;
483
585
  for (var _b = 0, _c = meta.keys; _b < _c.length; _b++) {
484
586
  var pk = _c[_b];
485
- var v = obj[pk.name];
587
+ var na = (pk.name ? pk.name : '');
588
+ var v = o[na];
486
589
  if (!v) {
487
590
  valid = false;
488
591
  }
489
592
  else {
490
- var attr = attrs[pk.name];
491
- var field = (attr.field ? attr.field : pk.name);
593
+ var attr = attrs[na];
594
+ var field = (attr.column ? attr.column : pk.name);
492
595
  var x = void 0;
493
596
  if (v == null) {
494
597
  x = 'null';
@@ -520,17 +623,17 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
520
623
  }
521
624
  if (!valid || colSet.length === 0 || colQuery.length === 0) {
522
625
  if (notSkipInvalid) {
523
- return null;
626
+ return undefined;
524
627
  }
525
628
  }
526
629
  else {
527
630
  var ver = meta.version;
528
631
  if (ver && ver.length > 0) {
529
- var v = obj[ver];
632
+ var v = o[ver];
530
633
  if (typeof v === 'number' && !isNaN(v)) {
531
634
  var attr = attrs[ver];
532
635
  if (attr) {
533
- var field = (attr.field ? attr.field : ver);
636
+ var field = (attr.column ? attr.column : ver);
534
637
  colSet.push(field + "=" + (1 + v));
535
638
  colQuery.push(field + "=" + v);
536
639
  }
@@ -546,8 +649,8 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
546
649
  exports.buildToUpdateBatch = buildToUpdateBatch;
547
650
  function version(attrs) {
548
651
  var ks = Object.keys(attrs);
549
- for (var _i = 0, ks_9 = ks; _i < ks_9.length; _i++) {
550
- var k = ks_9[_i];
652
+ for (var _i = 0, ks_10 = ks; _i < ks_10.length; _i++) {
653
+ var k = ks_10[_i];
551
654
  var attr = attrs[k];
552
655
  if (attr.version) {
553
656
  attr.name = k;
@@ -559,22 +662,22 @@ function version(attrs) {
559
662
  exports.version = version;
560
663
  function key(attrs) {
561
664
  var ks = Object.keys(attrs);
562
- for (var _i = 0, ks_10 = ks; _i < ks_10.length; _i++) {
563
- var k = ks_10[_i];
665
+ for (var _i = 0, ks_11 = ks; _i < ks_11.length; _i++) {
666
+ var k = ks_11[_i];
564
667
  var attr = attrs[k];
565
668
  attr.name = k;
566
669
  if (attr.key) {
567
670
  return attr;
568
671
  }
569
672
  }
570
- return null;
673
+ return undefined;
571
674
  }
572
675
  exports.key = key;
573
676
  function keys(attrs) {
574
677
  var ks = Object.keys(attrs);
575
678
  var ats = [];
576
- for (var _i = 0, ks_11 = ks; _i < ks_11.length; _i++) {
577
- var k = ks_11[_i];
679
+ for (var _i = 0, ks_12 = ks; _i < ks_12.length; _i++) {
680
+ var k = ks_12[_i];
578
681
  var attr = attrs[k];
579
682
  attr.name = k;
580
683
  if (attr.key) {
@@ -587,11 +690,11 @@ exports.keys = keys;
587
690
  function buildMap(attrs) {
588
691
  var mp = {};
589
692
  var ks = Object.keys(attrs);
590
- for (var _i = 0, ks_12 = ks; _i < ks_12.length; _i++) {
591
- var k = ks_12[_i];
693
+ for (var _i = 0, ks_13 = ks; _i < ks_13.length; _i++) {
694
+ var k = ks_13[_i];
592
695
  var attr = attrs[k];
593
696
  attr.name = k;
594
- var field = (attr.field ? attr.field : k);
697
+ var field = (attr.column ? attr.column : k);
595
698
  var s = field.toLowerCase();
596
699
  if (s !== k) {
597
700
  mp[s] = k;
@@ -606,10 +709,10 @@ function metadata(attrs) {
606
709
  var ats = [];
607
710
  var bools = [];
608
711
  var fields = [];
609
- var ver;
610
712
  var isMap = false;
611
- for (var _i = 0, ks_13 = ks; _i < ks_13.length; _i++) {
612
- var k = ks_13[_i];
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];
613
716
  var attr = attrs[k];
614
717
  attr.name = k;
615
718
  if (attr.key) {
@@ -622,16 +725,15 @@ function metadata(attrs) {
622
725
  bools.push(attr);
623
726
  }
624
727
  if (attr.version) {
625
- ver = k;
728
+ m.version = k;
626
729
  }
627
- var field = (attr.field ? attr.field : k);
730
+ var field = (attr.column ? attr.column : k);
628
731
  var s = field.toLowerCase();
629
732
  if (s !== k) {
630
733
  mp[s] = k;
631
734
  isMap = true;
632
735
  }
633
736
  }
634
- var m = { keys: ats, fields: fields, version: ver };
635
737
  if (isMap) {
636
738
  m.map = mp;
637
739
  }
@@ -645,7 +747,7 @@ function attributes(attrs, isKey) {
645
747
  var ks = [];
646
748
  for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {
647
749
  var s = attrs_1[_i];
648
- var a = { name: s, field: s, key: isKey };
750
+ var a = { name: s, column: s, key: isKey };
649
751
  ks.push(a);
650
752
  }
651
753
  return ks;