query-core 0.2.1 → 0.2.3
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 +25 -25
- package/lib/services.js +221 -357
- package/package.json +1 -1
- package/src/SearchBuilder.ts +9 -9
- package/src/metadata.ts +0 -18
- package/src/services.ts +14 -10
package/lib/SearchBuilder.js
CHANGED
|
@@ -16,10 +16,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
var build_1 = require("./build");
|
|
17
17
|
var query_1 = require("./query");
|
|
18
18
|
var search_1 = require("./search");
|
|
19
|
-
exports.postgres =
|
|
20
|
-
exports.mssql =
|
|
21
|
-
exports.mysql =
|
|
22
|
-
exports.sqlite =
|
|
19
|
+
exports.postgres = "postgres";
|
|
20
|
+
exports.mssql = "mssql";
|
|
21
|
+
exports.mysql = "mysql";
|
|
22
|
+
exports.sqlite = "sqlite";
|
|
23
23
|
var SearchBuilder = (function () {
|
|
24
24
|
function SearchBuilder(query, table, attributes, provider, buildQ, fromDB, sort, q, excluding, buildSort, buildParam, total) {
|
|
25
25
|
this.query = query;
|
|
@@ -35,9 +35,9 @@ var SearchBuilder = (function () {
|
|
|
35
35
|
this.bools = meta.bools;
|
|
36
36
|
}
|
|
37
37
|
this.buildQuery = buildQ ? buildQ : query_1.buildQuery;
|
|
38
|
-
this.buildSort =
|
|
39
|
-
this.q =
|
|
40
|
-
this.excluding =
|
|
38
|
+
this.buildSort = buildSort ? buildSort : query_1.buildSort;
|
|
39
|
+
this.q = q && q.length > 0 ? q : "q";
|
|
40
|
+
this.excluding = excluding && excluding.length > 0 ? excluding : "excluding";
|
|
41
41
|
this.search = this.search.bind(this);
|
|
42
42
|
if (buildParam) {
|
|
43
43
|
this.param = buildParam;
|
|
@@ -56,24 +56,24 @@ var SearchBuilder = (function () {
|
|
|
56
56
|
this.param = build_1.param;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
this.total =
|
|
59
|
+
this.total = total && total.length > 0 ? total : "total";
|
|
60
60
|
}
|
|
61
|
-
SearchBuilder.prototype.search = function (
|
|
62
|
-
var
|
|
63
|
-
if (typeof
|
|
64
|
-
|
|
61
|
+
SearchBuilder.prototype.search = function (filter, limit, page, fields) {
|
|
62
|
+
var ipage = 0;
|
|
63
|
+
if (typeof page === "number" && page > 0) {
|
|
64
|
+
ipage = page;
|
|
65
65
|
}
|
|
66
|
-
var st =
|
|
67
|
-
var sn =
|
|
68
|
-
delete
|
|
69
|
-
var x =
|
|
70
|
-
var q2 = this.buildQuery(
|
|
66
|
+
var st = this.sort ? this.sort : "sort";
|
|
67
|
+
var sn = filter[st];
|
|
68
|
+
delete filter[st];
|
|
69
|
+
var x = this.provider === exports.postgres ? "ilike" : this.param;
|
|
70
|
+
var q2 = this.buildQuery(filter, x, sn, this.buildSort, this.attributes, this.table, fields, this.q, this.excluding);
|
|
71
71
|
if (!q2) {
|
|
72
|
-
throw new Error(
|
|
72
|
+
throw new Error("Cannot build query");
|
|
73
73
|
}
|
|
74
74
|
var fn = this.fromDB;
|
|
75
75
|
if (fn) {
|
|
76
|
-
return search_1.buildFromQuery(this.query, q2.query, q2.params, limit,
|
|
76
|
+
return search_1.buildFromQuery(this.query, q2.query, q2.params, limit, ipage, this.map, this.bools, this.provider, this.total).then(function (r) {
|
|
77
77
|
if (r.list && r.list.length > 0) {
|
|
78
78
|
r.list = r.list.map(function (o) { return fn(o); });
|
|
79
79
|
return r;
|
|
@@ -84,7 +84,7 @@ var SearchBuilder = (function () {
|
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
else {
|
|
87
|
-
return search_1.buildFromQuery(this.query, q2.query, q2.params, limit,
|
|
87
|
+
return search_1.buildFromQuery(this.query, q2.query, q2.params, limit, ipage, this.map, this.bools, this.provider, this.total);
|
|
88
88
|
}
|
|
89
89
|
};
|
|
90
90
|
return SearchBuilder;
|
|
@@ -116,7 +116,7 @@ var Query = (function (_super) {
|
|
|
116
116
|
Query.prototype.load = function (id, ctx) {
|
|
117
117
|
var stmt = build_1.select(id, this.table, this.primaryKeys, this.param);
|
|
118
118
|
if (!stmt) {
|
|
119
|
-
throw new Error(
|
|
119
|
+
throw new Error("cannot build query by id");
|
|
120
120
|
}
|
|
121
121
|
var fn = this.fromDB;
|
|
122
122
|
if (fn) {
|
|
@@ -131,16 +131,16 @@ var Query = (function (_super) {
|
|
|
131
131
|
});
|
|
132
132
|
}
|
|
133
133
|
else {
|
|
134
|
-
return this.query(stmt.query, stmt.params, this.map).then(function (res) { return (!res || res.length === 0
|
|
134
|
+
return this.query(stmt.query, stmt.params, this.map).then(function (res) { return (!res || res.length === 0 ? null : res[0]); });
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
Query.prototype.exist = function (id, ctx) {
|
|
138
|
-
var field =
|
|
138
|
+
var field = this.primaryKeys[0].column ? this.primaryKeys[0].column : this.primaryKeys[0].name;
|
|
139
139
|
var stmt = build_1.exist(id, this.table, this.primaryKeys, this.param, field);
|
|
140
140
|
if (!stmt) {
|
|
141
|
-
throw new Error(
|
|
141
|
+
throw new Error("cannot build query by id");
|
|
142
142
|
}
|
|
143
|
-
return this.query(stmt.query, stmt.params, this.map, undefined, ctx).then(function (res) { return (!res || res.length === 0
|
|
143
|
+
return this.query(stmt.query, stmt.params, this.map, undefined, ctx).then(function (res) { return (!res || res.length === 0 ? false : true); });
|
|
144
144
|
};
|
|
145
145
|
return Query;
|
|
146
146
|
}(SearchBuilder));
|
package/lib/services.js
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends =
|
|
3
|
-
(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return extendStatics(d, b);
|
|
16
|
-
};
|
|
17
|
-
return function (d, b) {
|
|
18
|
-
extendStatics(d, b);
|
|
19
|
-
function __() {
|
|
20
|
-
this.constructor = d;
|
|
21
|
-
}
|
|
22
|
-
d.prototype =
|
|
23
|
-
b === null
|
|
24
|
-
? Object.create(b)
|
|
25
|
-
: ((__.prototype = b.prototype), new __());
|
|
26
|
-
};
|
|
27
|
-
})();
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
extendStatics(d, b);
|
|
11
|
+
function __() { this.constructor = d; }
|
|
12
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
28
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
16
|
var build_1 = require("./build");
|
|
30
17
|
function useGet(q, table, attrs, param, fromDB) {
|
|
@@ -42,7 +29,8 @@ var SqlLoader = (function () {
|
|
|
42
29
|
if (Array.isArray(attrs)) {
|
|
43
30
|
this.primaryKeys = build_1.attributes(attrs);
|
|
44
31
|
this.attributes = {};
|
|
45
|
-
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
46
34
|
var m = build_1.metadata(attrs);
|
|
47
35
|
this.attributes = attrs;
|
|
48
36
|
this.primaryKeys = m.keys;
|
|
@@ -70,44 +58,30 @@ var SqlLoader = (function () {
|
|
|
70
58
|
}
|
|
71
59
|
var fn = this.fromDB;
|
|
72
60
|
if (fn) {
|
|
73
|
-
return this.query(stmt.query, stmt.params, this.map, ctx).then(function (
|
|
74
|
-
res
|
|
75
|
-
) {
|
|
61
|
+
return this.query(stmt.query, stmt.params, this.map, ctx).then(function (res) {
|
|
76
62
|
if (!res || res.length === 0) {
|
|
77
63
|
return null;
|
|
78
|
-
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
79
66
|
var obj = res[0];
|
|
80
67
|
return fn(obj);
|
|
81
68
|
}
|
|
82
69
|
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return this.query(stmt.query, stmt.params, this.map).then(function (res) { return (!res || res.length === 0 ? null : res[0]); });
|
|
87
73
|
}
|
|
88
74
|
};
|
|
89
75
|
SqlLoader.prototype.exist = function (id, ctx) {
|
|
90
|
-
var field = this.primaryKeys[0].column
|
|
91
|
-
|
|
92
|
-
: this.primaryKeys[0].name;
|
|
93
|
-
var stmt = build_1.exist(
|
|
94
|
-
id,
|
|
95
|
-
this.table,
|
|
96
|
-
this.primaryKeys,
|
|
97
|
-
this.param,
|
|
98
|
-
field
|
|
99
|
-
);
|
|
76
|
+
var field = this.primaryKeys[0].column ? this.primaryKeys[0].column : this.primaryKeys[0].name;
|
|
77
|
+
var stmt = build_1.exist(id, this.table, this.primaryKeys, this.param, field);
|
|
100
78
|
if (!stmt) {
|
|
101
79
|
throw new Error("cannot build query by id");
|
|
102
80
|
}
|
|
103
|
-
return this.query(stmt.query, stmt.params, this.map, undefined, ctx).then(
|
|
104
|
-
function (res) {
|
|
105
|
-
return !res || res.length === 0 ? false : true;
|
|
106
|
-
}
|
|
107
|
-
);
|
|
81
|
+
return this.query(stmt.query, stmt.params, this.map, undefined, ctx).then(function (res) { return (!res || res.length === 0 ? false : true); });
|
|
108
82
|
};
|
|
109
83
|
return SqlLoader;
|
|
110
|
-
}
|
|
84
|
+
}());
|
|
111
85
|
exports.SqlLoader = SqlLoader;
|
|
112
86
|
var QueryRepository = (function () {
|
|
113
87
|
function QueryRepository(db, table, attrs, sort, id) {
|
|
@@ -130,34 +104,17 @@ var QueryRepository = (function () {
|
|
|
130
104
|
for (var i = 1; i <= length; i++) {
|
|
131
105
|
ps.push(this.db.param(i));
|
|
132
106
|
}
|
|
133
|
-
var sql =
|
|
134
|
-
"select * from " +
|
|
135
|
-
this.table +
|
|
136
|
-
" where " +
|
|
137
|
-
this.id +
|
|
138
|
-
" in (" +
|
|
139
|
-
ps.join(",") +
|
|
140
|
-
")";
|
|
107
|
+
var sql = "select * from " + this.table + " where " + this.id + " in (" + ps.join(",") + ")";
|
|
141
108
|
if (this.sort && this.sort.length > 0) {
|
|
142
109
|
sql = sql + " order by " + this.sort;
|
|
143
110
|
}
|
|
144
111
|
return this.db.query(sql, ids, this.map, this.bools);
|
|
145
112
|
};
|
|
146
113
|
return QueryRepository;
|
|
147
|
-
}
|
|
114
|
+
}());
|
|
148
115
|
exports.QueryRepository = QueryRepository;
|
|
149
116
|
var SqlLoadRepository = (function () {
|
|
150
|
-
function SqlLoadRepository(
|
|
151
|
-
query,
|
|
152
|
-
table,
|
|
153
|
-
attrs,
|
|
154
|
-
param,
|
|
155
|
-
id1Field,
|
|
156
|
-
id2Field,
|
|
157
|
-
fromDB,
|
|
158
|
-
id1Col,
|
|
159
|
-
id2Col
|
|
160
|
-
) {
|
|
117
|
+
function SqlLoadRepository(query, table, attrs, param, id1Field, id2Field, fromDB, id1Col, id2Col) {
|
|
161
118
|
this.query = query;
|
|
162
119
|
this.table = table;
|
|
163
120
|
this.param = param;
|
|
@@ -176,23 +133,25 @@ var SqlLoadRepository = (function () {
|
|
|
176
133
|
this.exist = this.exist.bind(this);
|
|
177
134
|
if (id1Col && id1Col.length > 0) {
|
|
178
135
|
this.id1Col = id1Col;
|
|
179
|
-
}
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
180
138
|
var c = attrs[this.id1Field];
|
|
181
139
|
if (c) {
|
|
182
|
-
this.id1Col =
|
|
183
|
-
|
|
184
|
-
|
|
140
|
+
this.id1Col = c.column && c.column.length > 0 ? c.column : this.id1Field;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
185
143
|
this.id1Col = this.id1Field;
|
|
186
144
|
}
|
|
187
145
|
}
|
|
188
146
|
if (id2Col && id2Col.length > 0) {
|
|
189
147
|
this.id2Col = id2Col;
|
|
190
|
-
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
191
150
|
var c = attrs[this.id2Field];
|
|
192
151
|
if (c) {
|
|
193
|
-
this.id2Col =
|
|
194
|
-
|
|
195
|
-
|
|
152
|
+
this.id2Col = c.column && c.column.length > 0 ? c.column : this.id2Field;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
196
155
|
this.id2Col = this.id2Field;
|
|
197
156
|
}
|
|
198
157
|
}
|
|
@@ -206,85 +165,33 @@ var SqlLoadRepository = (function () {
|
|
|
206
165
|
};
|
|
207
166
|
SqlLoadRepository.prototype.load = function (id1, id2, ctx) {
|
|
208
167
|
var _this = this;
|
|
209
|
-
return this.query(
|
|
210
|
-
"select * from " +
|
|
211
|
-
this.table +
|
|
212
|
-
" where " +
|
|
213
|
-
this.id1Col +
|
|
214
|
-
" = " +
|
|
215
|
-
this.param(1) +
|
|
216
|
-
" and " +
|
|
217
|
-
this.id2Col +
|
|
218
|
-
" = " +
|
|
219
|
-
this.param(2),
|
|
220
|
-
[id1, id2],
|
|
221
|
-
this.map,
|
|
222
|
-
undefined,
|
|
223
|
-
ctx
|
|
224
|
-
).then(function (objs) {
|
|
168
|
+
return this.query("select * from " + this.table + " where " + this.id1Col + " = " + this.param(1) + " and " + this.id2Col + " = " + this.param(2), [id1, id2], this.map, undefined, ctx).then(function (objs) {
|
|
225
169
|
if (!objs || objs.length === 0) {
|
|
226
170
|
return null;
|
|
227
|
-
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
228
173
|
var fn = _this.fromDB;
|
|
229
174
|
if (fn) {
|
|
230
175
|
return fn(objs[0]);
|
|
231
|
-
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
232
178
|
return objs[0];
|
|
233
179
|
}
|
|
234
180
|
}
|
|
235
181
|
});
|
|
236
182
|
};
|
|
237
183
|
SqlLoadRepository.prototype.exist = function (id1, id2, ctx) {
|
|
238
|
-
return this.query(
|
|
239
|
-
"select " +
|
|
240
|
-
this.id1Col +
|
|
241
|
-
" from " +
|
|
242
|
-
this.table +
|
|
243
|
-
" where " +
|
|
244
|
-
this.id1Col +
|
|
245
|
-
" = " +
|
|
246
|
-
this.param(1) +
|
|
247
|
-
" and " +
|
|
248
|
-
this.id2Col +
|
|
249
|
-
" = " +
|
|
250
|
-
this.param(2),
|
|
251
|
-
[id1, id2],
|
|
252
|
-
undefined,
|
|
253
|
-
undefined,
|
|
254
|
-
ctx
|
|
255
|
-
).then(function (objs) {
|
|
184
|
+
return this.query("select " + this.id1Col + " from " + this.table + " where " + this.id1Col + " = " + this.param(1) + " and " + this.id2Col + " = " + this.param(2), [id1, id2], undefined, undefined, ctx).then(function (objs) {
|
|
256
185
|
return objs && objs.length > 0 ? true : false;
|
|
257
186
|
});
|
|
258
187
|
};
|
|
259
188
|
return SqlLoadRepository;
|
|
260
|
-
}
|
|
189
|
+
}());
|
|
261
190
|
exports.SqlLoadRepository = SqlLoadRepository;
|
|
262
191
|
var GenericRepository = (function (_super) {
|
|
263
192
|
__extends(GenericRepository, _super);
|
|
264
|
-
function GenericRepository(
|
|
265
|
-
manager,
|
|
266
|
-
table,
|
|
267
|
-
attrs,
|
|
268
|
-
id1Field,
|
|
269
|
-
id2Field,
|
|
270
|
-
toDB,
|
|
271
|
-
fromDB,
|
|
272
|
-
id1Col,
|
|
273
|
-
id2Col
|
|
274
|
-
) {
|
|
275
|
-
var _this =
|
|
276
|
-
_super.call(
|
|
277
|
-
this,
|
|
278
|
-
manager.query,
|
|
279
|
-
table,
|
|
280
|
-
attrs,
|
|
281
|
-
manager.param,
|
|
282
|
-
id1Field,
|
|
283
|
-
id2Field,
|
|
284
|
-
fromDB,
|
|
285
|
-
id1Col,
|
|
286
|
-
id2Col
|
|
287
|
-
) || this;
|
|
193
|
+
function GenericRepository(manager, table, attrs, id1Field, id2Field, toDB, fromDB, id1Col, id2Col) {
|
|
194
|
+
var _this = _super.call(this, manager.query, table, attrs, manager.param, id1Field, id2Field, fromDB, id1Col, id2Col) || this;
|
|
288
195
|
_this.toDB = toDB;
|
|
289
196
|
var x = build_1.version(attrs);
|
|
290
197
|
_this.exec = manager.exec;
|
|
@@ -303,22 +210,18 @@ var GenericRepository = (function (_super) {
|
|
|
303
210
|
if (this.toDB) {
|
|
304
211
|
obj2 = this.toDB(obj);
|
|
305
212
|
}
|
|
306
|
-
var stmt = build_1.buildToInsert(
|
|
307
|
-
obj2,
|
|
308
|
-
this.table,
|
|
309
|
-
this.attributes,
|
|
310
|
-
this.param,
|
|
311
|
-
this.version
|
|
312
|
-
);
|
|
213
|
+
var stmt = build_1.buildToInsert(obj2, this.table, this.attributes, this.param, this.version);
|
|
313
214
|
if (stmt) {
|
|
314
215
|
return this.exec(stmt.query, stmt.params, ctx).catch(function (err) {
|
|
315
216
|
if (err && err.error === "duplicate") {
|
|
316
217
|
return 0;
|
|
317
|
-
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
318
220
|
throw err;
|
|
319
221
|
}
|
|
320
222
|
});
|
|
321
|
-
}
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
322
225
|
return Promise.resolve(0);
|
|
323
226
|
}
|
|
324
227
|
};
|
|
@@ -327,16 +230,11 @@ var GenericRepository = (function (_super) {
|
|
|
327
230
|
if (this.toDB) {
|
|
328
231
|
obj2 = this.toDB(obj);
|
|
329
232
|
}
|
|
330
|
-
var stmt = build_1.buildToUpdate(
|
|
331
|
-
obj2,
|
|
332
|
-
this.table,
|
|
333
|
-
this.attributes,
|
|
334
|
-
this.param,
|
|
335
|
-
this.version
|
|
336
|
-
);
|
|
233
|
+
var stmt = build_1.buildToUpdate(obj2, this.table, this.attributes, this.param, this.version);
|
|
337
234
|
if (stmt) {
|
|
338
235
|
return this.exec(stmt.query, stmt.params, ctx);
|
|
339
|
-
}
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
340
238
|
return Promise.resolve(0);
|
|
341
239
|
}
|
|
342
240
|
};
|
|
@@ -344,23 +242,10 @@ var GenericRepository = (function (_super) {
|
|
|
344
242
|
return this.update(obj, ctx);
|
|
345
243
|
};
|
|
346
244
|
GenericRepository.prototype.delete = function (id1, id2, ctx) {
|
|
347
|
-
return this.exec(
|
|
348
|
-
"delete from " +
|
|
349
|
-
this.table +
|
|
350
|
-
" where " +
|
|
351
|
-
this.id1Col +
|
|
352
|
-
" = " +
|
|
353
|
-
this.param(1) +
|
|
354
|
-
" and " +
|
|
355
|
-
this.id2Col +
|
|
356
|
-
" = " +
|
|
357
|
-
this.param(2),
|
|
358
|
-
[id1, id2],
|
|
359
|
-
ctx
|
|
360
|
-
);
|
|
245
|
+
return this.exec("delete from " + this.table + " where " + this.id1Col + " = " + this.param(1) + " and " + this.id2Col + " = " + this.param(2), [id1, id2], ctx);
|
|
361
246
|
};
|
|
362
247
|
return GenericRepository;
|
|
363
|
-
}
|
|
248
|
+
}(SqlLoadRepository));
|
|
364
249
|
exports.GenericRepository = GenericRepository;
|
|
365
250
|
var SqlSearchLoader = (function (_super) {
|
|
366
251
|
__extends(SqlSearchLoader, _super);
|
|
@@ -374,7 +259,7 @@ var SqlSearchLoader = (function (_super) {
|
|
|
374
259
|
return this.find(s, limit, offset, fields);
|
|
375
260
|
};
|
|
376
261
|
return SqlSearchLoader;
|
|
377
|
-
}
|
|
262
|
+
}(SqlLoader));
|
|
378
263
|
exports.SqlSearchLoader = SqlSearchLoader;
|
|
379
264
|
function log(db, isLog, logger, q, result, r, duration) {
|
|
380
265
|
if (!isLog) {
|
|
@@ -384,15 +269,7 @@ function log(db, isLog, logger, q, result, r, duration) {
|
|
|
384
269
|
if (!logger.isDebugEnabled()) {
|
|
385
270
|
return db;
|
|
386
271
|
}
|
|
387
|
-
return new LogManager(
|
|
388
|
-
db,
|
|
389
|
-
logger.error,
|
|
390
|
-
logger.debug,
|
|
391
|
-
q,
|
|
392
|
-
result,
|
|
393
|
-
r,
|
|
394
|
-
duration
|
|
395
|
-
);
|
|
272
|
+
return new LogManager(db, logger.error, logger.debug, q, result, r, duration);
|
|
396
273
|
}
|
|
397
274
|
if (!logger.isInfoEnabled()) {
|
|
398
275
|
return db;
|
|
@@ -437,34 +314,34 @@ var LogManager = (function () {
|
|
|
437
314
|
return this.db
|
|
438
315
|
.exec(sql, args, ctx)
|
|
439
316
|
.then(function (v) {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
var d = diff(t1);
|
|
443
|
-
var obj = {};
|
|
444
|
-
if (_this.sql.length > 0) {
|
|
445
|
-
obj[_this.sql] = getString(sql, args);
|
|
446
|
-
}
|
|
447
|
-
if (_this.return.length > 0) {
|
|
448
|
-
obj[_this.return] = v;
|
|
449
|
-
}
|
|
450
|
-
obj[_this.duration] = d;
|
|
451
|
-
_this.log("query", obj);
|
|
452
|
-
}
|
|
453
|
-
}, 0);
|
|
454
|
-
return v;
|
|
455
|
-
})
|
|
456
|
-
.catch(function (er) {
|
|
457
|
-
setTimeout(function () {
|
|
317
|
+
setTimeout(function () {
|
|
318
|
+
if (_this.log) {
|
|
458
319
|
var d = diff(t1);
|
|
459
320
|
var obj = {};
|
|
460
321
|
if (_this.sql.length > 0) {
|
|
461
322
|
obj[_this.sql] = getString(sql, args);
|
|
462
323
|
}
|
|
324
|
+
if (_this.return.length > 0) {
|
|
325
|
+
obj[_this.return] = v;
|
|
326
|
+
}
|
|
463
327
|
obj[_this.duration] = d;
|
|
464
|
-
_this.
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
|
|
328
|
+
_this.log("query", obj);
|
|
329
|
+
}
|
|
330
|
+
}, 0);
|
|
331
|
+
return v;
|
|
332
|
+
})
|
|
333
|
+
.catch(function (er) {
|
|
334
|
+
setTimeout(function () {
|
|
335
|
+
var d = diff(t1);
|
|
336
|
+
var obj = {};
|
|
337
|
+
if (_this.sql.length > 0) {
|
|
338
|
+
obj[_this.sql] = getString(sql, args);
|
|
339
|
+
}
|
|
340
|
+
obj[_this.duration] = d;
|
|
341
|
+
_this.error("error query: " + buildString(er));
|
|
342
|
+
}, 0);
|
|
343
|
+
throw er;
|
|
344
|
+
});
|
|
468
345
|
};
|
|
469
346
|
LogManager.prototype.execBatch = function (statements, firstSuccess, ctx) {
|
|
470
347
|
var _this = this;
|
|
@@ -472,34 +349,34 @@ var LogManager = (function () {
|
|
|
472
349
|
return this.db
|
|
473
350
|
.execBatch(statements, firstSuccess, ctx)
|
|
474
351
|
.then(function (v) {
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
var d = diff(t1);
|
|
478
|
-
var obj = {};
|
|
479
|
-
if (_this.sql.length > 0) {
|
|
480
|
-
obj[_this.sql] = JSON.stringify(statements);
|
|
481
|
-
}
|
|
482
|
-
if (_this.return.length > 0) {
|
|
483
|
-
obj[_this.return] = v;
|
|
484
|
-
}
|
|
485
|
-
obj[_this.duration] = d;
|
|
486
|
-
_this.log("exec batch", obj);
|
|
487
|
-
}
|
|
488
|
-
}, 0);
|
|
489
|
-
return v;
|
|
490
|
-
})
|
|
491
|
-
.catch(function (er) {
|
|
492
|
-
setTimeout(function () {
|
|
352
|
+
setTimeout(function () {
|
|
353
|
+
if (_this.log) {
|
|
493
354
|
var d = diff(t1);
|
|
494
355
|
var obj = {};
|
|
495
356
|
if (_this.sql.length > 0) {
|
|
496
357
|
obj[_this.sql] = JSON.stringify(statements);
|
|
497
358
|
}
|
|
359
|
+
if (_this.return.length > 0) {
|
|
360
|
+
obj[_this.return] = v;
|
|
361
|
+
}
|
|
498
362
|
obj[_this.duration] = d;
|
|
499
|
-
_this.
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
|
|
363
|
+
_this.log("exec batch", obj);
|
|
364
|
+
}
|
|
365
|
+
}, 0);
|
|
366
|
+
return v;
|
|
367
|
+
})
|
|
368
|
+
.catch(function (er) {
|
|
369
|
+
setTimeout(function () {
|
|
370
|
+
var d = diff(t1);
|
|
371
|
+
var obj = {};
|
|
372
|
+
if (_this.sql.length > 0) {
|
|
373
|
+
obj[_this.sql] = JSON.stringify(statements);
|
|
374
|
+
}
|
|
375
|
+
obj[_this.duration] = d;
|
|
376
|
+
_this.error("error exec batch: " + buildString(er));
|
|
377
|
+
}, 0);
|
|
378
|
+
throw er;
|
|
379
|
+
});
|
|
503
380
|
};
|
|
504
381
|
LogManager.prototype.query = function (sql, args, m, bools, ctx) {
|
|
505
382
|
var _this = this;
|
|
@@ -507,39 +384,39 @@ var LogManager = (function () {
|
|
|
507
384
|
return this.db
|
|
508
385
|
.query(sql, args, m, bools, ctx)
|
|
509
386
|
.then(function (v) {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
var d = diff(t1);
|
|
513
|
-
var obj = {};
|
|
514
|
-
if (_this.sql.length > 0) {
|
|
515
|
-
obj[_this.sql] = getString(sql, args);
|
|
516
|
-
}
|
|
517
|
-
if (_this.result.length > 0) {
|
|
518
|
-
if (v && v.length > 0) {
|
|
519
|
-
obj[_this.result] = JSON.stringify(v);
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
if (_this.return.length > 0) {
|
|
523
|
-
obj[_this.return] = v ? v.length : 0;
|
|
524
|
-
}
|
|
525
|
-
obj[_this.duration] = d;
|
|
526
|
-
_this.log("query", obj);
|
|
527
|
-
}
|
|
528
|
-
}, 0);
|
|
529
|
-
return v;
|
|
530
|
-
})
|
|
531
|
-
.catch(function (er) {
|
|
532
|
-
setTimeout(function () {
|
|
387
|
+
setTimeout(function () {
|
|
388
|
+
if (_this.log) {
|
|
533
389
|
var d = diff(t1);
|
|
534
390
|
var obj = {};
|
|
535
391
|
if (_this.sql.length > 0) {
|
|
536
392
|
obj[_this.sql] = getString(sql, args);
|
|
537
393
|
}
|
|
394
|
+
if (_this.result.length > 0) {
|
|
395
|
+
if (v && v.length > 0) {
|
|
396
|
+
obj[_this.result] = JSON.stringify(v);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (_this.return.length > 0) {
|
|
400
|
+
obj[_this.return] = v ? v.length : 0;
|
|
401
|
+
}
|
|
538
402
|
obj[_this.duration] = d;
|
|
539
|
-
_this.
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
|
|
403
|
+
_this.log("query", obj);
|
|
404
|
+
}
|
|
405
|
+
}, 0);
|
|
406
|
+
return v;
|
|
407
|
+
})
|
|
408
|
+
.catch(function (er) {
|
|
409
|
+
setTimeout(function () {
|
|
410
|
+
var d = diff(t1);
|
|
411
|
+
var obj = {};
|
|
412
|
+
if (_this.sql.length > 0) {
|
|
413
|
+
obj[_this.sql] = getString(sql, args);
|
|
414
|
+
}
|
|
415
|
+
obj[_this.duration] = d;
|
|
416
|
+
_this.error("error query: " + buildString(er));
|
|
417
|
+
}, 0);
|
|
418
|
+
throw er;
|
|
419
|
+
});
|
|
543
420
|
};
|
|
544
421
|
LogManager.prototype.queryOne = function (sql, args, m, bools, ctx) {
|
|
545
422
|
var _this = this;
|
|
@@ -547,37 +424,37 @@ var LogManager = (function () {
|
|
|
547
424
|
return this.db
|
|
548
425
|
.queryOne(sql, args, m, bools, ctx)
|
|
549
426
|
.then(function (v) {
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
var d = diff(t1);
|
|
553
|
-
var obj = {};
|
|
554
|
-
if (_this.sql.length > 0) {
|
|
555
|
-
obj[_this.sql] = getString(sql, args);
|
|
556
|
-
}
|
|
557
|
-
if (_this.result.length > 0) {
|
|
558
|
-
obj[_this.result] = v ? JSON.stringify(v) : "null";
|
|
559
|
-
}
|
|
560
|
-
if (_this.return.length > 0) {
|
|
561
|
-
obj[_this.return] = v ? 1 : 0;
|
|
562
|
-
}
|
|
563
|
-
obj[_this.duration] = d;
|
|
564
|
-
_this.log("query one", obj);
|
|
565
|
-
}
|
|
566
|
-
}, 0);
|
|
567
|
-
return v;
|
|
568
|
-
})
|
|
569
|
-
.catch(function (er) {
|
|
570
|
-
setTimeout(function () {
|
|
427
|
+
setTimeout(function () {
|
|
428
|
+
if (_this.log) {
|
|
571
429
|
var d = diff(t1);
|
|
572
430
|
var obj = {};
|
|
573
431
|
if (_this.sql.length > 0) {
|
|
574
432
|
obj[_this.sql] = getString(sql, args);
|
|
575
433
|
}
|
|
434
|
+
if (_this.result.length > 0) {
|
|
435
|
+
obj[_this.result] = v ? JSON.stringify(v) : "null";
|
|
436
|
+
}
|
|
437
|
+
if (_this.return.length > 0) {
|
|
438
|
+
obj[_this.return] = v ? 1 : 0;
|
|
439
|
+
}
|
|
576
440
|
obj[_this.duration] = d;
|
|
577
|
-
_this.
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
|
|
441
|
+
_this.log("query one", obj);
|
|
442
|
+
}
|
|
443
|
+
}, 0);
|
|
444
|
+
return v;
|
|
445
|
+
})
|
|
446
|
+
.catch(function (er) {
|
|
447
|
+
setTimeout(function () {
|
|
448
|
+
var d = diff(t1);
|
|
449
|
+
var obj = {};
|
|
450
|
+
if (_this.sql.length > 0) {
|
|
451
|
+
obj[_this.sql] = getString(sql, args);
|
|
452
|
+
}
|
|
453
|
+
obj[_this.duration] = d;
|
|
454
|
+
_this.error("error query one: " + buildString(er));
|
|
455
|
+
}, 0);
|
|
456
|
+
throw er;
|
|
457
|
+
});
|
|
581
458
|
};
|
|
582
459
|
LogManager.prototype.execScalar = function (sql, args, ctx) {
|
|
583
460
|
var _this = this;
|
|
@@ -585,37 +462,37 @@ var LogManager = (function () {
|
|
|
585
462
|
return this.db
|
|
586
463
|
.execScalar(sql, args, ctx)
|
|
587
464
|
.then(function (v) {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
var d = diff(t1);
|
|
591
|
-
var obj = {};
|
|
592
|
-
if (_this.sql.length > 0) {
|
|
593
|
-
obj[_this.sql] = getString(sql, args);
|
|
594
|
-
}
|
|
595
|
-
if (_this.result.length > 0) {
|
|
596
|
-
obj[_this.result] = v ? buildString(v) : "null";
|
|
597
|
-
}
|
|
598
|
-
if (_this.return.length > 0) {
|
|
599
|
-
obj[_this.return] = v ? 1 : 0;
|
|
600
|
-
}
|
|
601
|
-
obj[_this.duration] = d;
|
|
602
|
-
_this.log("exec scalar", obj);
|
|
603
|
-
}
|
|
604
|
-
}, 0);
|
|
605
|
-
return v;
|
|
606
|
-
})
|
|
607
|
-
.catch(function (er) {
|
|
608
|
-
setTimeout(function () {
|
|
465
|
+
setTimeout(function () {
|
|
466
|
+
if (_this.log) {
|
|
609
467
|
var d = diff(t1);
|
|
610
468
|
var obj = {};
|
|
611
469
|
if (_this.sql.length > 0) {
|
|
612
470
|
obj[_this.sql] = getString(sql, args);
|
|
613
471
|
}
|
|
472
|
+
if (_this.result.length > 0) {
|
|
473
|
+
obj[_this.result] = v ? buildString(v) : "null";
|
|
474
|
+
}
|
|
475
|
+
if (_this.return.length > 0) {
|
|
476
|
+
obj[_this.return] = v ? 1 : 0;
|
|
477
|
+
}
|
|
614
478
|
obj[_this.duration] = d;
|
|
615
|
-
_this.
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
|
|
479
|
+
_this.log("exec scalar", obj);
|
|
480
|
+
}
|
|
481
|
+
}, 0);
|
|
482
|
+
return v;
|
|
483
|
+
})
|
|
484
|
+
.catch(function (er) {
|
|
485
|
+
setTimeout(function () {
|
|
486
|
+
var d = diff(t1);
|
|
487
|
+
var obj = {};
|
|
488
|
+
if (_this.sql.length > 0) {
|
|
489
|
+
obj[_this.sql] = getString(sql, args);
|
|
490
|
+
}
|
|
491
|
+
obj[_this.duration] = d;
|
|
492
|
+
_this.error("error exec scalar: " + buildString(er));
|
|
493
|
+
}, 0);
|
|
494
|
+
throw er;
|
|
495
|
+
});
|
|
619
496
|
};
|
|
620
497
|
LogManager.prototype.count = function (sql, args, ctx) {
|
|
621
498
|
var _this = this;
|
|
@@ -623,49 +500,51 @@ var LogManager = (function () {
|
|
|
623
500
|
return this.db
|
|
624
501
|
.count(sql, args)
|
|
625
502
|
.then(function (v) {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
var d = diff(t1);
|
|
629
|
-
var obj = {};
|
|
630
|
-
if (_this.sql.length > 0) {
|
|
631
|
-
obj[_this.sql] = getString(sql, args);
|
|
632
|
-
}
|
|
633
|
-
if (_this.return.length > 0) {
|
|
634
|
-
obj[_this.return] = v;
|
|
635
|
-
}
|
|
636
|
-
obj[_this.duration] = d;
|
|
637
|
-
_this.log("count", obj);
|
|
638
|
-
}
|
|
639
|
-
}, 0);
|
|
640
|
-
return v;
|
|
641
|
-
})
|
|
642
|
-
.catch(function (er) {
|
|
643
|
-
setTimeout(function () {
|
|
503
|
+
setTimeout(function () {
|
|
504
|
+
if (_this.log) {
|
|
644
505
|
var d = diff(t1);
|
|
645
506
|
var obj = {};
|
|
646
507
|
if (_this.sql.length > 0) {
|
|
647
508
|
obj[_this.sql] = getString(sql, args);
|
|
648
509
|
}
|
|
510
|
+
if (_this.return.length > 0) {
|
|
511
|
+
obj[_this.return] = v;
|
|
512
|
+
}
|
|
649
513
|
obj[_this.duration] = d;
|
|
650
|
-
_this.
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
|
|
514
|
+
_this.log("count", obj);
|
|
515
|
+
}
|
|
516
|
+
}, 0);
|
|
517
|
+
return v;
|
|
518
|
+
})
|
|
519
|
+
.catch(function (er) {
|
|
520
|
+
setTimeout(function () {
|
|
521
|
+
var d = diff(t1);
|
|
522
|
+
var obj = {};
|
|
523
|
+
if (_this.sql.length > 0) {
|
|
524
|
+
obj[_this.sql] = getString(sql, args);
|
|
525
|
+
}
|
|
526
|
+
obj[_this.duration] = d;
|
|
527
|
+
_this.error("error count: " + buildString(er));
|
|
528
|
+
}, 0);
|
|
529
|
+
throw er;
|
|
530
|
+
});
|
|
654
531
|
};
|
|
655
532
|
return LogManager;
|
|
656
|
-
}
|
|
533
|
+
}());
|
|
657
534
|
exports.LogManager = LogManager;
|
|
658
535
|
function buildString(v) {
|
|
659
536
|
if (typeof v === "string") {
|
|
660
537
|
return v;
|
|
661
|
-
}
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
662
540
|
return JSON.stringify(v);
|
|
663
541
|
}
|
|
664
542
|
}
|
|
665
543
|
function getString(sql, args) {
|
|
666
544
|
if (args && args.length > 0) {
|
|
667
545
|
return sql + " " + JSON.stringify(args);
|
|
668
|
-
}
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
669
548
|
return sql;
|
|
670
549
|
}
|
|
671
550
|
}
|
|
@@ -677,9 +556,7 @@ exports.diff = diff;
|
|
|
677
556
|
var SqlWriter = (function (_super) {
|
|
678
557
|
__extends(SqlWriter, _super);
|
|
679
558
|
function SqlWriter(manager, table, attrs, toDB, fromDB) {
|
|
680
|
-
var _this =
|
|
681
|
-
_super.call(this, manager.query, table, attrs, manager.param, fromDB) ||
|
|
682
|
-
this;
|
|
559
|
+
var _this = _super.call(this, manager.query, table, attrs, manager.param, fromDB) || this;
|
|
683
560
|
_this.toDB = toDB;
|
|
684
561
|
var x = build_1.version(attrs);
|
|
685
562
|
_this.exec = manager.exec;
|
|
@@ -698,22 +575,18 @@ var SqlWriter = (function (_super) {
|
|
|
698
575
|
if (this.toDB) {
|
|
699
576
|
obj2 = this.toDB(obj);
|
|
700
577
|
}
|
|
701
|
-
var stmt = build_1.buildToInsert(
|
|
702
|
-
obj2,
|
|
703
|
-
this.table,
|
|
704
|
-
this.attributes,
|
|
705
|
-
this.param,
|
|
706
|
-
this.version
|
|
707
|
-
);
|
|
578
|
+
var stmt = build_1.buildToInsert(obj2, this.table, this.attributes, this.param, this.version);
|
|
708
579
|
if (stmt) {
|
|
709
580
|
return this.exec(stmt.query, stmt.params, ctx).catch(function (err) {
|
|
710
581
|
if (err && err.error === "duplicate") {
|
|
711
582
|
return 0;
|
|
712
|
-
}
|
|
583
|
+
}
|
|
584
|
+
else {
|
|
713
585
|
throw err;
|
|
714
586
|
}
|
|
715
587
|
});
|
|
716
|
-
}
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
717
590
|
return Promise.resolve(0);
|
|
718
591
|
}
|
|
719
592
|
};
|
|
@@ -722,16 +595,11 @@ var SqlWriter = (function (_super) {
|
|
|
722
595
|
if (this.toDB) {
|
|
723
596
|
obj2 = this.toDB(obj);
|
|
724
597
|
}
|
|
725
|
-
var stmt = build_1.buildToUpdate(
|
|
726
|
-
obj2,
|
|
727
|
-
this.table,
|
|
728
|
-
this.attributes,
|
|
729
|
-
this.param,
|
|
730
|
-
this.version
|
|
731
|
-
);
|
|
598
|
+
var stmt = build_1.buildToUpdate(obj2, this.table, this.attributes, this.param, this.version);
|
|
732
599
|
if (stmt) {
|
|
733
600
|
return this.exec(stmt.query, stmt.params, ctx);
|
|
734
|
-
}
|
|
601
|
+
}
|
|
602
|
+
else {
|
|
735
603
|
return Promise.resolve(0);
|
|
736
604
|
}
|
|
737
605
|
};
|
|
@@ -739,20 +607,16 @@ var SqlWriter = (function (_super) {
|
|
|
739
607
|
return this.update(obj, ctx);
|
|
740
608
|
};
|
|
741
609
|
SqlWriter.prototype.delete = function (id, ctx) {
|
|
742
|
-
var stmt = build_1.buildToDelete(
|
|
743
|
-
id,
|
|
744
|
-
this.table,
|
|
745
|
-
this.primaryKeys,
|
|
746
|
-
this.param
|
|
747
|
-
);
|
|
610
|
+
var stmt = build_1.buildToDelete(id, this.table, this.primaryKeys, this.param);
|
|
748
611
|
if (stmt) {
|
|
749
612
|
return this.exec(stmt.query, stmt.params, ctx);
|
|
750
|
-
}
|
|
613
|
+
}
|
|
614
|
+
else {
|
|
751
615
|
return Promise.resolve(0);
|
|
752
616
|
}
|
|
753
617
|
};
|
|
754
618
|
return SqlWriter;
|
|
755
|
-
}
|
|
619
|
+
}(SqlLoader));
|
|
756
620
|
exports.SqlWriter = SqlWriter;
|
|
757
621
|
var SqlSearchWriter = (function (_super) {
|
|
758
622
|
__extends(SqlSearchWriter, _super);
|
|
@@ -766,5 +630,5 @@ var SqlSearchWriter = (function (_super) {
|
|
|
766
630
|
return this.find(s, limit, offset, fields);
|
|
767
631
|
};
|
|
768
632
|
return SqlSearchWriter;
|
|
769
|
-
}
|
|
633
|
+
}(SqlWriter));
|
|
770
634
|
exports.SqlSearchWriter = SqlSearchWriter;
|
package/package.json
CHANGED
package/src/SearchBuilder.ts
CHANGED
|
@@ -76,22 +76,22 @@ export class SearchBuilder<T, S> {
|
|
|
76
76
|
}
|
|
77
77
|
this.total = total && total.length > 0 ? total : "total"
|
|
78
78
|
}
|
|
79
|
-
search(
|
|
80
|
-
let
|
|
81
|
-
if (typeof
|
|
82
|
-
|
|
79
|
+
search(filter: S, limit: number, page?: number | string, fields?: string[]): Promise<SearchResult<T>> {
|
|
80
|
+
let ipage = 0
|
|
81
|
+
if (typeof page === "number" && page > 0) {
|
|
82
|
+
ipage = page
|
|
83
83
|
}
|
|
84
84
|
const st = this.sort ? this.sort : "sort"
|
|
85
|
-
const sn = (
|
|
86
|
-
delete (
|
|
85
|
+
const sn = (filter as any)[st] as string
|
|
86
|
+
delete (filter as any)[st]
|
|
87
87
|
const x = this.provider === postgres ? "ilike" : this.param
|
|
88
|
-
const q2 = this.buildQuery(
|
|
88
|
+
const q2 = this.buildQuery(filter, x, sn, this.buildSort, this.attributes, this.table, fields, this.q, this.excluding)
|
|
89
89
|
if (!q2) {
|
|
90
90
|
throw new Error("Cannot build query")
|
|
91
91
|
}
|
|
92
92
|
const fn = this.fromDB
|
|
93
93
|
if (fn) {
|
|
94
|
-
return buildFromQuery<T>(this.query, q2.query, q2.params, limit,
|
|
94
|
+
return buildFromQuery<T>(this.query, q2.query, q2.params, limit, ipage, this.map, this.bools, this.provider, this.total).then((r) => {
|
|
95
95
|
if (r.list && r.list.length > 0) {
|
|
96
96
|
r.list = r.list.map((o) => fn(o))
|
|
97
97
|
return r
|
|
@@ -100,7 +100,7 @@ export class SearchBuilder<T, S> {
|
|
|
100
100
|
}
|
|
101
101
|
})
|
|
102
102
|
} else {
|
|
103
|
-
return buildFromQuery(this.query, q2.query, q2.params, limit,
|
|
103
|
+
return buildFromQuery(this.query, q2.query, q2.params, limit, ipage, this.map, this.bools, this.provider, this.total)
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
}
|
package/src/metadata.ts
CHANGED
|
@@ -53,35 +53,17 @@ export interface Model {
|
|
|
53
53
|
}
|
|
54
54
|
export interface Attribute {
|
|
55
55
|
name?: string
|
|
56
|
-
field?: string
|
|
57
56
|
column?: string
|
|
58
57
|
type?: DataType
|
|
59
|
-
format?: FormatType
|
|
60
|
-
required?: boolean
|
|
61
58
|
match?: MatchType
|
|
62
59
|
default?: string | number | Date | boolean
|
|
63
60
|
key?: boolean
|
|
64
|
-
unique?: boolean
|
|
65
|
-
enum?: string[] | number[]
|
|
66
61
|
q?: boolean
|
|
67
62
|
noinsert?: boolean
|
|
68
63
|
noupdate?: boolean
|
|
69
64
|
nopatch?: boolean
|
|
70
65
|
version?: boolean
|
|
71
|
-
length?: number
|
|
72
|
-
min?: number
|
|
73
|
-
max?: number
|
|
74
|
-
gt?: number
|
|
75
|
-
lt?: number
|
|
76
|
-
precision?: number
|
|
77
|
-
scale?: number
|
|
78
|
-
exp?: RegExp | string
|
|
79
|
-
code?: string
|
|
80
|
-
noformat?: boolean
|
|
81
66
|
ignored?: boolean
|
|
82
|
-
jsonField?: string
|
|
83
|
-
link?: string
|
|
84
|
-
typeof?: Attributes
|
|
85
67
|
true?: string | number
|
|
86
68
|
false?: string | number
|
|
87
69
|
}
|
package/src/services.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { attributes, buildToDelete, buildToInsert, buildToUpdate, exist, metadata, select, version } from "./build"
|
|
2
2
|
import { Attribute, Attributes, Statement, StringMap } from "./metadata"
|
|
3
|
-
import { SearchResult } from "./search"
|
|
3
|
+
// import { SearchResult } from "./search"
|
|
4
4
|
|
|
5
5
|
export interface Filter {
|
|
6
6
|
fields?: string[]
|
|
@@ -205,7 +205,7 @@ export class SqlLoadRepository<T, K1, K2> {
|
|
|
205
205
|
export class GenericRepository<T, K1, K2> extends SqlLoadRepository<T, K1, K2> {
|
|
206
206
|
version?: string
|
|
207
207
|
exec: (sql: string, args?: any[], ctx?: any) => Promise<number>
|
|
208
|
-
execBatch: (statements: Statement[], firstSuccess?: boolean, ctx?: any) => Promise<number>
|
|
208
|
+
// execBatch: (statements: Statement[], firstSuccess?: boolean, ctx?: any) => Promise<number>
|
|
209
209
|
constructor(
|
|
210
210
|
manager: Manager,
|
|
211
211
|
table: string,
|
|
@@ -220,7 +220,7 @@ export class GenericRepository<T, K1, K2> extends SqlLoadRepository<T, K1, K2> {
|
|
|
220
220
|
super(manager.query, table, attrs, manager.param, id1Field, id2Field, fromDB, id1Col, id2Col)
|
|
221
221
|
const x = version(attrs)
|
|
222
222
|
this.exec = manager.exec
|
|
223
|
-
this.execBatch = manager.execBatch
|
|
223
|
+
// this.execBatch = manager.execBatch
|
|
224
224
|
if (x) {
|
|
225
225
|
this.version = x.name
|
|
226
226
|
}
|
|
@@ -266,10 +266,11 @@ export class GenericRepository<T, K1, K2> extends SqlLoadRepository<T, K1, K2> {
|
|
|
266
266
|
return this.exec(`delete from ${this.table} where ${this.id1Col} = ${this.param(1)} and ${this.id2Col} = ${this.param(2)}`, [id1, id2], ctx)
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
|
+
/*
|
|
269
270
|
// tslint:disable-next-line:max-classes-per-file
|
|
270
271
|
export class SqlSearchLoader<T, ID, S extends Filter> extends SqlLoader<T, ID> {
|
|
271
272
|
constructor(
|
|
272
|
-
protected find: (s: S, limit
|
|
273
|
+
protected find: (s: S, limit: number, offset?: number | string, fields?: string[]) => Promise<SearchResult<T>>,
|
|
273
274
|
query: <K>(sql: string, args?: any[], m?: StringMap, bools?: Attribute[], ctx?: any) => Promise<K[]>,
|
|
274
275
|
table: string,
|
|
275
276
|
attrs: Attributes | string[],
|
|
@@ -279,15 +280,16 @@ export class SqlSearchLoader<T, ID, S extends Filter> extends SqlLoader<T, ID> {
|
|
|
279
280
|
super(query, table, attrs, param, fromDB)
|
|
280
281
|
this.search = this.search.bind(this)
|
|
281
282
|
}
|
|
282
|
-
search(s: S, limit
|
|
283
|
+
search(s: S, limit: number, offset?: number | string, fields?: string[]): Promise<SearchResult<T>> {
|
|
283
284
|
return this.find(s, limit, offset, fields)
|
|
284
285
|
}
|
|
285
286
|
}
|
|
287
|
+
*/
|
|
286
288
|
export interface Manager {
|
|
287
289
|
driver: string
|
|
288
290
|
param(i: number): string
|
|
289
291
|
exec(sql: string, args?: any[], ctx?: any): Promise<number>
|
|
290
|
-
execBatch(statements: Statement[], firstSuccess?: boolean, ctx?: any): Promise<number>
|
|
292
|
+
// execBatch(statements: Statement[], firstSuccess?: boolean, ctx?: any): Promise<number>
|
|
291
293
|
query<T>(sql: string, args?: any[], m?: StringMap, bools?: Attribute[], ctx?: any): Promise<T[]>
|
|
292
294
|
}
|
|
293
295
|
export type DB = Manager
|
|
@@ -629,12 +631,12 @@ const getDurationInMilliseconds = (start: [number, number] | undefined) => {
|
|
|
629
631
|
export class SqlWriter<T, ID> extends SqlLoader<T, ID> {
|
|
630
632
|
version?: string
|
|
631
633
|
exec: (sql: string, args?: any[], ctx?: any) => Promise<number>
|
|
632
|
-
execBatch: (statements: Statement[], firstSuccess?: boolean, ctx?: any) => Promise<number>
|
|
634
|
+
// execBatch: (statements: Statement[], firstSuccess?: boolean, ctx?: any) => Promise<number>
|
|
633
635
|
constructor(manager: Manager, table: string, attrs: Attributes, public toDB?: (v: T) => T, fromDB?: (v: T) => T) {
|
|
634
636
|
super(manager.query, table, attrs, manager.param, fromDB)
|
|
635
637
|
const x = version(attrs)
|
|
636
638
|
this.exec = manager.exec
|
|
637
|
-
this.execBatch = manager.execBatch
|
|
639
|
+
// this.execBatch = manager.execBatch
|
|
638
640
|
if (x) {
|
|
639
641
|
this.version = x.name
|
|
640
642
|
}
|
|
@@ -685,10 +687,11 @@ export class SqlWriter<T, ID> extends SqlLoader<T, ID> {
|
|
|
685
687
|
}
|
|
686
688
|
}
|
|
687
689
|
}
|
|
690
|
+
/*
|
|
688
691
|
// tslint:disable-next-line:max-classes-per-file
|
|
689
692
|
export class SqlSearchWriter<T, ID, S extends Filter> extends SqlWriter<T, ID> {
|
|
690
693
|
constructor(
|
|
691
|
-
protected find: (s: S, limit
|
|
694
|
+
protected find: (s: S, limit: number, offset?: number | string, fields?: string[]) => Promise<SearchResult<T>>,
|
|
692
695
|
manager: Manager,
|
|
693
696
|
table: string,
|
|
694
697
|
attrs: Attributes,
|
|
@@ -698,7 +701,8 @@ export class SqlSearchWriter<T, ID, S extends Filter> extends SqlWriter<T, ID> {
|
|
|
698
701
|
super(manager, table, attrs, toDB, fromDB)
|
|
699
702
|
this.search = this.search.bind(this)
|
|
700
703
|
}
|
|
701
|
-
search(s: S, limit
|
|
704
|
+
search(s: S, limit: number, offset?: number | string, fields?: string[]): Promise<SearchResult<T>> {
|
|
702
705
|
return this.find(s, limit, offset, fields)
|
|
703
706
|
}
|
|
704
707
|
}
|
|
708
|
+
*/
|