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
@@ -1,170 +1,66 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.testAllDbs = exports.testInMemory = exports.addDatabaseToTest = exports.testAll = exports.itWithFocus = void 0;
4
- var tslib_1 = require("tslib");
5
- var context_1 = require("../context");
6
- var in_memory_database_1 = require("../data-providers/in-memory-database");
7
- var remult_3_entities_1 = require("../tests/remult-3-entities");
8
- function itWithFocus(key, what, focus) {
9
- if (focus === void 0) { focus = false; }
1
+ import { Remult } from "../context";
2
+ import { InMemoryDataProvider } from "../data-providers/in-memory-database";
3
+ import { Categories } from "../tests/remult-3-entities";
4
+ export function itWithFocus(key, what, focus = false) {
10
5
  if (focus)
11
6
  fit(key, what);
12
7
  else
13
8
  it(key, what);
14
9
  }
15
- exports.itWithFocus = itWithFocus;
16
- function testAll(key, what, focus) {
17
- var e_1, _a;
18
- if (focus === void 0) { focus = false; }
19
- try {
20
- for (var databasesTesters_1 = tslib_1.__values(databasesTesters), databasesTesters_1_1 = databasesTesters_1.next(); !databasesTesters_1_1.done; databasesTesters_1_1 = databasesTesters_1.next()) {
21
- var test_1 = databasesTesters_1_1.value;
22
- test_1(key, what, focus);
23
- }
10
+ export function testAll(key, what, focus = false) {
11
+ for (const test of databasesTesters) {
12
+ test(key, what, focus);
24
13
  }
25
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
26
- finally {
27
- try {
28
- if (databasesTesters_1_1 && !databasesTesters_1_1.done && (_a = databasesTesters_1.return)) _a.call(databasesTesters_1);
29
- }
30
- finally { if (e_1) throw e_1.error; }
31
- }
32
- loadedTests.push(function (x) {
14
+ loadedTests.push(x => {
33
15
  x(key, what, focus);
34
16
  });
35
17
  }
36
- exports.testAll = testAll;
37
- var databasesTesters = [];
38
- var loadedTests = [];
39
- function addDatabaseToTest(tester) {
40
- var e_2, _a;
41
- try {
42
- for (var loadedTests_1 = tslib_1.__values(loadedTests), loadedTests_1_1 = loadedTests_1.next(); !loadedTests_1_1.done; loadedTests_1_1 = loadedTests_1.next()) {
43
- var test_2 = loadedTests_1_1.value;
44
- test_2(tester);
45
- }
46
- }
47
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
48
- finally {
49
- try {
50
- if (loadedTests_1_1 && !loadedTests_1_1.done && (_a = loadedTests_1.return)) _a.call(loadedTests_1);
51
- }
52
- finally { if (e_2) throw e_2.error; }
18
+ const databasesTesters = [];
19
+ const loadedTests = [];
20
+ export function addDatabaseToTest(tester) {
21
+ for (const test of loadedTests) {
22
+ test(tester);
53
23
  }
54
24
  databasesTesters.push(tester);
55
25
  }
56
- exports.addDatabaseToTest = addDatabaseToTest;
57
- function testInMemory(key, what, focus) {
58
- var _this = this;
59
- if (focus === void 0) { focus = false; }
60
- itWithFocus(key + " - in memory", function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
61
- var remult, db;
62
- var _this = this;
63
- return tslib_1.__generator(this, function (_a) {
64
- switch (_a.label) {
65
- case 0:
66
- remult = new context_1.Remult();
67
- db = new in_memory_database_1.InMemoryDataProvider();
68
- remult.setDataProvider(db);
69
- return [4 /*yield*/, what({ db: db, remult: remult, createEntity: function (x) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
70
- return [2 /*return*/, remult.repo(x)];
71
- }); }); } })];
72
- case 1:
73
- _a.sent();
74
- return [2 /*return*/];
75
- }
76
- });
77
- }); }, focus);
26
+ export function testInMemory(key, what, focus = false) {
27
+ itWithFocus(key + " - in memory", async () => {
28
+ let remult = new Remult();
29
+ let db = new InMemoryDataProvider();
30
+ remult.setDataProvider(db);
31
+ await what({ db, remult, createEntity: async (x) => remult.repo(x) });
32
+ }, focus);
78
33
  }
