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
package/src/sort.js CHANGED
@@ -1,82 +1,139 @@
1
- import { CompoundIdField } from "./column";
2
- export class Sort {
3
- constructor(...segments) {
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
+ }
4
12
  this.Segments = segments;
5
13
  }
6
- toEntityOrderBy() {
7
- let result = {};
8
- for (const seg of this.Segments) {
9
- if (seg.isDescending) {
10
- result[seg.field.key] = "desc";
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";
11
25
  }
12
- else
13
- result[seg.field.key] = "asc";
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; }
14
33
  }
15
34
  return result;
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 });
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; }
21
51
  }
22
52
  return r;
23
- }
24
- static translateOrderByToSort(entityDefs, orderBy) {
53
+ };
54
+ Sort.translateOrderByToSort = function (entityDefs, orderBy) {
25
55
  if (!orderBy)
26
56
  return undefined;
27
- let sort;
57
+ var sort;
28
58
  if (orderBy) {
29
59
  sort = new Sort();
30
- for (const key in orderBy) {
60
+ for (var key in orderBy) {
31
61
  if (Object.prototype.hasOwnProperty.call(orderBy, key)) {
32
- const element = orderBy[key];
33
- let field = entityDefs.fields.find(key);
62
+ var element = orderBy[key];
63
+ var field = entityDefs.fields.find(key);
34
64
  if (field) {
35
65
  switch (element) {
36
66
  case "desc":
37
- sort.Segments.push({ field, isDescending: true });
67
+ sort.Segments.push({ field: field, isDescending: true });
38
68
  break;
39
69
  case "asc":
40
- sort.Segments.push({ field });
70
+ sort.Segments.push({ field: field });
41
71
  }
42
72
  }
43
73
  }
44
74
  }
45
75
  }
46
76
  return sort;
47
- }
48
- static createUniqueSort(entityMetadata, orderBy) {
77
+ };
78
+ Sort.createUniqueSort = function (entityMetadata, orderBy) {
79
+ var e_3, _a;
49
80
  if (!orderBy || Object.keys(orderBy).length === 0)
50
81
  orderBy = Sort.translateOrderByToSort(entityMetadata, entityMetadata.options.defaultOrderBy);
51
82
  if (!orderBy)
52
83
  orderBy = new Sort({ field: entityMetadata.idMetadata.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)) {
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; })) {
56
87
  orderBy.Segments.push({ field: field });
57
88
  }
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; }
58
102
  }
59
103
  }
60
- else if (!orderBy.Segments.find(x => x.field == entityMetadata.idMetadata.field)) {
104
+ else if (!orderBy.Segments.find(function (x) { return x.field == entityMetadata.idMetadata.field; })) {
61
105
  orderBy.Segments.push({ field: entityMetadata.idMetadata.field });
62
106
  }
63
107
  return orderBy;
64
- }
65
- static createUniqueEntityOrderBy(entityMetadata, orderBy) {
108
+ };
109
+ Sort.createUniqueEntityOrderBy = function (entityMetadata, orderBy) {
110
+ var _a, e_4, _b;
66
111
  if (!orderBy || Object.keys(orderBy).length === 0)
67
112
  orderBy = entityMetadata.options.defaultOrderBy;
68
113
  if (!orderBy)
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";
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);
74
128
  }
129
+ finally { if (e_4) throw e_4.error; }
75
130
  }
76
131
  }
77
132
  else if (!orderBy[entityMetadata.idMetadata.field.key]) {
78
133
  orderBy[entityMetadata.idMetadata.field.key] = "asc";
79
134
  }
80
135
  return orderBy;
81
- }
82
- }
136
+ };
137
+ return Sort;
138
+ }());
139
+ exports.Sort = Sort;
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/src/tests/Done.js CHANGED
@@ -1,11 +1,17 @@
1
- export class Done {
2
- constructor() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Done = void 0;
4
+ var Done = /** @class */ (function () {
5
+ function Done() {
3
6
  this.happened = false;
4
7
  }
5
- ok() {
8
+ Done.prototype.ok = function () {
6
9
  this.happened = true;
7
- }
8
- test(message = 'expected to be done') {
10
+ };
11
+ Done.prototype.test = function (message) {
12
+ if (message === void 0) { message = 'expected to be done'; }
9
13
  expect(this.happened).toBe(true, message);
10
- }
11
- }
14
+ };
15
+ return Done;
16
+ }());
17
+ exports.Done = Done;
@@ -1,22 +1,29 @@
1
- export class TestDataApiResponse {
2
- progress(progress) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestDataApiResponse = void 0;
4
+ var TestDataApiResponse = /** @class */ (function () {
5
+ function TestDataApiResponse() {
3
6
  }
4
- success(data) {
7
+ TestDataApiResponse.prototype.progress = function (progress) {
8
+ };
9
+ TestDataApiResponse.prototype.success = function (data) {
5
10
  throw new Error(('didnt expect success: ' + JSON.stringify(data)));
6
- }
7
- forbidden() {
11
+ };
12
+ TestDataApiResponse.prototype.forbidden = function () {
8
13
  throw new Error('didnt expect forbidden:');
9
- }
10
- created(data) {
14
+ };
15
+ TestDataApiResponse.prototype.created = function (data) {
11
16
  throw new Error('didnt expect created: ' + JSON.stringify(data));
12
- }
13
- deleted() {
17
+ };
18
+ TestDataApiResponse.prototype.deleted = function () {
14
19
  throw new Error('didnt expect deleted:');
15
- }
16
- notFound() {
20
+ };
21
+ TestDataApiResponse.prototype.notFound = function () {
17
22
  throw new Error('not found');
18
- }
19
- error(data) {
23
+ };
24
+ TestDataApiResponse.prototype.error = function (data) {
20
25
  throw new Error('error: ' + data + " " + JSON.stringify(data));
21
- }
22
- }
26
+ };
27
+ return TestDataApiResponse;
28
+ }());
29
+ exports.TestDataApiResponse = TestDataApiResponse;
package/src/tests/c.js CHANGED
@@ -1,22 +1,28 @@
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;
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;
8
13
  }
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 };
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;
@@ -1,22 +1,50 @@
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);
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
+ }
20
47
  });
21
- return [rep, remult];
48
+ });
22
49
  }
50
+ exports.createData = createData;
package/src/tests/d.js CHANGED
@@ -1,19 +1,27 @@
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
+ "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,32 +1,45 @@
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;
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;
9
11
  }
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 };
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;
@@ -1,44 +1,68 @@
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
- ]
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
+ }
24
43
  });
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;
25
62
  }
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 };
63
+ entityForCustomFilter1 = tslib_1.__decorate([
64
+ remult3_1.Entity('entityForCustomFilter1', { allowApiCrud: true })
65
+ ], entityForCustomFilter1);
66
+ return entityForCustomFilter1;
67
+ }(entityForCustomFilter));
68
+ exports.entityForCustomFilter1 = entityForCustomFilter1;