query-core 0.1.7 → 0.1.11
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/SearchBuilder.js +16 -8
- package/lib/batch.js +1 -1
- package/lib/build.js +216 -114
- package/lib/client.js +180 -0
- package/lib/index.js +15 -70
- package/lib/map.js +75 -0
- package/lib/query.js +12 -8
- package/lib/search.js +4 -1
- package/lib/services.js +24 -16
- package/package.json +1 -1
- package/src/SearchBuilder.ts +23 -14
- package/src/batch.ts +2 -2
- package/src/build.ts +191 -100
- package/src/client.ts +202 -0
- package/src/index.ts +32 -63
- package/src/map.ts +67 -0
- package/src/metadata.ts +19 -5
- package/src/query.ts +19 -15
- package/src/search.ts +11 -8
- package/src/services.ts +32 -24
- package/tsconfig.json +1 -0
package/lib/SearchBuilder.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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,
|
|
49
|
-
var
|
|
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.
|
|
54
|
-
var q2 =
|
|
55
|
-
if (
|
|
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
|
|
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,
|
|
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(
|
|
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].
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
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].
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
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].
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
|
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 =
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
219
|
-
var
|
|
220
|
-
var
|
|
221
|
-
|
|
222
|
-
var
|
|
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
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
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
|
-
|
|
262
|
-
|
|
263
|
-
|
|
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
|
-
|
|
267
|
-
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
-
|
|
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,
|
|
304
|
-
var k =
|
|
305
|
-
var v =
|
|
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.
|
|
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
|
|
456
|
+
var na = (pk.name ? pk.name : '');
|
|
457
|
+
var v = o[na];
|
|
358
458
|
if (!v) {
|
|
359
|
-
return
|
|
459
|
+
return undefined;
|
|
360
460
|
}
|
|
361
461
|
else {
|
|
362
|
-
var attr = attrs[
|
|
363
|
-
var field = (attr.
|
|
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 =
|
|
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.
|
|
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
|
|
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
|
|
527
|
+
return undefined;
|
|
428
528
|
}
|
|
429
|
-
for (var _i = 0,
|
|
430
|
-
var obj =
|
|
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(
|
|
533
|
+
var ks = Object.keys(o);
|
|
433
534
|
var colSet = [];
|
|
434
535
|
var colQuery = [];
|
|
435
536
|
var args = [];
|
|
436
|
-
for (var _a = 0,
|
|
437
|
-
var k =
|
|
438
|
-
var v =
|
|
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.
|
|
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
|
|
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[
|
|
491
|
-
var field = (attr.
|
|
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
|
|
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 =
|
|
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.
|
|
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,
|
|
550
|
-
var k =
|
|
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,
|
|
563
|
-
var k =
|
|
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
|
|
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,
|
|
577
|
-
var k =
|
|
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,
|
|
591
|
-
var k =
|
|
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.
|
|
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
|
-
|
|
612
|
-
|
|
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
|
-
|
|
728
|
+
m.version = k;
|
|
626
729
|
}
|
|
627
|
-
var field = (attr.
|
|
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,
|
|
750
|
+
var a = { name: s, column: s, key: isKey };
|
|
649
751
|
ks.push(a);
|
|
650
752
|
}
|
|
651
753
|
return ks;
|