remult 0.14.6 → 0.14.7

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.
Files changed (74) hide show
  1. package/assign.js +5 -1
  2. package/classType.js +2 -1
  3. package/graphql.js +146 -84
  4. package/index.js +73 -25
  5. package/inputTypes.js +16 -9
  6. package/package.json +1 -2
  7. package/postgres/index.js +4 -1
  8. package/postgres/postgres-data-provider.d.ts +4 -1
  9. package/postgres/postgres-data-provider.js +364 -165
  10. package/postgres/postgresColumnSyntax.d.ts +1 -1
  11. package/postgres/postgresColumnSyntax.js +8 -4
  12. package/remult-express.js +10 -6
  13. package/remult-knex/index.d.ts +5 -2
  14. package/remult-knex/index.js +720 -300
  15. package/remult-middleware.js +29 -24
  16. package/remult-mongo.js +406 -172
  17. package/server/JsonEntityFileStorage.js +15 -10
  18. package/server/expressBridge.d.ts +4 -2
  19. package/server/expressBridge.js +570 -383
  20. package/server/index.js +11 -4
  21. package/server/register-actions-on-server.js +38 -12
  22. package/server/register-entities-on-server.js +13 -9
  23. package/src/__EntityValueProvider.js +2 -1
  24. package/src/__RowsOfDataForTesting.js +2 -1
  25. package/src/backend-tests/backend-database-test-setup.backend-spec.js +190 -72
  26. package/src/backend-tests/my-test.backend-spec.js +114 -45
  27. package/src/column-interfaces.js +6 -2
  28. package/src/column.js +113 -71
  29. package/src/context.js +330 -174
  30. package/src/data-api.js +326 -162
  31. package/src/data-interfaces.js +11 -7
  32. package/src/data-providers/array-entity-data-provider.js +286 -171
  33. package/src/data-providers/in-memory-database.js +27 -12
  34. package/src/data-providers/json-data-provider.js +77 -41
  35. package/src/data-providers/rest-data-provider.js +189 -102
  36. package/src/data-providers/sql-database.js +403 -223
  37. package/src/data-providers/web-sql-data-provider.js +139 -78
  38. package/src/entity.js +2 -1
  39. package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +1 -1
  40. package/src/filter/filter-consumer-bridge-to-sql-request.js +248 -106
  41. package/src/filter/filter-consumer-bridge-to-url-builder.js +2 -1
  42. package/src/filter/filter-interfaces.js +440 -277
  43. package/src/id-entity.js +17 -8
  44. package/src/remult3/RepositoryImplementation.js +2367 -1191
  45. package/src/remult3/index.js +5 -2
  46. package/src/remult3/remult3.js +2 -1
  47. package/src/server-action.js +528 -294
  48. package/src/shared-tests/db-tests-setup.js +153 -49
  49. package/src/shared-tests/db-tests.db-tests.js +1566 -660
  50. package/src/shared-tests/deleteAll.js +20 -3
  51. package/src/shared-tests/entityWithValidations.js +79 -52
  52. package/src/shared-tests/index.js +6 -4
  53. package/src/shared-tests/test-custom-id-column.spec.js +85 -37
  54. package/src/shared-tests/test-special-value.spec.js +104 -64
  55. package/src/shared-tests/test-update-with-null.spec.js +49 -28
  56. package/src/sort.js +95 -38
  57. package/src/sql-command.js +2 -1
  58. package/src/tests/Done.js +13 -7
  59. package/src/tests/TestDataApiResponse.js +22 -15
  60. package/src/tests/c.js +27 -21
  61. package/src/tests/createData.js +48 -20
  62. package/src/tests/d.js +27 -19
  63. package/src/tests/dWithPrefilter.js +44 -31
  64. package/src/tests/entityForCustomFilter.js +66 -42
  65. package/src/tests/entityWithValidationsOnColumn.js +29 -21
  66. package/src/tests/frontend-database-tests-setup.spec.js +98 -35
  67. package/src/tests/h.js +44 -35
  68. package/src/tests/remult-3-entities.js +80 -71
  69. package/src/tests/tasks.js +29 -23
  70. package/src/tests/testHelper.spec.js +322 -170
  71. package/src/tests/testModel/models.js +33 -25
  72. package/src/validators.js +59 -32
  73. package/urlBuilder.js +14 -8
  74. package/valueConverters.js +160 -161