79
- exports.testInMemory = testInMemory;
80
34
  databasesTesters.push(testInMemory);
81
- function testAllDbs(key, doTest, focus) {
82
- if (focus === void 0) { focus = false; }
83
- return tslib_1.__awaiter(this, void 0, void 0, function () {
84
- var _this = this;
85
- return tslib_1.__generator(this, function (_a) {
86
- testAll(key, function (_a) {
87
- var remult = _a.remult, createEntity = _a.createEntity;
88
- return tslib_1.__awaiter(_this, void 0, void 0, function () {
89
- var createData;
90
- var _this = this;
91
- return tslib_1.__generator(this, function (_b) {
92
- switch (_b.label) {
93
- case 0:
94
- createData = function (doInsert, entity) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
95
- var rep;
96
- var _this = this;
97
- return tslib_1.__generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0:
100
- if (!entity)
101
- entity = remult_3_entities_1.Categories;
102
- return [4 /*yield*/, createEntity(entity)];
103
- case 1:
104
- rep = _a.sent();
105
- if (!doInsert) return [3 /*break*/, 3];
106
- return [4 /*yield*/, doInsert(function (id, name, description, status) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
107
- var c;
108
- return tslib_1.__generator(this, function (_a) {
109
- switch (_a.label) {
110
- case 0:
111
- c = rep.create();
112
- c.id = id;
113
- c.categoryName = name;
114
- c.description = description;
115
- if (status)
116
- c.status = status;
117
- return [4 /*yield*/, rep.save(c)];
118
- case 1:
119
- _a.sent();
120
- return [2 /*return*/];
121
- }
122
- });
123
- }); })];
124
- case 2:
125
- _a.sent();
126
- _a.label = 3;
127
- case 3: return [2 /*return*/, rep];
128
- }
129
- });
130
- }); };
131
- return [4 /*yield*/, doTest({
132
- remult: remult,
133
- createData: createData,
134
- insertFourRows: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
135
- var _this = this;
136
- return tslib_1.__generator(this, function (_a) {
137
- return [2 /*return*/, createData(function (i) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
138
- return tslib_1.__generator(this, function (_a) {
139
- switch (_a.label) {
140
- case 0: return [4 /*yield*/, i(1, 'noam', 'x')];
141
- case 1:
142
- _a.sent();
143
- return [4 /*yield*/, i(4, 'yael', 'x')];
144
- case 2:
145
- _a.sent();
146
- return [4 /*yield*/, i(2, 'yoni', 'y')];
147
- case 3:
148
- _a.sent();
149
- return [4 /*yield*/, i(3, 'maayan', 'y')];
150
- case 4:
151
- _a.sent();
152
- return [2 /*return*/];
153
- }
154
- });
155
- }); })];
156
- });
157
- }); }
158
- })];
159
- case 1:
160
- _b.sent();
161
- return [2 /*return*/];
162
- }
163
- });
35
+ export async function testAllDbs(key, doTest, focus = false) {
36
+ testAll(key, async ({ remult, createEntity }) => {
37
+ let createData = async (doInsert, entity) => {
38
+ if (!entity)
39
+ entity = Categories;
40
+ let rep = await createEntity(entity);
41
+ if (doInsert)
42
+ await doInsert(async (id, name, description, status) => {
43
+ let c = rep.create();
44
+ c.id = id;
45
+ c.categoryName = name;
46
+ c.description = description;
47
+ if (status)
48
+ c.status = status;
49
+ await rep.save(c);
164
50
  });
165
- }, focus);
166
- return [2 /*return*/];
51
+ return rep;
52
+ };
53
+ await doTest({
54
+ remult,
55
+ createData,
56
+ insertFourRows: async () => {
57
+ return createData(async (i) => {
58
+ await i(1, 'noam', 'x');
59
+ await i(4, 'yael', 'x');
60
+ await i(2, 'yoni', 'y');
61
+ await i(3, 'maayan', 'y');
62
+ });
63
+ }
167
64
  });
168
- });
65
+ }, focus);
169
66
  }
170
- exports.testAllDbs = testAllDbs;