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,66 +1,170 @@
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) {
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; }
5
10
  if (focus)
6
11
  fit(key, what);
7
12
  else
8
13
  it(key, what);
9
14
  }
10
- export function testAll(key, what, focus = false) {
11
- for (const test of databasesTesters) {
12
- test(key, what, focus);
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
+ }
13
24
  }
14
- loadedTests.push(x => {
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) {
15
33
  x(key, what, focus);
16
34
  });
17
35
  }
18
- const databasesTesters = [];
19
- const loadedTests = [];
20
- export function addDatabaseToTest(tester) {
21
- for (const test of loadedTests) {
22
- test(tester);
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; }
23
53
  }
24
54
  databasesTesters.push(tester);
25
55
  }
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);
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);
33
78
  }
79
+ exports.testInMemory = testInMemory;
34
80
  databasesTesters.push(testInMemory);
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);
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
+ });
50
164
  });
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
- }
165
+ }, focus);
166
+ return [2 /*return*/];
64
167
  });
65
- }, focus);
168
+ });
66
169
  }
170
+ exports.testAllDbs = testAllDbs;