remult 0.14.4 → 0.14.5

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 (69) hide show
  1. package/assign.js +1 -5
  2. package/classType.js +1 -2
  3. package/graphql.js +84 -146
  4. package/index.js +25 -73
  5. package/inputTypes.js +9 -16
  6. package/package.json +2 -1
  7. package/postgres/index.js +1 -4
  8. package/postgres/postgres-data-provider.js +165 -364
  9. package/postgres/postgresColumnSyntax.js +4 -8
  10. package/remult-express.js +6 -10
  11. package/remult-knex/index.js +300 -720
  12. package/remult-middleware.js +24 -30
  13. package/remult-mongo.js +172 -406
  14. package/server/JsonEntityFileStorage.js +10 -15
  15. package/server/expressBridge.js +383 -569
  16. package/server/index.js +4 -11
  17. package/server/register-actions-on-server.js +12 -38
  18. package/server/register-entities-on-server.js +9 -13
  19. package/src/__EntityValueProvider.js +1 -2
  20. package/src/__RowsOfDataForTesting.js +1 -2
  21. package/src/backend-tests/backend-database-test-setup.backend-spec.js +72 -190
  22. package/src/backend-tests/my-test.backend-spec.js +45 -114
  23. package/src/column-interfaces.js +2 -6
  24. package/src/column.js +71 -113
  25. package/src/context.js +174 -330
  26. package/src/data-api.js +162 -326
  27. package/src/data-interfaces.js +7 -11
  28. package/src/data-providers/array-entity-data-provider.js +171 -286
  29. package/src/data-providers/in-memory-database.js +12 -27
  30. package/src/data-providers/json-data-provider.js +41 -77
  31. package/src/data-providers/rest-data-provider.js +102 -189
  32. package/src/data-providers/sql-database.js +223 -403
  33. package/src/data-providers/web-sql-data-provider.js +78 -139
  34. package/src/entity.js +1 -2
  35. package/src/filter/filter-consumer-bridge-to-sql-request.js +106 -248
  36. package/src/filter/filter-consumer-bridge-to-url-builder.js +1 -2
  37. package/src/filter/filter-interfaces.js +277 -440
  38. package/src/id-entity.js +8 -17
  39. package/src/remult3/RepositoryImplementation.js +1191 -2367
  40. package/src/remult3/index.js +2 -5
  41. package/src/remult3/remult3.js +1 -2
  42. package/src/server-action.js +294 -528
  43. package/src/shared-tests/db-tests-setup.js +49 -153
  44. package/src/shared-tests/db-tests.db-tests.js +660 -1566
  45. package/src/shared-tests/deleteAll.js +3 -20
  46. package/src/shared-tests/entityWithValidations.js +52 -79
  47. package/src/shared-tests/index.js +4 -6
  48. package/src/shared-tests/test-custom-id-column.spec.js +37 -85
  49. package/src/shared-tests/test-special-value.spec.js +64 -104
  50. package/src/shared-tests/test-update-with-null.spec.js +28 -49
  51. package/src/sort.js +38 -95
  52. package/src/sql-command.js +1 -2
  53. package/src/tests/Done.js +7 -13
  54. package/src/tests/TestDataApiResponse.js +15 -22
  55. package/src/tests/c.js +21 -27
  56. package/src/tests/createData.js +20 -48
  57. package/src/tests/d.js +19 -27
  58. package/src/tests/dWithPrefilter.js +31 -44
  59. package/src/tests/entityForCustomFilter.js +42 -66
  60. package/src/tests/entityWithValidationsOnColumn.js +21 -29
  61. package/src/tests/frontend-database-tests-setup.spec.js +35 -98
  62. package/src/tests/h.js +35 -44
  63. package/src/tests/remult-3-entities.js +71 -80
  64. package/src/tests/tasks.js +23 -29
  65. package/src/tests/testHelper.spec.js +170 -322
  66. package/src/tests/testModel/models.js +25 -33
  67. package/src/validators.js +32 -59
  68. package/urlBuilder.js +8 -14
  69. package/valueConverters.js +161 -160
