query-core 0.1.10 → 0.1.14

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 CHANGED
@@ -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: [] };
@@ -32,7 +32,7 @@ function select(obj, table, ks, buildParam, i) {
32
32
  for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
33
33
  var k = ks_1[_i];
34
34
  if (k.name) {
35
- var field = (k.field ? k.field : k.name);
35
+ var field = (k.column ? k.column : k.name);
36
36
  cols.push(field + " = " + buildParam(i++));
37
37
  args.push(obj[k.name]);
38
38
  }
@@ -53,7 +53,7 @@ function exist(obj, table, ks, buildParam, col, i) {
53
53
  col = '*';
54
54
  }
55
55
  if (ks.length === 1) {
56
- var field = (ks[0].field ? ks[0].field : ks[0].name);
56
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
57
57
  if (typeof obj === 'number') {
58
58
  var query = "select " + col + " from " + table + " where " + field + " = " + obj;
59
59
  return { query: query, params: [] };
@@ -69,7 +69,7 @@ function exist(obj, table, ks, buildParam, col, i) {
69
69
  for (var _i = 0, ks_2 = ks; _i < ks_2.length; _i++) {
70
70
  var k = ks_2[_i];
71
71
  if (k.name) {
72
- var field = (k.field ? k.field : k.name);
72
+ var field = (k.column ? k.column : k.name);
73
73
  cols.push(field + " = " + buildParam(i++));
74
74
  args.push(obj[k.name]);
75
75
  }
@@ -87,7 +87,7 @@ function buildToDelete(obj, table, ks, buildParam, i) {
87
87
  i = 1;
88
88
  }
89
89
  if (ks.length === 1) {
90
- var field = (ks[0].field ? ks[0].field : ks[0].name);
90
+ var field = (ks[0].column ? ks[0].column : ks[0].name);
91
91
  if (typeof obj === 'number') {
92
92
  var query = "delete from " + table + " where " + field + " = " + obj;
93
93
  return { query: query, params: [] };
@@ -103,7 +103,7 @@ function buildToDelete(obj, table, ks, buildParam, i) {
103
103
  for (var _i = 0, ks_3 = ks; _i < ks_3.length; _i++) {
104
104
  var k = ks_3[_i];
105
105
  if (k.name) {
106
- var field = (k.field ? k.field : k.name);
106
+ var field = (k.column ? k.column : k.name);
107
107
  cols.push(field + " = " + buildParam(i++));
108
108
  args.push(obj[k.name]);
109
109
  }
@@ -145,7 +145,7 @@ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
145
145
  v = attr.default;
146
146
  }
147
147
  if (v !== undefined && v != null) {
148
- var field = (attr.field ? attr.field : k);
148
+ var field = (attr.column ? attr.column : k);
149
149
  cols.push(field);
150
150
  if (k === ver) {
151
151
  isVersion = true;
@@ -191,7 +191,7 @@ function buildToInsert(obj, table, attrs, buildParam, ver, i) {
191
191
  }
192
192
  if (!isVersion && ver && ver.length > 0) {
193
193
  var attr = attrs[ver];
194
- var field = (attr.field ? attr.field : ver);
194
+ var field = (attr.column ? attr.column : ver);
195
195
  cols.push(field);
196
196
  values.push("" + 1);
197
197
  }
@@ -230,7 +230,7 @@ function buildToInsertBatch(objs, table, attrs, buildParam, ver, i) {
230
230
  var k = ks_5[_i];
231
231
  var attr = attrs[k];
232
232
  if (attr && !attr.ignored && !attr.noinsert) {
233
- var field = (attr.field ? attr.field : k);
233
+ var field = (attr.column ? attr.column : k);
234
234
  cols.push(field);
235
235
  }
236
236
  }
@@ -311,7 +311,7 @@ function buildToInsertBatch(objs, table, attrs, buildParam, ver, i) {
311
311
  v = attr.default;
312
312
  }
313
313
  if (v !== undefined && v != null) {
314
- var field = (attr.field ? attr.field : k);
314
+ var field = (attr.column ? attr.column : k);
315
315
  cols.push(field);
316
316
  if (k === ver) {
317
317
  isVersion = true;
@@ -357,7 +357,7 @@ function buildToInsertBatch(objs, table, attrs, buildParam, ver, i) {
357
357
  }
358
358
  if (!isVersion && ver && ver.length > 0) {
359
359
  var attr = attrs[ver];
360
- var field = (attr.field ? attr.field : ver);
360
+ var field = (attr.column ? attr.column : ver);
361
361
  cols.push(field);
362
362
  values.push("" + 1);
363
363
  }
@@ -410,7 +410,7 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
410
410
  pks.push(attr);
411
411
  }
412
412
  else if (!attr.noupdate) {
413
- var field = (attr.field ? attr.field : k);
413
+ var field = (attr.column ? attr.column : k);
414
414
  var x = void 0;
415
415
  if (v == null) {
416
416
  x = 'null';
@@ -460,7 +460,7 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
460
460
  }
461
461
  else {
462
462
  var attr = attrs[na];
463
- var field = (attr.field ? attr.field : pk.name);
463
+ var field = (attr.column ? attr.column : pk.name);
464
464
  var x = void 0;
465
465
  if (v == null) {
466
466
  x = 'null';
@@ -495,7 +495,7 @@ function buildToUpdate(obj, table, attrs, buildParam, ver, i) {
495
495
  if (typeof v === 'number' && !isNaN(v)) {
496
496
  var attr = attrs[ver];
497
497
  if (attr) {
498
- var field = (attr.field ? attr.field : ver);
498
+ var field = (attr.column ? attr.column : ver);
499
499
  colSet.push(field + "=" + (1 + v));
500
500
  colQuery.push(field + "=" + v);
501
501
  }
@@ -541,7 +541,7 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
541
541
  var attr = attrs[k];
542
542
  attr.name = k;
543
543
  if (attr && !attr.ignored && !attr.key && !attr.version && !attr.noupdate) {
544
- var field = (attr.field ? attr.field : k);
544
+ var field = (attr.column ? attr.column : k);
545
545
  var x = void 0;
546
546
  if (v == null) {
547
547
  x = 'null';
@@ -591,7 +591,7 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
591
591
  }
592
592
  else {
593
593
  var attr = attrs[na];
594
- var field = (attr.field ? attr.field : pk.name);
594
+ var field = (attr.column ? attr.column : pk.name);
595
595
  var x = void 0;
596
596
  if (v == null) {
597
597
  x = 'null';
@@ -633,7 +633,7 @@ function buildToUpdateBatch(objs, table, attrs, buildParam, notSkipInvalid) {
633
633
  if (typeof v === 'number' && !isNaN(v)) {
634
634
  var attr = attrs[ver];
635
635
  if (attr) {
636
- var field = (attr.field ? attr.field : ver);
636
+ var field = (attr.column ? attr.column : ver);
637
637
  colSet.push(field + "=" + (1 + v));
638
638
  colQuery.push(field + "=" + v);
639
639
  }
@@ -694,7 +694,7 @@ function buildMap(attrs) {
694
694
  var k = ks_13[_i];
695
695
  var attr = attrs[k];
696
696
  attr.name = k;
697
- var field = (attr.field ? attr.field : k);
697
+ var field = (attr.column ? attr.column : k);
698
698
  var s = field.toLowerCase();
699
699
  if (s !== k) {
700
700
  mp[s] = k;
@@ -727,7 +727,7 @@ function metadata(attrs) {
727
727
  if (attr.version) {
728
728
  m.version = k;
729
729
  }
730
- var field = (attr.field ? attr.field : k);
730
+ var field = (attr.column ? attr.column : k);
731
731
  var s = field.toLowerCase();
732
732
  if (s !== k) {
733
733
  mp[s] = k;
@@ -747,7 +747,7 @@ function attributes(attrs, isKey) {
747
747
  var ks = [];
748
748
  for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {
749
749
  var s = attrs_1[_i];
750
- var a = { name: s, field: s, key: isKey };
750
+ var a = { name: s, column: s, key: isKey };
751
751
  ks.push(a);
752
752
  }
753
753
  return ks;
package/lib/index.js CHANGED
@@ -4,12 +4,6 @@ function __export(m) {
4
4
  }
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var services_1 = require("./services");
7
- exports.createGenericSearchRepository = services_1.createSqlSearchWriter;
8
- exports.createGenericSearchService = services_1.createSqlSearchWriter;
9
- exports.createRepository = services_1.createSqlSearchWriter;
10
- exports.createService = services_1.createSqlSearchWriter;
11
- exports.createGenericRepository = services_1.createSqlWriter;
12
- exports.createGenericService = services_1.createSqlWriter;
13
7
  exports.SqlLoadRepository = services_1.SqlLoader;
14
8
  exports.SqlViewRepository = services_1.SqlLoader;
15
9
  exports.SqlLoadService = services_1.SqlLoader;
package/lib/query.js CHANGED
@@ -38,8 +38,8 @@ function getField(name, map) {
38
38
  if (typeof x === 'string') {
39
39
  return x;
40
40
  }
41
- if (x.field) {
42
- return x.field;
41
+ if (x.column) {
42
+ return x.column;
43
43
  }
44
44
  return name;
45
45
  }
@@ -106,7 +106,7 @@ function buildQuery(filter, bparam, table, attrs, sort, fields, sq, strExcluding
106
106
  if (v !== undefined && v != null) {
107
107
  var attr = attrs[key];
108
108
  if (attr) {
109
- field = (attr.field ? attr.field : key);
109
+ field = (attr.column ? attr.column : key);
110
110
  if (typeof v === 'string') {
111
111
  if (v.length !== 0) {
112
112
  if (attr.q) {
@@ -280,7 +280,7 @@ function getId(attrs) {
280
280
  var key = qkeys_2[_i];
281
281
  var attr = attrs[key];
282
282
  if (attr.key) {
283
- var field = (attr.field ? attr.field : key);
283
+ var field = (attr.column ? attr.column : key);
284
284
  return field;
285
285
  }
286
286
  }
@@ -296,7 +296,7 @@ function buildFieldsByAttributes(attrs, fields) {
296
296
  var f = fields_1[_i];
297
297
  var attr = attrs[f];
298
298
  if (attr) {
299
- var field = (attr.field ? attr.field : f);
299
+ var field = (attr.column ? attr.column : f);
300
300
  cols.push(field);
301
301
  }
302
302
  }
package/lib/services.js CHANGED
@@ -67,7 +67,7 @@ var SqlLoader = (function () {
67
67
  }
68
68
  };
69
69
  SqlLoader.prototype.exist = function (id, ctx) {
70
- var field = (this.primaryKeys[0].field ? this.primaryKeys[0].field : this.primaryKeys[0].name);
70
+ var field = (this.primaryKeys[0].column ? this.primaryKeys[0].column : this.primaryKeys[0].name);
71
71
  var stmt = build_1.exist(id, this.table, this.primaryKeys, this.param, field);
72
72
  if (!stmt) {
73
73
  throw new Error('cannot build query by id');
@@ -91,18 +91,14 @@ var SqlSearchLoader = (function (_super) {
91
91
  return SqlSearchLoader;
92
92
  }(SqlLoader));
93
93
  exports.SqlSearchLoader = SqlSearchLoader;
94
- function createSqlWriter(table, manager, attrs, buildParam, toDB, fromDB) {
95
- var writer = new SqlWriter(table, manager.query, manager.exec, attrs, buildParam, toDB, fromDB);
96
- return writer;
97
- }
98
- exports.createSqlWriter = createSqlWriter;
99
94
  var SqlWriter = (function (_super) {
100
95
  __extends(SqlWriter, _super);
101
- function SqlWriter(table, query, exec, attrs, buildParam, toDB, fromDB) {
102
- var _this = _super.call(this, table, query, attrs, buildParam, fromDB) || this;
103
- _this.exec = exec;
96
+ function SqlWriter(manager, table, attrs, toDB, fromDB) {
97
+ var _this = _super.call(this, table, manager.query, attrs, manager.param, fromDB) || this;
104
98
  _this.toDB = toDB;
105
99
  var x = build_1.version(attrs);
100
+ _this.exec = manager.exec;
101
+ _this.execBatch = manager.execBatch;
106
102
  if (x) {
107
103
  _this.version = x.name;
108
104
  }
@@ -162,8 +158,8 @@ var SqlWriter = (function (_super) {
162
158
  exports.SqlWriter = SqlWriter;
163
159
  var SqlSearchWriter = (function (_super) {
164
160
  __extends(SqlSearchWriter, _super);
165
- function SqlSearchWriter(find, table, query, exec, attrs, buildParam, toDB, fromDB) {
166
- var _this = _super.call(this, table, query, exec, attrs, buildParam, toDB, fromDB) || this;
161
+ function SqlSearchWriter(find, manager, table, attrs, toDB, fromDB) {
162
+ var _this = _super.call(this, manager, table, attrs, toDB, fromDB) || this;
167
163
  _this.find = find;
168
164
  _this.search = _this.search.bind(_this);
169
165
  return _this;
@@ -174,8 +170,3 @@ var SqlSearchWriter = (function (_super) {
174
170
  return SqlSearchWriter;
175
171
  }(SqlWriter));
176
172
  exports.SqlSearchWriter = SqlSearchWriter;
177
- function createSqlSearchWriter(find, table, manager, attrs, buildParam, toDB, fromDB) {
178
- var writer = new SqlSearchWriter(find, table, manager.query, manager.exec, attrs, buildParam, toDB, fromDB);
179
- return writer;
180
- }
181
- exports.createSqlSearchWriter = createSqlSearchWriter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "query-core",
3
- "version": "0.1.10",
3
+ "version": "0.1.14",
4
4
  "description": "query",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
@@ -21,6 +21,7 @@
21
21
  },
22
22
  "keywords": [
23
23
  "query",
24
+ "query-core",
24
25
  "sql"
25
26
  ]
26
27
  }
package/src/build.ts CHANGED
@@ -15,7 +15,7 @@ export function select<T>(obj: T, table: string, ks: Attribute[], buildParam: (i
15
15
  i = 1;
16
16
  }
17
17
  if (ks.length === 1) {
18
- const field = (ks[0].field ? ks[0].field : ks[0].name);
18
+ const field = (ks[0].column ? ks[0].column : ks[0].name);
19
19
  if (typeof obj === 'number') {
20
20
  const query = `select * from ${table} where ${field} = ${obj}`;
21
21
  return { query, params: [] };
@@ -28,7 +28,7 @@ export function select<T>(obj: T, table: string, ks: Attribute[], buildParam: (i
28
28
  const args: any[] = [];
29
29
  for (const k of ks) {
30
30
  if (k.name) {
31
- const field = (k.field ? k.field : k.name);
31
+ const field = (k.column ? k.column : k.name);
32
32
  cols.push(`${field} = ${buildParam(i++)}`);
33
33
  args.push((obj as any)[k.name]);
34
34
  }
@@ -47,7 +47,7 @@ export function exist<T>(obj: T, table: string, ks: Attribute[], buildParam: (i:
47
47
  col = '*';
48
48
  }
49
49
  if (ks.length === 1) {
50
- const field = (ks[0].field ? ks[0].field : ks[0].name);
50
+ const field = (ks[0].column ? ks[0].column : ks[0].name);
51
51
  if (typeof obj === 'number') {
52
52
  const query = `select ${col} from ${table} where ${field} = ${obj}`;
53
53
  return { query, params: [] };
@@ -60,7 +60,7 @@ export function exist<T>(obj: T, table: string, ks: Attribute[], buildParam: (i:
60
60
  const args: any[] = [];
61
61
  for (const k of ks) {
62
62
  if (k.name) {
63
- const field = (k.field ? k.field : k.name);
63
+ const field = (k.column ? k.column : k.name);
64
64
  cols.push(`${field} = ${buildParam(i++)}`);
65
65
  args.push((obj as any)[k.name]);
66
66
  }
@@ -76,7 +76,7 @@ export function buildToDelete<T>(obj: T, table: string, ks: Attribute[], buildPa
76
76
  i = 1;
77
77
  }
78
78
  if (ks.length === 1) {
79
- const field = (ks[0].field ? ks[0].field : ks[0].name);
79
+ const field = (ks[0].column ? ks[0].column : ks[0].name);
80
80
  if (typeof obj === 'number') {
81
81
  const query = `delete from ${table} where ${field} = ${obj}`;
82
82
  return { query, params: [] };
@@ -89,7 +89,7 @@ export function buildToDelete<T>(obj: T, table: string, ks: Attribute[], buildPa
89
89
  const args: any[] = [];
90
90
  for (const k of ks) {
91
91
  if (k.name) {
92
- const field = (k.field ? k.field : k.name);
92
+ const field = (k.column ? k.column : k.name);
93
93
  cols.push(`${field} = ${buildParam(i++)}`);
94
94
  args.push((obj as any)[k.name]);
95
95
  }
@@ -126,7 +126,7 @@ export function buildToInsert<T>(obj: T, table: string, attrs: Attributes, build
126
126
  v = attr.default;
127
127
  }
128
128
  if (v !== undefined && v != null) {
129
- const field = (attr.field ? attr.field : k);
129
+ const field = (attr.column ? attr.column : k);
130
130
  cols.push(field);
131
131
  if (k === ver) {
132
132
  isVersion = true;
@@ -165,7 +165,7 @@ export function buildToInsert<T>(obj: T, table: string, attrs: Attributes, build
165
165
  }
166
166
  if (!isVersion && ver && ver.length > 0) {
167
167
  const attr = attrs[ver];
168
- const field = (attr.field ? attr.field : ver);
168
+ const field = (attr.column ? attr.column : ver);
169
169
  cols.push(field);
170
170
  values.push(`${1}`);
171
171
  }
@@ -199,7 +199,7 @@ export function buildToInsertBatch<T>(objs: T[], table: string, attrs: Attribute
199
199
  for (const k of ks) {
200
200
  const attr = attrs[k];
201
201
  if (attr && !attr.ignored && !attr.noinsert) {
202
- const field = (attr.field ? attr.field : k);
202
+ const field = (attr.column ? attr.column : k);
203
203
  cols.push(field);
204
204
  }
205
205
  }
@@ -268,7 +268,7 @@ export function buildToInsertBatch<T>(objs: T[], table: string, attrs: Attribute
268
268
  v = attr.default;
269
269
  }
270
270
  if (v !== undefined && v != null) {
271
- const field = (attr.field ? attr.field : k);
271
+ const field = (attr.column ? attr.column : k);
272
272
  cols.push(field);
273
273
  if (k === ver) {
274
274
  isVersion = true;
@@ -307,7 +307,7 @@ export function buildToInsertBatch<T>(objs: T[], table: string, attrs: Attribute
307
307
  }
308
308
  if (!isVersion && ver && ver.length > 0) {
309
309
  const attr = attrs[ver];
310
- const field = (attr.field ? attr.field : ver);
310
+ const field = (attr.column ? attr.column : ver);
311
311
  cols.push(field);
312
312
  values.push(`${1}`);
313
313
  }
@@ -354,7 +354,7 @@ export function buildToUpdate<T>(obj: T, table: string, attrs: Attributes, build
354
354
  if (attr.key) {
355
355
  pks.push(attr);
356
356
  } else if (!attr.noupdate) {
357
- const field = (attr.field ? attr.field : k);
357
+ const field = (attr.column ? attr.column : k);
358
358
  let x: string;
359
359
  if (v == null) {
360
360
  x = 'null';
@@ -395,7 +395,7 @@ export function buildToUpdate<T>(obj: T, table: string, attrs: Attributes, build
395
395
  return undefined;
396
396
  } else {
397
397
  const attr = attrs[na];
398
- const field = (attr.field ? attr.field : pk.name);
398
+ const field = (attr.column ? attr.column : pk.name);
399
399
  let x: string;
400
400
  if (v == null) {
401
401
  x = 'null';
@@ -425,7 +425,7 @@ export function buildToUpdate<T>(obj: T, table: string, attrs: Attributes, build
425
425
  if (typeof v === 'number' && !isNaN(v)) {
426
426
  const attr = attrs[ver];
427
427
  if (attr) {
428
- const field = (attr.field ? attr.field : ver);
428
+ const field = (attr.column ? attr.column : ver);
429
429
  colSet.push(`${field}=${(1 + v)}`);
430
430
  colQuery.push(`${field}=${v}`);
431
431
  }
@@ -465,7 +465,7 @@ export function buildToUpdateBatch<T>(objs: T[], table: string, attrs: Attribute
465
465
  const attr = attrs[k];
466
466
  attr.name = k;
467
467
  if (attr && !attr.ignored && !attr.key && !attr.version && !attr.noupdate) {
468
- const field = (attr.field ? attr.field : k);
468
+ const field = (attr.column ? attr.column : k);
469
469
  let x: string;
470
470
  if (v == null) {
471
471
  x = 'null';
@@ -506,7 +506,7 @@ export function buildToUpdateBatch<T>(objs: T[], table: string, attrs: Attribute
506
506
  valid = false;
507
507
  } else {
508
508
  const attr = attrs[na];
509
- const field = (attr.field ? attr.field : pk.name);
509
+ const field = (attr.column ? attr.column : pk.name);
510
510
  let x: string;
511
511
  if (v == null) {
512
512
  x = 'null';
@@ -542,7 +542,7 @@ export function buildToUpdateBatch<T>(objs: T[], table: string, attrs: Attribute
542
542
  if (typeof v === 'number' && !isNaN(v)) {
543
543
  const attr = attrs[ver];
544
544
  if (attr) {
545
- const field = (attr.field ? attr.field : ver);
545
+ const field = (attr.column ? attr.column : ver);
546
546
  colSet.push(`${field}=${(1 + v)}`);
547
547
  colQuery.push(`${field}=${v}`);
548
548
  }
@@ -595,7 +595,7 @@ export function buildMap(attrs: Attributes): StringMap {
595
595
  for (const k of ks) {
596
596
  const attr = attrs[k];
597
597
  attr.name = k;
598
- const field = (attr.field ? attr.field : k);
598
+ const field = (attr.column ? attr.column : k);
599
599
  const s = field.toLowerCase();
600
600
  if (s !== k) {
601
601
  mp[s] = k;
@@ -633,7 +633,7 @@ export function metadata(attrs: Attributes): Metadata {
633
633
  if (attr.version) {
634
634
  m.version = k;
635
635
  }
636
- const field = (attr.field ? attr.field : k);
636
+ const field = (attr.column ? attr.column : k);
637
637
  const s = field.toLowerCase();
638
638
  if (s !== k) {
639
639
  mp[s] = k;
@@ -651,7 +651,7 @@ export function metadata(attrs: Attributes): Metadata {
651
651
  export function attributes(attrs: string[], isKey?: boolean) {
652
652
  const ks: Attribute[] = [];
653
653
  for (const s of attrs) {
654
- const a: Attribute = {name: s, field: s, key: isKey};
654
+ const a: Attribute = {name: s, column: s, key: isKey};
655
655
  ks.push(a);
656
656
  }
657
657
  return ks;
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import {Attribute, StringMap} from './metadata';
2
- import {createSqlSearchWriter, createSqlWriter, SqlLoader, SqlSearchLoader, SqlSearchWriter, SqlWriter} from './services';
2
+ import {SqlLoader, SqlSearchLoader, SqlSearchWriter, SqlWriter} from './services';
3
3
  export {SqlLoader as SqlLoadRepository};
4
4
  export {SqlLoader as SqlViewRepository};
5
5
  export {SqlWriter as SqlGenericRepository};
@@ -23,12 +23,6 @@ export {SqlSearchWriter as SqlRepository};
23
23
  export {SqlSearchWriter as SqlService};
24
24
  export {SqlSearchWriter as Repository};
25
25
  export {SqlSearchWriter as Service};
26
- export {createSqlWriter as createGenericRepository};
27
- export {createSqlWriter as createGenericService};
28
- export {createSqlSearchWriter as createGenericSearchRepository};
29
- export {createSqlSearchWriter as createGenericSearchService};
30
- export {createSqlSearchWriter as createRepository};
31
- export {createSqlSearchWriter as createService};
32
26
 
33
27
  export * from './metadata';
34
28
  export * from './build';
package/src/metadata.ts CHANGED
@@ -19,9 +19,9 @@ export interface Statement {
19
19
  }
20
20
 
21
21
  export type DataType = 'ObjectId' | 'date' | 'datetime' | 'time'
22
- | 'boolean' | 'number' | 'integer' | 'string' | 'text'
23
- | 'object' | 'array' | 'binary'
24
- | 'primitives' | 'booleans' | 'numbers' | 'integers' | 'strings' | 'dates' | 'datetimes' | 'times';
22
+ | 'boolean' | 'number' | 'integer' | 'string' | 'text'
23
+ | 'object' | 'array' | 'binary'
24
+ | 'primitives' | 'booleans' | 'numbers' | 'integers' | 'strings' | 'dates' | 'datetimes' | 'times';
25
25
  export type FormatType = 'currency' | 'percentage' | 'email' | 'url' | 'phone' | 'fax' | 'ipv4' | 'ipv6';
26
26
  export type MatchType = 'equal' | 'prefix' | 'contain' | 'max' | 'min'; // contain: default for string, min: default for Date, number
27
27
 
@@ -29,28 +29,41 @@ export interface Model {
29
29
  name?: string;
30
30
  attributes: Attributes;
31
31
  source?: string;
32
+ table?: string;
33
+ collection?: string;
34
+ model?: any;
35
+ schema?: any;
32
36
  }
33
37
  export interface Attribute {
34
38
  name?: string;
35
39
  field?: string;
40
+ column?: string;
36
41
  type?: DataType;
37
42
  format?: FormatType;
38
43
  required?: boolean;
39
44
  match?: MatchType;
40
- default?: string|number|Date;
45
+ default?: string|number|Date|boolean;
41
46
  key?: boolean;
47
+ unique?: boolean;
48
+ enum?: string[] | number[];
42
49
  q?: boolean;
43
50
  noinsert?: boolean;
44
51
  noupdate?: boolean;
52
+ nopatch?: boolean;
45
53
  version?: boolean;
46
- ignored?: boolean;
47
54
  length?: number;
48
55
  min?: number;
49
56
  max?: number;
50
57
  gt?: number;
51
58
  lt?: number;
52
- exp?: RegExp|string;
59
+ precision?: number;
60
+ scale?: number;
61
+ exp?: RegExp | string;
53
62
  code?: string;
63
+ noformat?: boolean;
64
+ ignored?: boolean;
65
+ jsonField?: string;
66
+ link?: string;
54
67
  typeof?: Attributes;
55
68
  true?: string|number;
56
69
  false?: string|number;
package/src/query.ts CHANGED
@@ -38,8 +38,8 @@ export function getField(name: string, map?: Attributes|StringMap): string {
38
38
  if (typeof x === 'string') {
39
39
  return x;
40
40
  }
41
- if (x.field) {
42
- return x.field;
41
+ if (x.column) {
42
+ return x.column;
43
43
  }
44
44
  return name;
45
45
  }
@@ -100,7 +100,7 @@ export function buildQuery<S>(filter: S, bparam: LikeType|((i: number ) => strin
100
100
  if (v !== undefined && v != null) {
101
101
  const attr: Attribute = attrs[key];
102
102
  if (attr) {
103
- field = (attr.field ? attr.field : key);
103
+ field = (attr.column ? attr.column : key);
104
104
  if (typeof v === 'string') {
105
105
  if (v.length !== 0) {
106
106
  if (attr.q) {
@@ -247,7 +247,7 @@ export function getId(attrs: Attributes): string|undefined {
247
247
  for (const key of qkeys) {
248
248
  const attr = attrs[key];
249
249
  if (attr.key) {
250
- const field = (attr.field ? attr.field : key);
250
+ const field = (attr.column ? attr.column : key);
251
251
  return field;
252
252
  }
253
253
  }
@@ -261,7 +261,7 @@ export function buildFieldsByAttributes(attrs: Attributes, fields?: string[]): s
261
261
  for (const f of fields) {
262
262
  const attr = attrs[f];
263
263
  if (attr) {
264
- const field = (attr.field ? attr.field : f);
264
+ const field = (attr.column ? attr.column : f);
265
265
  cols.push(field);
266
266
  }
267
267
  }
package/src/services.ts CHANGED
@@ -15,8 +15,8 @@ export class SqlLoader<T, ID> {
15
15
  constructor(public table: string,
16
16
  public query: (sql: string, args?: any[], m?: StringMap, bools?: Attribute[], ctx?: any) => Promise<T[]>,
17
17
  attrs: Attributes|string[],
18
- protected param: (i: number) => string,
19
- protected fromDB?: (v: T) => T) {
18
+ public param: (i: number) => string,
19
+ public fromDB?: (v: T) => T) {
20
20
  if (Array.isArray(attrs)) {
21
21
  this.primaryKeys = attributes(attrs);
22
22
  this.attributes = {} as any;
@@ -61,7 +61,7 @@ export class SqlLoader<T, ID> {
61
61
  }
62
62
  }
63
63
  exist(id: ID, ctx?: any): Promise<boolean> {
64
- const field = (this.primaryKeys[0].field ? this.primaryKeys[0].field : this.primaryKeys[0].name);
64
+ const field = (this.primaryKeys[0].column ? this.primaryKeys[0].column : this.primaryKeys[0].name);
65
65
  const stmt = exist<ID>(id, this.table, this.primaryKeys, this.param, field);
66
66
  if (!stmt) {
67
67
  throw new Error('cannot build query by id');
@@ -85,31 +85,31 @@ export class SqlSearchLoader<T, ID, S extends Filter> extends SqlLoader<T, ID> {
85
85
  }
86
86
  }
87
87
  export interface Manager {
88
+ driver: string;
89
+ param(i: number): string;
88
90
  exec(sql: string, args?: any[], ctx?: any): Promise<number>;
89
91
  execBatch(statements: Statement[], firstSuccess?: boolean, ctx?: any): Promise<number>;
90
92
  query<T>(sql: string, args?: any[], m?: StringMap, bools?: Attribute[], ctx?: any): Promise<T[]>;
91
93
  }
92
- export function createSqlWriter<T, ID>(table: string,
93
- manager: Manager,
94
- attrs: Attributes,
95
- buildParam: (i: number) => string,
96
- toDB?: (v: T) => T,
97
- fromDB?: (v: T) => T) {
98
- const writer = new SqlWriter<T, ID>(table, manager.query, manager.exec, attrs, buildParam, toDB, fromDB);
99
- return writer;
94
+ export interface DB {
95
+ driver: string;
96
+ param(i: number): string;
97
+ exec(sql: string, args?: any[], ctx?: any): Promise<number>;
98
+ execBatch(statements: Statement[], firstSuccess?: boolean, ctx?: any): Promise<number>;
99
+ query<T>(sql: string, args?: any[], m?: StringMap, bools?: Attribute[], ctx?: any): Promise<T[]>;
100
100
  }
101
-
102
101
  export class SqlWriter<T, ID> extends SqlLoader<T, ID> {
103
102
  version?: string;
104
- constructor(table: string,
105
- query: (sql: string, args?: any[], m?: StringMap, ctx?: any) => Promise<T[]>,
106
- public exec: (sql: string, args?: any[], ctx?: any) => Promise<number>,
103
+ exec: (sql: string, args?: any[], ctx?: any) => Promise<number>;
104
+ execBatch: (statements: Statement[], firstSuccess?: boolean, ctx?: any) => Promise<number>;
105
+ constructor(manager: Manager, table: string,
107
106
  attrs: Attributes,
108
- buildParam: (i: number) => string,
109
- protected toDB?: (v: T) => T,
107
+ public toDB?: (v: T) => T,
110
108
  fromDB?: (v: T) => T) {
111
- super(table, query, attrs, buildParam, fromDB);
109
+ super(table, manager.query, attrs, manager.param, fromDB);
112
110
  const x = version(attrs);
111
+ this.exec = manager.exec;
112
+ this.execBatch = manager.execBatch;
113
113
  if (x) {
114
114
  this.version = x.name;
115
115
  }
@@ -163,28 +163,15 @@ export class SqlWriter<T, ID> extends SqlLoader<T, ID> {
163
163
  export class SqlSearchWriter<T, ID, S extends Filter> extends SqlWriter<T, ID> {
164
164
  constructor(
165
165
  protected find: (s: S, limit?: number, offset?: number|string, fields?: string[]) => Promise<SearchResult<T>>,
166
+ manager: Manager,
166
167
  table: string,
167
- query: (sql: string, args?: any[], m?: StringMap, ctx?: any) => Promise<T[]>,
168
- exec: (sql: string, args?: any[], ctx?: any) => Promise<number>,
169
168
  attrs: Attributes,
170
- buildParam: (i: number) => string,
171
169
  toDB?: (v: T) => T,
172
170
  fromDB?: (v: T) => T) {
173
- super(table, query, exec, attrs, buildParam, toDB, fromDB);
171
+ super(manager, table, attrs, toDB, fromDB);
174
172
  this.search = this.search.bind(this);
175
173
  }
176
174
  search(s: S, limit?: number, offset?: number|string, fields?: string[]): Promise<SearchResult<T>> {
177
175
  return this.find(s, limit, offset, fields);
178
176
  }
179
177
  }
180
- export function createSqlSearchWriter<T, ID, S extends Filter>(
181
- find: (s: S, limit?: number, offset?: number|string, fields?: string[]) => Promise<SearchResult<T>>,
182
- table: string,
183
- manager: Manager,
184
- attrs: Attributes,
185
- buildParam: (i: number) => string,
186
- toDB?: (v: T) => T,
187
- fromDB?: (v: T) => T) {
188
- const writer = new SqlSearchWriter<T, ID, S>(find, table, manager.query, manager.exec, attrs, buildParam, toDB, fromDB);
189
- return writer;
190
- }