@@ -1,264 +1,379 @@
1
- import { customDatabaseFilterToken, Filter } from '../filter/filter-interfaces';
2
- import { CompoundIdField } from '../column';
3
- export class ArrayEntityDataProvider {
4
- constructor(entity, rows) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrayEntityDataProvider = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var filter_interfaces_1 = require("../filter/filter-interfaces");
6
+ var column_1 = require("../column");
7
+ var ArrayEntityDataProvider = /** @class */ (function () {
8
+ function ArrayEntityDataProvider(entity, rows) {
9
+ var e_1, _a;
5
10
  this.entity = entity;
6
11
  this.rows = rows;
7
12
  if (!rows)
8
13
  rows = [];
9
14
  else {
10
- for (const r of rows) {
11
- this.verifyThatRowHasAllNotNullColumns(r);
15
+ try {
16
+ for (var rows_1 = tslib_1.__values(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {
17
+ var r = rows_1_1.value;
18
+ this.verifyThatRowHasAllNotNullColumns(r);
19
+ }
20
+ }
21
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
22
+ finally {
23
+ try {
24
+ if (rows_1_1 && !rows_1_1.done && (_a = rows_1.return)) _a.call(rows_1);
25
+ }
26
+ finally { if (e_1) throw e_1.error; }
12
27
  }
13
28
  }
14
29
  }
15
- static customFilter(filter) {
16
- return {
17
- [customDatabaseFilterToken]: {
30
+ ArrayEntityDataProvider.customFilter = function (filter) {
31
+ var _a;
32
+ return _a = {},
33
+ _a[filter_interfaces_1.customDatabaseFilterToken] = {
18
34
  arrayFilter: filter
19
- }
20
- };
21
- }
22
- verifyThatRowHasAllNotNullColumns(r) {
23
- for (const f of this.entity.fields) {
24
- if (!f.isServerExpression)
25
- if (!f.allowNull) {
26
- if (r[f.key] === undefined || r[f.key] === null) {
27
- let val = undefined;
28
- if (f.valueType === Boolean)
29
- val = false;
30
- else if (f.valueType === Number)
31
- val = 0;
32
- else if (f.valueType === String)
33
- val = '';
34
- r[f.key] = val;
35
+ },
36
+ _a;
37
+ };
38
+ ArrayEntityDataProvider.prototype.verifyThatRowHasAllNotNullColumns = function (r) {
39
+ var e_2, _a;
40
+ try {
41
+ for (var _b = tslib_1.__values(this.entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
42
+ var f = _c.value;
43
+ if (!f.isServerExpression)
44
+ if (!f.allowNull) {
45
+ if (r[f.key] === undefined || r[f.key] === null) {
46
+ var val = undefined;
47
+ if (f.valueType === Boolean)
48
+ val = false;
49
+ else if (f.valueType === Number)
50
+ val = 0;
51
+ else if (f.valueType === String)
52
+ val = '';
53
+ r[f.key] = val;
54
+ }
35
55
  }
36
- }
37
- else if (r[f.key] === undefined)
38
- r[f.key] = null;
39
- }
40
- }
41
- async count(where) {
42
- let rows = this.rows;
43
- let j = 0;
44
- for (let i = 0; i < rows.length; i++) {
45
- if (!where) {
46
- j++;
47
- }
48
- else {
49
- let x = new FilterConsumerBridgeToObject(rows[i]);
50
- where.__applyToConsumer(x);
51
- if (x.ok)
52
- j++;
56
+ else if (r[f.key] === undefined)
57
+ r[f.key] = null;
53
58
  }
54
59
  }
55
- return j;
56
- }
57
- async find(options) {
58
- let rows = this.rows;
59
- if (options) {
60
- if (options.where) {
61
- rows = rows.filter(i => {
62
- let x = new FilterConsumerBridgeToObject(i);
63
- options.where.__applyToConsumer(x);
64
- return x.ok;
65
- });
60
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
61
+ finally {
62
+ try {
63
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
66
64
  }
67
- if (options.orderBy) {
68
- rows = rows.sort((a, b) => {
69
- let r = 0;
70
- for (let i = 0; i < options.orderBy.Segments.length; i++) {
71
- let seg = options.orderBy.Segments[i];
72
- let left = a[seg.field.key];
73
- let right = b[seg.field.key];
74
- if (left > right)
75
- r = 1;
76
- else if (left < right)
77
- r = -1;
78
- if (r != 0) {
79
- if (seg.isDescending)
80
- r *= -1;
65
+ finally { if (e_2) throw e_2.error; }
66
+ }
67
+ };
68
+ ArrayEntityDataProvider.prototype.count = function (where) {
69
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
70
+ var rows, j, i, x;
71
+ return tslib_1.__generator(this, function (_a) {
72
+ rows = this.rows;
73
+ j = 0;
74
+ for (i = 0; i < rows.length; i++) {
75
+ if (!where) {
76
+ j++;
77
+ }
78
+ else {
79
+ x = new FilterConsumerBridgeToObject(rows[i]);
80
+ where.__applyToConsumer(x);
81
+ if (x.ok)
82
+ j++;
83
+ }
84
+ }
85
+ return [2 /*return*/, j];
86
+ });
87
+ });
88
+ };
89
+ ArrayEntityDataProvider.prototype.find = function (options) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
91
+ var rows;
92
+ var _this = this;
93
+ return tslib_1.__generator(this, function (_a) {
94
+ rows = this.rows;
95
+ if (options) {
96
+ if (options.where) {
97
+ rows = rows.filter(function (i) {
98
+ var x = new FilterConsumerBridgeToObject(i);
99
+ options.where.__applyToConsumer(x);
100
+ return x.ok;
101
+ });
102
+ }
103
+ if (options.orderBy) {
104
+ rows = rows.sort(function (a, b) {
105
+ var r = 0;
106
+ for (var i = 0; i < options.orderBy.Segments.length; i++) {
107
+ var seg = options.orderBy.Segments[i];
108
+ var left = a[seg.field.key];
109
+ var right = b[seg.field.key];
110
+ if (left > right)
111
+ r = 1;
112
+ else if (left < right)
113
+ r = -1;
114
+ if (r != 0) {
115
+ if (seg.isDescending)
116
+ r *= -1;
117
+ return r;
118
+ }
119
+ }
81
120
  return r;
82
- }
121
+ });
83
122
  }
84
- return r;
85
- });
123
+ rows = pageArray(rows, options);
124
+ }
125
+ if (rows)
126
+ return [2 /*return*/, rows.map(function (i) {
127
+ return _this.translateFromJson(i);
128
+ })];
129
+ return [2 /*return*/];
130
+ });
131
+ });
132
+ };
133
+ ArrayEntityDataProvider.prototype.translateFromJson = function (row) {
134
+ var e_3, _a;
135
+ var result = {};
136
+ try {
137
+ for (var _b = tslib_1.__values(this.entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
138
+ var col = _c.value;
139
+ result[col.key] = col.valueConverter.fromJson(row[col.key]);
86
140
  }
87
- rows = pageArray(rows, options);
88
141
  }
89
- if (rows)
90
- return rows.map(i => {
91
- return this.translateFromJson(i);
92
- });
93
- }
94
- translateFromJson(row) {
95
- let result = {};
96
- for (const col of this.entity.fields) {
97
- result[col.key] = col.valueConverter.fromJson(row[col.key]);
142
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
143
+ finally {
144
+ try {
145
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
146
+ }
147
+ finally { if (e_3) throw e_3.error; }
98
148
  }
99
149
  return result;
100
- }
101
- translateToJson(row) {
102
- let result = {};
103
- for (const col of this.entity.fields) {
104
- result[col.key] = col.valueConverter.toJson(row[col.key]);
150
+ };
151
+ ArrayEntityDataProvider.prototype.translateToJson = function (row) {
152
+ var e_4, _a;
153
+ var result = {};
154
+ try {
155
+ for (var _b = tslib_1.__values(this.entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
156
+ var col = _c.value;
157
+ result[col.key] = col.valueConverter.toJson(row[col.key]);
158
+ }
159
+ }
160
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
161
+ finally {
162
+ try {
163
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
164
+ }
165
+ finally { if (e_4) throw e_4.error; }
105
166
  }
106
167
  return result;
107
- }
108
- idMatches(id) {
109
- return item => {
110
- let x = new FilterConsumerBridgeToObject(item);
111
- Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(x);
168
+ };
169
+ ArrayEntityDataProvider.prototype.idMatches = function (id) {
170
+ var _this = this;
171
+ return function (item) {
172
+ var x = new FilterConsumerBridgeToObject(item);
173
+ filter_interfaces_1.Filter.fromEntityFilter(_this.entity, _this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(x);
112
174
  return x.ok;
113
175
  };
114
- }
115
- update(id, data) {
116
- let idMatches = this.idMatches(id);
117
- let keys = Object.keys(data);
118
- for (let i = 0; i < this.rows.length; i++) {
119
- let r = this.rows[i];
176
+ };
177
+ ArrayEntityDataProvider.prototype.update = function (id, data) {
178
+ var e_5, _a;
179
+ var idMatches = this.idMatches(id);
180
+ var keys = Object.keys(data);
181
+ for (var i = 0; i < this.rows.length; i++) {
182
+ var r = this.rows[i];
120
183
  if (idMatches(r)) {
121
- let newR = { ...r };
122
- for (const f of this.entity.fields) {
123
- if (!f.dbReadOnly && !f.isServerExpression) {
124
- if (keys.includes(f.key)) {
125
- newR[f.key] = f.valueConverter.toJson(data[f.key]);
184
+ var newR = tslib_1.__assign({}, r);
185
+ try {
186
+ for (var _b = (e_5 = void 0, tslib_1.__values(this.entity.fields)), _c = _b.next(); !_c.done; _c = _b.next()) {
187
+ var f = _c.value;
188
+ if (!f.dbReadOnly && !f.isServerExpression) {
189
+ if (keys.includes(f.key)) {
190
+ newR[f.key] = f.valueConverter.toJson(data[f.key]);
191
+ }
126
192
  }
127
193
  }
128
194
  }
195
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
196
+ finally {
197
+ try {
198
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
199
+ }
200
+ finally { if (e_5) throw e_5.error; }
201
+ }
129
202
  this.verifyThatRowHasAllNotNullColumns(newR);
130
203
  this.rows[i] = newR;
131
204
  return Promise.resolve(this.translateFromJson(this.rows[i]));
132
205
  }
133
206
  }
134
207
  throw new Error("couldn't find id to update: " + id);
135
- }
136
- delete(id) {
137
- let idMatches = this.idMatches(id);
138
- for (let i = 0; i < this.rows.length; i++) {
208
+ };
209
+ ArrayEntityDataProvider.prototype.delete = function (id) {
210
+ var idMatches = this.idMatches(id);
211
+ for (var i = 0; i < this.rows.length; i++) {
139
212
  if (idMatches(this.rows[i])) {
140
213
  this.rows.splice(i, 1);
141
214
  return Promise.resolve();
142
215
  }
143
216
  }
144
217
  throw new Error("couldn't find id to delete: " + id);
145
- }
146
- async insert(data) {
147
- let idf = this.entity.idMetadata.field;
148
- if (!(idf instanceof CompoundIdField)) {
149
- if (idf.options.valueConverter?.fieldTypeInDb === 'autoincrement') {
150
- data[idf.key] = 1;
151
- for (const row of this.rows) {
152
- if (row[idf.key] >= data[idf.key])
153
- data[idf.key] = row[idf.key] + 1;
218
+ };
219
+ ArrayEntityDataProvider.prototype.insert = function (data) {
220
+ var _a;
221
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
222
+ var idf, _b, _c, row, j;
223
+ var e_6, _d;
224
+ return tslib_1.__generator(this, function (_e) {
225
+ idf = this.entity.idMetadata.field;
226
+ if (!(idf instanceof column_1.CompoundIdField)) {
227
+ if (((_a = idf.options.valueConverter) === null || _a === void 0 ? void 0 : _a.fieldTypeInDb) === 'autoincrement') {
228
+ data[idf.key] = 1;
229
+ try {
230
+ for (_b = tslib_1.__values(this.rows), _c = _b.next(); !_c.done; _c = _b.next()) {
231
+ row = _c.value;
232
+ if (row[idf.key] >= data[idf.key])
233
+ data[idf.key] = row[idf.key] + 1;
234
+ }
235
+ }
236
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
237
+ finally {
238
+ try {
239
+ if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
240
+ }
241
+ finally { if (e_6) throw e_6.error; }
242
+ }
243
+ }
244
+ if (data[idf.key])
245
+ this.rows.forEach(function (i) {
246
+ if (data[idf.key] == i[idf.key])
247
+ throw Error("id already exists");
248
+ });
154
249
  }
155
- }
156
- if (data[idf.key])
157
- this.rows.forEach(i => {
158
- if (data[idf.key] == i[idf.key])
159
- throw Error("id already exists");
160
- });
161
- }
162
- let j = this.translateToJson(data);
163
- this.verifyThatRowHasAllNotNullColumns(j);
164
- this.rows.push(j);
165
- return Promise.resolve(this.translateFromJson(j));
166
- }
167
- }
250
+ j = this.translateToJson(data);
251
+ this.verifyThatRowHasAllNotNullColumns(j);
252
+ this.rows.push(j);
253
+ return [2 /*return*/, Promise.resolve(this.translateFromJson(j))];
254
+ });
255
+ });
256
+ };
257
+ return ArrayEntityDataProvider;
258
+ }());
259
+ exports.ArrayEntityDataProvider = ArrayEntityDataProvider;
168
260
  function pageArray(rows, options) {
169
261
  if (!options)
170
262
  return rows;
171
263
  if (!options.limit)
172
264
  return rows;
173
- let page = 1;
265
+ var page = 1;
174
266
  if (options.page)
175
267
  page = options.page;
176
268
  if (page < 1)
177
269
  page = 1;
178
- let x = 0;
179
- return rows.filter(i => {
270
+ var x = 0;
271
+ return rows.filter(function (i) {
180
272
  x++;
181
- let max = page * options.limit;
182
- let min = max - options.limit;
273
+ var max = page * options.limit;
274
+ var min = max - options.limit;
183
275
  return x > min && x <= max;
184
276
  });
185
277
  }
186
- class FilterConsumerBridgeToObject {
187
- constructor(row) {
278
+ var FilterConsumerBridgeToObject = /** @class */ (function () {
279
+ function FilterConsumerBridgeToObject(row) {
188
280
  this.row = row;
189
281
  this.ok = true;
190
282
  }
191
- databaseCustom(databaseCustom) {
283
+ FilterConsumerBridgeToObject.prototype.databaseCustom = function (databaseCustom) {
192
284
  if (databaseCustom && databaseCustom.arrayFilter) {
193
285
  if (!databaseCustom.arrayFilter(this.row))
194
286
  this.ok = false;
195
287
  }
196
- }
197
- custom(key, customItem) {
288
+ };
289
+ FilterConsumerBridgeToObject.prototype.custom = function (key, customItem) {
198
290
  throw new Error('Custom Filter should be translated before it gets here');
199
- }
200
- or(orElements) {
201
- for (const element of orElements) {
202
- let filter = new FilterConsumerBridgeToObject(this.row);
203
- element.__applyToConsumer(filter);
204
- if (filter.ok) {
205
- return;
291
+ };
292
+ FilterConsumerBridgeToObject.prototype.or = function (orElements) {
293
+ var e_7, _a;
294
+ try {
295
+ for (var orElements_1 = tslib_1.__values(orElements), orElements_1_1 = orElements_1.next(); !orElements_1_1.done; orElements_1_1 = orElements_1.next()) {
296
+ var element = orElements_1_1.value;
297
+ var filter = new FilterConsumerBridgeToObject(this.row);
298
+ element.__applyToConsumer(filter);
299
+ if (filter.ok) {
300
+ return;
301
+ }
302
+ }
303
+ }
304
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
305
+ finally {
306
+ try {
307
+ if (orElements_1_1 && !orElements_1_1.done && (_a = orElements_1.return)) _a.call(orElements_1);
206
308
  }
309
+ finally { if (e_7) throw e_7.error; }
207
310
  }
208
311
  this.ok = false;
209
- }
210
- isNull(col) {
312
+ };
313
+ FilterConsumerBridgeToObject.prototype.isNull = function (col) {
211
314
  if (this.row[col.key] != null)
212
315
  this.ok = false;
213
- }
214
- isNotNull(col) {
316
+ };
317
+ FilterConsumerBridgeToObject.prototype.isNotNull = function (col) {
215
318
  if (this.row[col.key] == null)
216
319
  this.ok = false;
217
- }
218
- isIn(col, val) {
219
- for (const v of val) {
220
- if (this.row[col.key] == col.valueConverter.toJson(v)) {
221
- return;
320
+ };
321
+ FilterConsumerBridgeToObject.prototype.isIn = function (col, val) {
322
+ var e_8, _a;
323
+ try {
324
+ for (var val_1 = tslib_1.__values(val), val_1_1 = val_1.next(); !val_1_1.done; val_1_1 = val_1.next()) {
325
+ var v = val_1_1.value;
326
+ if (this.row[col.key] == col.valueConverter.toJson(v)) {
327
+ return;
328
+ }
222
329
  }
223
330
  }
331
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
332
+ finally {
333
+ try {
334
+ if (val_1_1 && !val_1_1.done && (_a = val_1.return)) _a.call(val_1);
335
+ }
336
+ finally { if (e_8) throw e_8.error; }
337
+ }
224
338
  this.ok = false;
225
- }
226
- isEqualTo(col, val) {
339
+ };
340
+ FilterConsumerBridgeToObject.prototype.isEqualTo = function (col, val) {
227
341
  if (this.row[col.key] != col.valueConverter.toJson(val))
228
342
  this.ok = false;
229
- }
230
- isDifferentFrom(col, val) {
343
+ };
344
+ FilterConsumerBridgeToObject.prototype.isDifferentFrom = function (col, val) {
231
345
  if (this.row[col.key] == col.valueConverter.toJson(val))
232
346
  this.ok = false;
233
- }
234
- isGreaterOrEqualTo(col, val) {
347
+ };
348
+ FilterConsumerBridgeToObject.prototype.isGreaterOrEqualTo = function (col, val) {
235
349
  if (this.row[col.key] < col.valueConverter.toJson(val))
236
350
  this.ok = false;
237
- }
238
- isGreaterThan(col, val) {
351
+ };
352
+ FilterConsumerBridgeToObject.prototype.isGreaterThan = function (col, val) {
239
353
  if (this.row[col.key] <= col.valueConverter.toJson(val))
240
354
  this.ok = false;
241
- }
242
- isLessOrEqualTo(col, val) {
355
+ };
356
+ FilterConsumerBridgeToObject.prototype.isLessOrEqualTo = function (col, val) {
243
357
  if (this.row[col.key] > col.valueConverter.toJson(val))
244
358
  this.ok = false;
245
- }
246
- isLessThan(col, val) {
359
+ };
360
+ FilterConsumerBridgeToObject.prototype.isLessThan = function (col, val) {
247
361
  if (this.row[col.key] >= col.valueConverter.toJson(val))
248
362
  this.ok = false;
249
- }
250
- containsCaseInsensitive(col, val) {
251
- let v = this.row[col.key];
363
+ };
364
+ FilterConsumerBridgeToObject.prototype.containsCaseInsensitive = function (col, val) {
365
+ var v = this.row[col.key];
252
366
  if (!v) {
253
367
  this.ok = false;
254
368
  return;
255
369
  }
256
- let s = '' + v;
370
+ var s = '' + v;
257
371
  if (val)
258
372
  val = col.valueConverter.toJson(val);
259
373
  if (val)
260
374
  val = val.toString().toLowerCase();
261
375
  if (s.toLowerCase().indexOf(val) < 0)
262
376
  this.ok = false;
263
- }
264
- }
377
+ };
378
+ return FilterConsumerBridgeToObject;
379
+ }());
@@ -1,16 +1,31 @@
1
- import { ArrayEntityDataProvider } from './array-entity-data-provider';
2
- export class InMemoryDataProvider {
3
- constructor() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryDataProvider = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var array_entity_data_provider_1 = require("./array-entity-data-provider");
6
+ var InMemoryDataProvider = /** @class */ (function () {
7
+ function InMemoryDataProvider() {
4
8
  this.rows = {};
5
9
  }
6
- async transaction(action) {
7
- await action(this);
8
- }
9
- getEntityDataProvider(entity) {
10
- let name = entity.key;
10
+ InMemoryDataProvider.prototype.transaction = function (action) {
11
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
12
+ return tslib_1.__generator(this, function (_a) {
13
+ switch (_a.label) {
14
+ case 0: return [4 /*yield*/, action(this)];
15
+ case 1:
16
+ _a.sent();
17
+ return [2 /*return*/];
18
+ }
19
+ });
20
+ });
21
+ };
22
+ InMemoryDataProvider.prototype.getEntityDataProvider = function (entity) {
23
+ var name = entity.key;
11
24
  if (!this.rows[name])
12
25
  this.rows[name] = [];
13
- return new ArrayEntityDataProvider(entity, this.rows[name]);
14
- }
15
- toString() { return "InMemoryDataProvider"; }
16
- }
26
+ return new array_entity_data_provider_1.ArrayEntityDataProvider(entity, this.rows[name]);
27
+ };
28
+ InMemoryDataProvider.prototype.toString = function () { return "InMemoryDataProvider"; };
29
+ return InMemoryDataProvider;
30
+ }());
31
+ exports.InMemoryDataProvider = InMemoryDataProvider;