package/src/sort.js CHANGED
@@ -1,139 +1,82 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Sort = void 0;
4
- var tslib_1 = require("tslib");
5
- var column_1 = require("./column");
6
- var Sort = /** @class */ (function () {
7
- function Sort() {
8
- var segments = [];
9
- for (var _i = 0; _i < arguments.length; _i++) {
10
- segments[_i] = arguments[_i];
11
- }
1
+ import { CompoundIdField } from "./column";
2
+ export class Sort {
3
+ constructor(...segments) {
12
4
  this.Segments = segments;
13
5
  }
14
- Sort.prototype.toEntityOrderBy = function () {
15
- var e_1, _a;
16
- var result = {};
17
- try {
18
- for (var _b = tslib_1.__values(this.Segments), _c = _b.next(); !_c.done; _c = _b.next()) {
19
- var seg = _c.value;
20
- if (seg.isDescending) {
21
- result[seg.field.key] = "desc";
22
- }
23
- else
24
- result[seg.field.key] = "asc";
6
+ toEntityOrderBy() {
7
+ let result = {};
8
+ for (const seg of this.Segments) {
9
+ if (seg.isDescending) {
10
+ result[seg.field.key] = "desc";
25
11
  }
26
- }
27
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
28
- finally {
29
- try {
30
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
31
- }
32
- finally { if (e_1) throw e_1.error; }
12
+ else
13
+ result[seg.field.key] = "asc";
33
14
  }
34
15
  return result;
35
- };
36
- Sort.prototype.reverse = function () {
37
- var e_2, _a;
38
- var r = new Sort();
39
- try {
40
- for (var _b = tslib_1.__values(this.Segments), _c = _b.next(); !_c.done; _c = _b.next()) {
41
- var s = _c.value;
42
- r.Segments.push({ field: s.field, isDescending: !s.isDescending });
43
- }
44
- }
45
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
46
- finally {
47
- try {
48
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
49
- }
50
- finally { if (e_2) throw e_2.error; }
16
+ }
17
+ reverse() {
18
+ let r = new Sort();
19
+ for (const s of this.Segments) {
20
+ r.Segments.push({ field: s.field, isDescending: !s.isDescending });
51
21
  }
52
22
  return r;
53
- };
54
- Sort.translateOrderByToSort = function (entityDefs, orderBy) {
23
+ }
24
+ static translateOrderByToSort(entityDefs, orderBy) {
55
25
  if (!orderBy)
56
26
  return undefined;
57
- var sort;
27
+ let sort;
58
28
  if (orderBy) {
59
29
  sort = new Sort();
60
- for (var key in orderBy) {
30
+ for (const key in orderBy) {
61
31
  if (Object.prototype.hasOwnProperty.call(orderBy, key)) {
62
- var element = orderBy[key];
63
- var field = entityDefs.fields.find(key);
32
+ const element = orderBy[key];
33
+ let field = entityDefs.fields.find(key);
64
34
  if (field) {
65
35
  switch (element) {
66
36
  case "desc":
67
- sort.Segments.push({ field: field, isDescending: true });
37
+ sort.Segments.push({ field, isDescending: true });
68
38
  break;
69
39
  case "asc":
70
- sort.Segments.push({ field: field });
40
+ sort.Segments.push({ field });
71
41
  }
72
42
  }
73
43
  }
74
44
  }
75
45
  }
76
46
  return sort;
77
- };
78
- Sort.createUniqueSort = function (entityMetadata, orderBy) {
79
- var e_3, _a;
47
+ }
48
+ static createUniqueSort(entityMetadata, orderBy) {
80
49
  if (!orderBy || Object.keys(orderBy).length === 0)
81
50
  orderBy = Sort.translateOrderByToSort(entityMetadata, entityMetadata.options.defaultOrderBy);
82
51
  if (!orderBy)
83
52
  orderBy = new Sort({ field: entityMetadata.idMetadata.field });
84
- if (entityMetadata.idMetadata.field instanceof column_1.CompoundIdField) {
85
- var _loop_1 = function (field) {
86
- if (!orderBy.Segments.find(function (x) { return x.field == field; })) {
53
+ if (entityMetadata.idMetadata.field instanceof CompoundIdField) {
54
+ for (const field of entityMetadata.idMetadata.field.fields) {
55
+ if (!orderBy.Segments.find(x => x.field == field)) {
87
56
  orderBy.Segments.push({ field: field });
88
57
  }
89
- };
90
- try {
91
- for (var _b = tslib_1.__values(entityMetadata.idMetadata.field.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
92
- var field = _c.value;
93
- _loop_1(field);
94
- }
95
- }
96
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
97
- finally {
98
- try {
99
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
100
- }
101
- finally { if (e_3) throw e_3.error; }
102
58
  }
103
59
  }
104
- else if (!orderBy.Segments.find(function (x) { return x.field == entityMetadata.idMetadata.field; })) {
60
+ else if (!orderBy.Segments.find(x => x.field == entityMetadata.idMetadata.field)) {
105
61
  orderBy.Segments.push({ field: entityMetadata.idMetadata.field });
106
62
  }
107
63
  return orderBy;
108
- };
109
- Sort.createUniqueEntityOrderBy = function (entityMetadata, orderBy) {
110
- var _a, e_4, _b;
64
+ }
65
+ static createUniqueEntityOrderBy(entityMetadata, orderBy) {
111
66
  if (!orderBy || Object.keys(orderBy).length === 0)
112
67
  orderBy = entityMetadata.options.defaultOrderBy;
113
68
  if (!orderBy)
114
- orderBy = (_a = {}, _a[entityMetadata.idMetadata.field.key] = "asc", _a);
115
- if (entityMetadata.idMetadata.field instanceof column_1.CompoundIdField) {
116
- try {
117
- for (var _c = tslib_1.__values(entityMetadata.idMetadata.field.fields), _d = _c.next(); !_d.done; _d = _c.next()) {
118
- var field = _d.value;
119
- if (!orderBy[field.key]) {
120
- orderBy[field.key] = "asc";
121
- }
122
- }
123
- }
124
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
125
- finally {
126
- try {
127
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
69
+ orderBy = { [entityMetadata.idMetadata.field.key]: "asc" };
70
+ if (entityMetadata.idMetadata.field instanceof CompoundIdField) {
71
+ for (const field of entityMetadata.idMetadata.field.fields) {
72
+ if (!orderBy[field.key]) {
73
+ orderBy[field.key] = "asc";
128
74
  }
129
- finally { if (e_4) throw e_4.error; }
130
75
  }
131
76
  }
132
77
  else if (!orderBy[entityMetadata.idMetadata.field.key]) {
133
78
  orderBy[entityMetadata.idMetadata.field.key] = "asc";
134
79
  }
135
80
  return orderBy;
136
- };
137
- return Sort;
138
- }());
139
- exports.Sort = Sort;
81
+ }
82
+ }
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
package/src/tests/Done.js CHANGED
@@ -1,17 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Done = void 0;
4
- var Done = /** @class */ (function () {
5
- function Done() {
1
+ export class Done {
2
+ constructor() {
6
3
  this.happened = false;
7
4
  }
8
- Done.prototype.ok = function () {
5
+ ok() {
9
6
  this.happened = true;
10
- };
11
- Done.prototype.test = function (message) {
12
- if (message === void 0) { message = 'expected to be done'; }
7
+ }
8
+ test(message = 'expected to be done') {
13
9
  expect(this.happened).toBe(true, message);
14
- };
15
- return Done;
16
- }());
17
- exports.Done = Done;
10
+ }
11
+ }
@@ -1,29 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestDataApiResponse = void 0;
4
- var TestDataApiResponse = /** @class */ (function () {
5
- function TestDataApiResponse() {
1
+ export class TestDataApiResponse {
2
+ progress(progress) {
6
3
  }
7
- TestDataApiResponse.prototype.progress = function (progress) {
8
- };
9
- TestDataApiResponse.prototype.success = function (data) {
4
+ success(data) {
10
5
  throw new Error(('didnt expect success: ' + JSON.stringify(data)));
11
- };
12
- TestDataApiResponse.prototype.forbidden = function () {
6
+ }
7
+ forbidden() {
13
8
  throw new Error('didnt expect forbidden:');
14
- };
15
- TestDataApiResponse.prototype.created = function (data) {
9
+ }
10
+ created(data) {
16
11
  throw new Error('didnt expect created: ' + JSON.stringify(data));
17
- };
18
- TestDataApiResponse.prototype.deleted = function () {
12
+ }
13
+ deleted() {
19
14
  throw new Error('didnt expect deleted:');
20
- };
21
- TestDataApiResponse.prototype.notFound = function () {
15
+ }
16
+ notFound() {
22
17
  throw new Error('not found');
23
- };
24
- TestDataApiResponse.prototype.error = function (data) {
18
+ }
19
+ error(data) {
25
20
  throw new Error('error: ' + data + " " + JSON.stringify(data));
26
- };
27
- return TestDataApiResponse;
28
- }());
29
- exports.TestDataApiResponse = TestDataApiResponse;
21
+ }
22
+ }
package/src/tests/c.js CHANGED
@@ -1,28 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.c = void 0;
4
- var tslib_1 = require("tslib");
5
- var context_1 = require("../context");
6
- var remult3_1 = require("../remult3");
7
- var c = /** @class */ (function (_super) {
8
- tslib_1.__extends(c, _super);
9
- function c(remult) {
10
- var _this = _super.call(this) || this;
11
- _this.remult = remult;
12
- return _this;
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Remult } from '../context';
3
+ import { Entity, EntityBase, Fields } from '../remult3';
4
+ let c = class c extends EntityBase {
5
+ constructor(remult) {
6
+ super();
7
+ this.remult = remult;
13
8
  }
14
- tslib_1.__decorate([
15
- remult3_1.Fields.integer(),
16
- tslib_1.__metadata("design:type", Number)
17
- ], c.prototype, "id", void 0);
18
- tslib_1.__decorate([
19
- remult3_1.Fields.string(),
20
- tslib_1.__metadata("design:type", String)
21
- ], c.prototype, "name", void 0);
22
- c = tslib_1.__decorate([
23
- remult3_1.Entity('c', { allowApiCrud: true }),
24
- tslib_1.__metadata("design:paramtypes", [context_1.Remult])
25
- ], c);
26
- return c;
27
- }(remult3_1.EntityBase));
28
- exports.c = c;
9
+ };
10
+ __decorate([
11
+ Fields.integer(),
12
+ __metadata("design:type", Number)
13
+ ], c.prototype, "id", void 0);
14
+ __decorate([
15
+ Fields.string(),
16
+ __metadata("design:type", String)
17
+ ], c.prototype, "name", void 0);
18
+ c = __decorate([
19
+ Entity('c', { allowApiCrud: true }),
20
+ __metadata("design:paramtypes", [Remult])
21
+ ], c);
22
+ export { c };
@@ -1,50 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createData = void 0;
4
- var tslib_1 = require("tslib");
5
- var in_memory_database_1 = require("../data-providers/in-memory-database");
6
- var context_1 = require("../context");
7
- var remult_3_entities_1 = require("./remult-3-entities");
8
- var deleteAll_1 = require("../shared-tests/deleteAll");
9
- function createData(doInsert, entity) {
10
- return tslib_1.__awaiter(this, void 0, void 0, function () {
11
- var remult, rep;
12
- var _this = this;
13
- return tslib_1.__generator(this, function (_a) {
14
- switch (_a.label) {
15
- case 0:
16
- remult = new context_1.Remult();
17
- remult.setDataProvider(new in_memory_database_1.InMemoryDataProvider());
18
- if (!entity)
19
- entity = remult_3_entities_1.Categories;
20
- return [4 /*yield*/, deleteAll_1.deleteAll(remult.repo(entity))];
21
- case 1:
22
- rep = _a.sent();
23
- if (!doInsert) return [3 /*break*/, 3];
24
- return [4 /*yield*/, doInsert(function (id, name, description, status) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
25
- var c;
26
- return tslib_1.__generator(this, function (_a) {
27
- switch (_a.label) {
28
- case 0:
29
- c = rep.create();
30
- c.id = id;
31
- c.categoryName = name;
32
- c.description = description;
33
- if (status)
34
- c.status = status;
35
- return [4 /*yield*/, rep.save(c)];
36
- case 1:
37
- _a.sent();
38
- return [2 /*return*/];
39
- }
40
- });
41
- }); })];
42
- case 2:
43
- _a.sent();
44
- _a.label = 3;
45
- case 3: return [2 /*return*/, [rep, remult]];
46
- }
1
+ import { InMemoryDataProvider } from '../data-providers/in-memory-database';
2
+ import { Remult } from '../context';
3
+ import { Categories as newCategories } from './remult-3-entities';
4
+ import { deleteAll } from '../shared-tests/deleteAll';
5
+ export async function createData(doInsert, entity) {
6
+ let remult = new Remult();
7
+ remult.setDataProvider(new InMemoryDataProvider());
8
+ if (!entity)
9
+ entity = newCategories;
10
+ let rep = await deleteAll(remult.repo(entity));
11
+ if (doInsert)
12
+ await doInsert(async (id, name, description, status) => {
13
+ let c = rep.create();
14
+ c.id = id;
15
+ c.categoryName = name;
16
+ c.description = description;
17
+ if (status)
18
+ c.status = status;
19
+ await rep.save(c);
47
20
  });
48
- });
21
+ return [rep, remult];
49
22
  }
50
- exports.createData = createData;
package/src/tests/d.js CHANGED
@@ -1,27 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.d = void 0;
4
- var tslib_1 = require("tslib");
5
- var remult3_1 = require("../remult3");
6
- var d = /** @class */ (function (_super) {
7
- tslib_1.__extends(d, _super);
8
- function d() {
9
- return _super !== null && _super.apply(this, arguments) || this;
10
- }
11
- d.count = 0;
12
- tslib_1.__decorate([
13
- remult3_1.Fields.integer(),
14
- tslib_1.__metadata("design:type", Number)
15
- ], d.prototype, "id", void 0);
16
- tslib_1.__decorate([
17
- remult3_1.Fields.integer(),
18
- tslib_1.__metadata("design:type", Number)
19
- ], d.prototype, "b", void 0);
20
- d = tslib_1.__decorate([
21
- remult3_1.Entity('d1', {
22
- allowApiCrud: true
23
- })
24
- ], d);
25
- return d;
26
- }(remult3_1.EntityBase));
27
- exports.d = d;
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Entity, EntityBase, Fields } from '../remult3';
3
+ let d = class d extends EntityBase {
4
+ };
5
+ d.count = 0;
6
+ __decorate([
7
+ Fields.integer(),
8
+ __metadata("design:type", Number)
9
+ ], d.prototype, "id", void 0);
10
+ __decorate([
11
+ Fields.integer(),
12
+ __metadata("design:type", Number)
13
+ ], d.prototype, "b", void 0);
14
+ d = __decorate([
15
+ Entity('d1', {
16
+ allowApiCrud: true
17
+ })
18
+ ], d);
19
+ export { d };
@@ -1,45 +1,32 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dWithPrefilter = void 0;
4
- var tslib_1 = require("tslib");
5
- var server_action_1 = require("../server-action");
6
- var remult3_1 = require("../remult3");
7
- var dWithPrefilter = /** @class */ (function (_super) {
8
- tslib_1.__extends(dWithPrefilter, _super);
9
- function dWithPrefilter() {
10
- return _super !== null && _super.apply(this, arguments) || this;
1
+ var dWithPrefilter_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { BackendMethod } from '../server-action';
4
+ import { Entity, EntityBase, Fields } from '../remult3';
5
+ let dWithPrefilter = dWithPrefilter_1 = class dWithPrefilter extends EntityBase {
6
+ async doIt() {
7
+ dWithPrefilter_1.count++;
8
+ return true;
11
9
  }
12
- dWithPrefilter_1 = dWithPrefilter;
13
- dWithPrefilter.prototype.doIt = function () {
14
- return tslib_1.__awaiter(this, void 0, void 0, function () {
15
- return tslib_1.__generator(this, function (_a) {
16
- dWithPrefilter_1.count++;
17
- return [2 /*return*/, true];
18
- });
19
- });
20
- };
21
- var dWithPrefilter_1;
22
- dWithPrefilter.count = 0;
23
- tslib_1.__decorate([
24
- remult3_1.Fields.integer(),
25
- tslib_1.__metadata("design:type", Number)
26
- ], dWithPrefilter.prototype, "id", void 0);
27
- tslib_1.__decorate([
28
- remult3_1.Fields.integer(),
29
- tslib_1.__metadata("design:type", Number)
30
- ], dWithPrefilter.prototype, "b", void 0);
31
- tslib_1.__decorate([
32
- server_action_1.BackendMethod({ allowed: true }),
33
- tslib_1.__metadata("design:type", Function),
34
- tslib_1.__metadata("design:paramtypes", []),
35
- tslib_1.__metadata("design:returntype", Promise)
36
- ], dWithPrefilter.prototype, "doIt", null);
37
- dWithPrefilter = dWithPrefilter_1 = tslib_1.__decorate([
38
- remult3_1.Entity('d', {
39
- apiPrefilter: { b: 2 },
40
- allowApiCrud: true
41
- })
42
- ], dWithPrefilter);
43
- return dWithPrefilter;
44
- }(remult3_1.EntityBase));
45
- exports.dWithPrefilter = dWithPrefilter;
10
+ };
11
+ dWithPrefilter.count = 0;
12
+ __decorate([
13
+ Fields.integer(),
14
+ __metadata("design:type", Number)
15
+ ], dWithPrefilter.prototype, "id", void 0);
16
+ __decorate([
17
+ Fields.integer(),
18
+ __metadata("design:type", Number)
19
+ ], dWithPrefilter.prototype, "b", void 0);
20
+ __decorate([
21
+ BackendMethod({ allowed: true }),
22
+ __metadata("design:type", Function),
23
+ __metadata("design:paramtypes", []),
24
+ __metadata("design:returntype", Promise)
25
+ ], dWithPrefilter.prototype, "doIt", null);
26
+ dWithPrefilter = dWithPrefilter_1 = __decorate([
27
+ Entity('d', {
28
+ apiPrefilter: { b: 2 },
29
+ allowApiCrud: true
30
+ })
31
+ ], dWithPrefilter);
32
+ export { dWithPrefilter };
@@ -1,68 +1,44 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.entityForCustomFilter1 = exports.entityForCustomFilter = void 0;
4
- var tslib_1 = require("tslib");
5
- var sql_database_1 = require("../data-providers/sql-database");
6
- var remult3_1 = require("../remult3");
7
- var filter_interfaces_1 = require("../filter/filter-interfaces");
8
- var array_entity_data_provider_1 = require("../data-providers/array-entity-data-provider");
9
- var filter_consumer_bridge_to_sql_request_1 = require("../filter/filter-consumer-bridge-to-sql-request");
10
- var entityForCustomFilter = /** @class */ (function (_super) {
11
- tslib_1.__extends(entityForCustomFilter, _super);
12
- function entityForCustomFilter() {
13
- return _super !== null && _super.apply(this, arguments) || this;
14
- }
15
- entityForCustomFilter_1 = entityForCustomFilter;
16
- var entityForCustomFilter_1;
17
- entityForCustomFilter.filter = filter_interfaces_1.Filter.createCustom(function (remult, c) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
18
- var r, meta_1, e_1;
19
- return tslib_1.__generator(this, function (_a) {
20
- switch (_a.label) {
21
- case 0:
22
- r = [];
23
- if (c.oneAndThree)
24
- r.push({ id: [1, 3] });
25
- if (c.two)
26
- r.push({ id: 2 });
27
- if (!c.dbOneOrThree) return [3 /*break*/, 2];
28
- meta_1 = remult.repo(entityForCustomFilter_1).metadata;
29
- return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(meta_1)];
30
- case 1:
31
- e_1 = _a.sent();
32
- r.push({
33
- $and: [
34
- sql_database_1.SqlDatabase.customFilter(function (x) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
35
- return [2 /*return*/, x.sql = e_1.nameOf(meta_1.fields.id) + ' in (' + x.addParameterAndReturnSqlToken(1) + "," + x.addParameterAndReturnSqlToken(3) + ")"];
36
- }); }); }),
37
- array_entity_data_provider_1.ArrayEntityDataProvider.customFilter(function (x) { return x.id == 1 || x.id == 3; })
38
- ]
39
- });
40
- _a.label = 2;
41
- case 2: return [2 /*return*/, { $and: r }];
42
- }
1
+ var entityForCustomFilter_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { SqlDatabase } from '../data-providers/sql-database';
4
+ import { Entity, EntityBase, Fields } from '../remult3';
5
+ import { Filter } from '../filter/filter-interfaces';
6
+ import { ArrayEntityDataProvider } from '../data-providers/array-entity-data-provider';
7
+ import { getDbNameProvider } from '../filter/filter-consumer-bridge-to-sql-request';
8
+ let entityForCustomFilter = entityForCustomFilter_1 = class entityForCustomFilter extends EntityBase {
9
+ };
10
+ entityForCustomFilter.filter = Filter.createCustom(async (remult, c) => {
11
+ let r = [];
12
+ if (c.oneAndThree)
13
+ r.push({ id: [1, 3] });
14
+ if (c.two)
15
+ r.push({ id: 2 });
16
+ if (c.dbOneOrThree) {
17
+ let meta = remult.repo(entityForCustomFilter_1).metadata;
18
+ const e = await getDbNameProvider(meta);
19
+ r.push({
20
+ $and: [
21
+ SqlDatabase.customFilter(async (x) => x.sql = e.nameOf(meta.fields.id) + ' in (' + x.addParameterAndReturnSqlToken(1) + "," + x.addParameterAndReturnSqlToken(3) + ")"),
22
+ ArrayEntityDataProvider.customFilter(x => x.id == 1 || x.id == 3)
23
+ ]
43
24
  });
44
- }); });
45
- entityForCustomFilter.oneAndThree = filter_interfaces_1.Filter.createCustom(function () { return ({ id: [1, 3] }); });
46
- entityForCustomFilter.testNumericValue = filter_interfaces_1.Filter.createCustom(function (r, val) { return ({ id: val }); });
47
- entityForCustomFilter.testObjectValue = filter_interfaces_1.Filter.createCustom(function (r, val) { return ({ id: val.val }); });
48
- tslib_1.__decorate([
49
- remult3_1.Fields.integer(),
50
- tslib_1.__metadata("design:type", Number)
51
- ], entityForCustomFilter.prototype, "id", void 0);
52
- entityForCustomFilter = entityForCustomFilter_1 = tslib_1.__decorate([
53
- remult3_1.Entity('entityForCustomFilter', { allowApiCrud: true })
54
- ], entityForCustomFilter);
55
- return entityForCustomFilter;
56
- }(remult3_1.EntityBase));
57
- exports.entityForCustomFilter = entityForCustomFilter;
58
- var entityForCustomFilter1 = /** @class */ (function (_super) {
59
- tslib_1.__extends(entityForCustomFilter1, _super);
60
- function entityForCustomFilter1() {
61
- return _super !== null && _super.apply(this, arguments) || this;
62
25
  }
63
- entityForCustomFilter1 = tslib_1.__decorate([
64
- remult3_1.Entity('entityForCustomFilter1', { allowApiCrud: true })
65
- ], entityForCustomFilter1);
66
- return entityForCustomFilter1;
67
- }(entityForCustomFilter));
68
- exports.entityForCustomFilter1 = entityForCustomFilter1;
26
+ return { $and: r };
27
+ });
28
+ entityForCustomFilter.oneAndThree = Filter.createCustom(() => ({ id: [1, 3] }));
29
+ entityForCustomFilter.testNumericValue = Filter.createCustom((r, val) => ({ id: val }));
30
+ entityForCustomFilter.testObjectValue = Filter.createCustom((r, val) => ({ id: val.val }));
31
+ __decorate([
32
+ Fields.integer(),
33
+ __metadata("design:type", Number)
34
+ ], entityForCustomFilter.prototype, "id", void 0);
35
+ entityForCustomFilter = entityForCustomFilter_1 = __decorate([
36
+ Entity('entityForCustomFilter', { allowApiCrud: true })
37
+ ], entityForCustomFilter);
38
+ export { entityForCustomFilter };
39
+ let entityForCustomFilter1 = class entityForCustomFilter1 extends entityForCustomFilter {
40
+ };
41
+ entityForCustomFilter1 = __decorate([
42
+ Entity('entityForCustomFilter1', { allowApiCrud: true })
43
+ ], entityForCustomFilter1);
44
+ export { entityForCustomFilter1 };