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/server/index.js CHANGED
@@ -1,4 +1,11 @@
1
- export { JsonEntityFileStorage } from './JsonEntityFileStorage';
2
- export { SiteArea } from './expressBridge';
3
- export { registerEntitiesOnServer } from './register-entities-on-server';
4
- export { registerActionsOnServer } from './register-actions-on-server';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerActionsOnServer = exports.registerEntitiesOnServer = exports.SiteArea = exports.JsonEntityFileStorage = void 0;
4
+ var JsonEntityFileStorage_1 = require("./JsonEntityFileStorage");
5
+ Object.defineProperty(exports, "JsonEntityFileStorage", { enumerable: true, get: function () { return JsonEntityFileStorage_1.JsonEntityFileStorage; } });
6
+ var expressBridge_1 = require("./expressBridge");
7
+ Object.defineProperty(exports, "SiteArea", { enumerable: true, get: function () { return expressBridge_1.SiteArea; } });
8
+ var register_entities_on_server_1 = require("./register-entities-on-server");
9
+ Object.defineProperty(exports, "registerEntitiesOnServer", { enumerable: true, get: function () { return register_entities_on_server_1.registerEntitiesOnServer; } });
10
+ var register_actions_on_server_1 = require("./register-actions-on-server");
11
+ Object.defineProperty(exports, "registerActionsOnServer", { enumerable: true, get: function () { return register_actions_on_server_1.registerActionsOnServer; } });
@@ -1,24 +1,50 @@
1
- import { serverActionField, actionInfo, classBackendMethodsArray } from '../src/server-action';
2
- export function registerActionsOnServer(area, controllers) {
3
- var addAction = (a) => {
4
- let x = a[serverActionField];
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerActionsOnServer = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var server_action_1 = require("../src/server-action");
6
+ function registerActionsOnServer(area, controllers) {
7
+ var e_1, _a, e_2, _b;
8
+ var addAction = function (a) {
9
+ var x = a[server_action_1.serverActionField];
5
10
  if (!x) {
6
11
  throw 'failed to set server action, did you forget the BackendMethod Decorator?';
7
12
  }
8
13
  area.addAction(x);
9
14
  };
10
- actionInfo.runningOnServer = true;
15
+ server_action_1.actionInfo.runningOnServer = true;
11
16
  if (controllers && controllers.length > 0) {
12
- for (const c of controllers) {
13
- let z = c[classBackendMethodsArray];
14
- if (z)
15
- for (const a of z) {
16
- addAction(a);
17
- }
17
+ try {
18
+ for (var controllers_1 = tslib_1.__values(controllers), controllers_1_1 = controllers_1.next(); !controllers_1_1.done; controllers_1_1 = controllers_1.next()) {
19
+ var c = controllers_1_1.value;
20
+ var z = c[server_action_1.classBackendMethodsArray];
21
+ if (z)
22
+ try {
23
+ for (var z_1 = (e_2 = void 0, tslib_1.__values(z)), z_1_1 = z_1.next(); !z_1_1.done; z_1_1 = z_1.next()) {
24
+ var a = z_1_1.value;
25
+ addAction(a);
26
+ }
27
+ }
28
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
29
+ finally {
30
+ try {
31
+ if (z_1_1 && !z_1_1.done && (_b = z_1.return)) _b.call(z_1);
32
+ }
33
+ finally { if (e_2) throw e_2.error; }
34
+ }
35
+ }
36
+ }
37
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
38
+ finally {
39
+ try {
40
+ if (controllers_1_1 && !controllers_1_1.done && (_a = controllers_1.return)) _a.call(controllers_1);
41
+ }
42
+ finally { if (e_1) throw e_1.error; }
18
43
  }
19
44
  }
20
45
  else
21
- actionInfo.allActions.forEach((a) => {
46
+ server_action_1.actionInfo.allActions.forEach(function (a) {
22
47
  addAction(a);
23
48
  });
24
49
  }
50
+ exports.registerActionsOnServer = registerActionsOnServer;
@@ -1,15 +1,19 @@
1
- import { getEntityKey } from "../src/remult3";
2
- import { allEntities } from "../src/context";
3
- import { DataApi } from "../src/data-api";
4
- export function registerEntitiesOnServer(area, entities) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerEntitiesOnServer = void 0;
4
+ var remult3_1 = require("../src/remult3");
5
+ var context_1 = require("../src/context");
6
+ var data_api_1 = require("../src/data-api");
7
+ function registerEntitiesOnServer(area, entities) {
5
8
  if (!entities)
6
- entities = allEntities;
9
+ entities = context_1.allEntities;
7
10
  //add Api Entries
8
- entities.forEach(e => {
9
- let key = getEntityKey(e);
11
+ entities.forEach(function (e) {
12
+ var key = remult3_1.getEntityKey(e);
10
13
  if (key != undefined)
11
- area.add(key, c => {
12
- return new DataApi(c.repo(e), c);
14
+ area.add(key, function (c) {
15
+ return new data_api_1.DataApi(c.repo(e), c);
13
16
  });
14
17
  });
15
18
  }
19
+ exports.registerEntitiesOnServer = registerEntitiesOnServer;
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,38 +1,72 @@
1
- import { Remult } from "../context";
2
- import { KnexDataProvider, KnexSchemaBuilder } from '../../remult-knex';
3
- import * as Knex from 'knex';
4
- import { MongoClient } from 'mongodb';
5
- import { config } from 'dotenv';
6
- import { createPostgresConnection, PostgresSchemaBuilder } from "../../postgres";
7
- import { addDatabaseToTest, itWithFocus, testAll } from "../shared-tests/db-tests-setup";
8
- config();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.testMongo = exports.testPostgresImplementation = exports.testKnexPGSqlImpl = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var context_1 = require("../context");
6
+ var remult_knex_1 = require("../../remult-knex");
7
+ var Knex = require("knex");
8
+ var mongodb_1 = require("mongodb");
9
+ var dotenv_1 = require("dotenv");
10
+ var postgres_1 = require("../../postgres");
11
+ var db_tests_setup_1 = require("../shared-tests/db-tests-setup");
12
+ dotenv_1.config();
9
13
  function testKnexSqlImpl(knex, name) {
10
- return (key, what, focus = false) => {
11
- itWithFocus(key + " " + name + " - knex", async () => {
12
- let db = new KnexDataProvider(knex);
13
- let remult = new Remult(db);
14
- await what({
15
- db, remult,
16
- createEntity: async (entity) => {
17
- let repo = remult.repo(entity);
18
- let sb = new KnexSchemaBuilder(knex);
19
- await knex.schema.dropTableIfExists(await repo.metadata.getDbName());
20
- await sb.createIfNotExist(repo.metadata);
21
- await sb.verifyAllColumns(repo.metadata);
22
- await knex(await repo.metadata.getDbName()).delete();
23
- return repo;
14
+ var _this = this;
15
+ return function (key, what, focus) {
16
+ if (focus === void 0) { focus = false; }
17
+ db_tests_setup_1.itWithFocus(key + " " + name + " - knex", function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
18
+ var db, remult;
19
+ var _this = this;
20
+ return tslib_1.__generator(this, function (_a) {
21
+ switch (_a.label) {
22
+ case 0:
23
+ db = new remult_knex_1.KnexDataProvider(knex);
24
+ remult = new context_1.Remult(db);
25
+ return [4 /*yield*/, what({
26
+ db: db, remult: remult,
27
+ createEntity: function (entity) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
28
+ var repo, sb, _a, _b, _c;
29
+ return tslib_1.__generator(this, function (_d) {
30
+ switch (_d.label) {
31
+ case 0:
32
+ repo = remult.repo(entity);
33
+ sb = new remult_knex_1.KnexSchemaBuilder(knex);
34
+ _b = (_a = knex.schema).dropTableIfExists;
35
+ return [4 /*yield*/, repo.metadata.getDbName()];
36
+ case 1: return [4 /*yield*/, _b.apply(_a, [_d.sent()])];
37
+ case 2:
38
+ _d.sent();
39
+ return [4 /*yield*/, sb.createIfNotExist(repo.metadata)];
40
+ case 3:
41
+ _d.sent();
42
+ return [4 /*yield*/, sb.verifyAllColumns(repo.metadata)];
43
+ case 4:
44
+ _d.sent();
45
+ _c = knex;
46
+ return [4 /*yield*/, repo.metadata.getDbName()];
47
+ case 5: return [4 /*yield*/, _c.apply(void 0, [_d.sent()]).delete()];
48
+ case 6:
49
+ _d.sent();
50
+ return [2 /*return*/, repo];
51
+ }
52
+ });
53
+ }); }
54
+ })];
55
+ case 1:
56
+ _a.sent();
57
+ return [2 /*return*/];
24
58
  }
25
59
  });
26
- }, focus);
60
+ }); }, focus);
27
61
  };
28
62
  }
29
- export const testKnexPGSqlImpl = testKnexSqlImpl(Knex.default({
63
+ exports.testKnexPGSqlImpl = testKnexSqlImpl(Knex.default({
30
64
  client: 'pg',
31
65
  connection: process.env.DATABASE_URL,
32
66
  }), "postgres");
33
- addDatabaseToTest(testKnexPGSqlImpl);
67
+ db_tests_setup_1.addDatabaseToTest(exports.testKnexPGSqlImpl);
34
68
  if (process.env['TESTS_SQL_SERVER'])
35
- addDatabaseToTest(testKnexSqlImpl(Knex.default({
69
+ db_tests_setup_1.addDatabaseToTest(testKnexSqlImpl(Knex.default({
36
70
  client: 'mssql',
37
71
  connection: {
38
72
  server: '127.0.0.1',
@@ -47,67 +81,151 @@ if (process.env['TESTS_SQL_SERVER'])
47
81
  } //,debug: true
48
82
  }), "sql server"));
49
83
  if (true)
50
- addDatabaseToTest(testKnexSqlImpl(Knex.default({
84
+ db_tests_setup_1.addDatabaseToTest(testKnexSqlImpl(Knex.default({
51
85
  client: 'better-sqlite3',
52
86
  connection: {
53
87
  filename: ":memory:"
54
88
  },
55
89
  }), "sqlite3"));
56
- let pg = createPostgresConnection({
90
+ var pg = postgres_1.createPostgresConnection({
57
91
  autoCreateTables: false
58
92
  });
59
- export function testPostgresImplementation(key, what, focus = false) {
60
- itWithFocus(key + " - postgres", async () => {
61
- let db = await pg;
62
- let remult = new Remult(db);
63
- await what({
64
- db, remult,
65
- createEntity: async (entity) => {
66
- let repo = remult.repo(entity);
67
- let sb = new PostgresSchemaBuilder(db);
68
- await db.execute("drop table if exists " + await repo.metadata.getDbName());
69
- await sb.createIfNotExist(repo.metadata);
70
- await sb.verifyAllColumns(repo.metadata);
71
- await db.execute("delete from " + await repo.metadata.getDbName());
72
- return repo;
93
+ function testPostgresImplementation(key, what, focus) {
94
+ var _this = this;
95
+ if (focus === void 0) { focus = false; }
96
+ db_tests_setup_1.itWithFocus(key + " - postgres", function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
97
+ var db, remult;
98
+ var _this = this;
99
+ return tslib_1.__generator(this, function (_a) {
100
+ switch (_a.label) {
101
+ case 0: return [4 /*yield*/, pg];
102
+ case 1:
103
+ db = _a.sent();
104
+ remult = new context_1.Remult(db);
105
+ return [4 /*yield*/, what({
106
+ db: db, remult: remult,
107
+ createEntity: function (entity) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
108
+ var repo, sb, _a, _b, _c, _d, _e, _f;
109
+ return tslib_1.__generator(this, function (_g) {
110
+ switch (_g.label) {
111
+ case 0:
112
+ repo = remult.repo(entity);
113
+ sb = new postgres_1.PostgresSchemaBuilder(db);
114
+ _b = (_a = db).execute;
115
+ _c = "drop table if exists ";
116
+ return [4 /*yield*/, repo.metadata.getDbName()];
117
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c + (_g.sent())])];
118
+ case 2:
119
+ _g.sent();
120
+ return [4 /*yield*/, sb.createIfNotExist(repo.metadata)];
121
+ case 3:
122
+ _g.sent();
123
+ return [4 /*yield*/, sb.verifyAllColumns(repo.metadata)];
124
+ case 4:
125
+ _g.sent();
126
+ _e = (_d = db).execute;
127
+ _f = "delete from ";
128
+ return [4 /*yield*/, repo.metadata.getDbName()];
129
+ case 5: return [4 /*yield*/, _e.apply(_d, [_f + (_g.sent())])];
130
+ case 6:
131
+ _g.sent();
132
+ return [2 /*return*/, repo];
133
+ }
134
+ });
135
+ }); }
136
+ })];
137
+ case 2:
138
+ _a.sent();
139
+ return [2 /*return*/];
73
140
  }
74
141
  });
75
- }, focus);
142
+ }); }, focus);
76
143
  }
77
- addDatabaseToTest(testPostgresImplementation);
78
- import { Categories } from "../tests/remult-3-entities";
79
- import { MongoDataProvider } from "../../remult-mongo";
80
- testAll("transactions", async ({ db, createEntity }) => {
81
- let x = await createEntity(Categories);
82
- await db.transaction(async (db) => {
83
- let remult = new Remult(db);
84
- expect(await remult.repo(Categories).count()).toBe(0);
144
+ exports.testPostgresImplementation = testPostgresImplementation;
145
+ db_tests_setup_1.addDatabaseToTest(testPostgresImplementation);
146
+ var remult_3_entities_1 = require("../tests/remult-3-entities");
147
+ var remult_mongo_1 = require("../../remult-mongo");
148
+ db_tests_setup_1.testAll("transactions", function (_a) {
149
+ var db = _a.db, createEntity = _a.createEntity;
150
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
151
+ var x;
152
+ return tslib_1.__generator(this, function (_b) {
153
+ switch (_b.label) {
154
+ case 0: return [4 /*yield*/, createEntity(remult_3_entities_1.Categories)];
155
+ case 1:
156
+ x = _b.sent();
157
+ return [4 /*yield*/, db.transaction(function (db) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
158
+ var remult, _a;
159
+ return tslib_1.__generator(this, function (_b) {
160
+ switch (_b.label) {
161
+ case 0:
162
+ remult = new context_1.Remult(db);
163
+ _a = expect;
164
+ return [4 /*yield*/, remult.repo(remult_3_entities_1.Categories).count()];
165
+ case 1:
166
+ _a.apply(void 0, [_b.sent()]).toBe(0);
167
+ return [2 /*return*/];
168
+ }
169
+ });
170
+ }); })];
171
+ case 2:
172
+ _b.sent();
173
+ return [2 /*return*/];
174
+ }
175
+ });
85
176
  });
86
177
  });
87
- let client = new MongoClient("mongodb://localhost:27017/local");
88
- let done;
89
- let mongoDbPromise = client.connect().then(c => {
178
+ var client = new mongodb_1.MongoClient("mongodb://localhost:27017/local");
179
+ var done;
180
+ var mongoDbPromise = client.connect().then(function (c) {
90
181
  done = c;
91
182
  return c.db("test");
92
183
  });
93
- afterAll(async () => {
94
- if (done)
95
- done.close();
96
- });
97
- export function testMongo(key, what, focus = false) {
98
- itWithFocus(key + " - mongo", async () => {
99
- let mongoDb = await mongoDbPromise;
100
- let db = new MongoDataProvider(mongoDb, client);
101
- let remult = new Remult(db);
102
- await what({
103
- db, remult,
104
- createEntity: async (entity) => {
105
- let repo = remult.repo(entity);
106
- await mongoDb.collection(await repo.metadata.getDbName()).deleteMany({});
107
- return repo;
184
+ afterAll(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
185
+ return tslib_1.__generator(this, function (_a) {
186
+ if (done)
187
+ done.close();
188
+ return [2 /*return*/];
189
+ });
190
+ }); });
191
+ function testMongo(key, what, focus) {
192
+ var _this = this;
193
+ if (focus === void 0) { focus = false; }
194
+ db_tests_setup_1.itWithFocus(key + " - mongo", function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
195
+ var mongoDb, db, remult;
196
+ var _this = this;
197
+ return tslib_1.__generator(this, function (_a) {
198
+ switch (_a.label) {
199
+ case 0: return [4 /*yield*/, mongoDbPromise];
200
+ case 1:
201
+ mongoDb = _a.sent();
202
+ db = new remult_mongo_1.MongoDataProvider(mongoDb, client);
203
+ remult = new context_1.Remult(db);
204
+ return [4 /*yield*/, what({
205
+ db: db, remult: remult,
206
+ createEntity: function (entity) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
207
+ var repo, _a, _b;
208
+ return tslib_1.__generator(this, function (_c) {
209
+ switch (_c.label) {
210
+ case 0:
211
+ repo = remult.repo(entity);
212
+ _b = (_a = mongoDb).collection;
213
+ return [4 /*yield*/, repo.metadata.getDbName()];
214
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c.sent()]).deleteMany({})];
215
+ case 2:
216
+ _c.sent();
217
+ return [2 /*return*/, repo];
218
+ }
219
+ });
220
+ }); }
221
+ })];
222
+ case 2:
223
+ _a.sent();
224
+ return [2 /*return*/];
108
225
  }
109
226
  });
110
- }, focus);
227
+ }); }, focus);
111
228
  }
112
- addDatabaseToTest(testMongo);
113
- import '../shared-tests';
229
+ exports.testMongo = testMongo;
230
+ db_tests_setup_1.addDatabaseToTest(testMongo);
231
+ require("../shared-tests");
@@ -1,49 +1,118 @@
1
- import { SqlDatabase } from "../..";
2
- import { KnexDataProvider } from '../../remult-knex';
3
- import { config } from 'dotenv';
4
- import { testKnexPGSqlImpl, testPostgresImplementation } from "./backend-database-test-setup.backend-spec";
5
- import { entityWithValidations } from "../shared-tests/entityWithValidations";
6
- config();
7
- testPostgresImplementation("sql filter", async ({ createEntity }) => {
8
- let s = await entityWithValidations.create4RowsInDp(createEntity);
9
- expect((await s.find({
10
- where: SqlDatabase.customFilter(async (build) => {
11
- build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
12
- })
13
- })).length).toBe(2);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var remult_knex_1 = require("../../remult-knex");
5
+ var dotenv_1 = require("dotenv");
6
+ var backend_database_test_setup_backend_spec_1 = require("./backend-database-test-setup.backend-spec");
7
+ var entityWithValidations_1 = require("../shared-tests/entityWithValidations");
8
+ var sql_database_1 = require("../data-providers/sql-database");
9
+ dotenv_1.config();
10
+ backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter", function (_a) {
11
+ var createEntity = _a.createEntity;
12
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
13
+ var s, _b;
14
+ return tslib_1.__generator(this, function (_c) {
15
+ switch (_c.label) {
16
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
17
+ case 1:
18
+ s = _c.sent();
19
+ _b = expect;
20
+ return [4 /*yield*/, s.find({
21
+ where: sql_database_1.SqlDatabase.customFilter(function (build) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
22
+ return tslib_1.__generator(this, function (_a) {
23
+ build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
24
+ return [2 /*return*/];
25
+ });
26
+ }); })
27
+ })];
28
+ case 2:
29
+ _b.apply(void 0, [(_c.sent()).length]).toBe(2);
30
+ return [2 /*return*/];
31
+ }
32
+ });
33
+ });
14
34
  }, false);
15
- testPostgresImplementation("sql filter2", async ({ createEntity }) => {
16
- let s = await entityWithValidations.create4RowsInDp(createEntity);
17
- expect((await s.find({
18
- where: {
19
- $or: [
20
- SqlDatabase.customFilter(async (build) => {
21
- build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
22
- }),
23
- {
24
- myId: 2
25
- }
26
- ]
27
- }
28
- })).length).toBe(3);
35
+ backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter2", function (_a) {
36
+ var createEntity = _a.createEntity;
37
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
38
+ var s, _b;
39
+ return tslib_1.__generator(this, function (_c) {
40
+ switch (_c.label) {
41
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
42
+ case 1:
43
+ s = _c.sent();
44
+ _b = expect;
45
+ return [4 /*yield*/, s.find({
46
+ where: {
47
+ $or: [
48
+ sql_database_1.SqlDatabase.customFilter(function (build) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
49
+ return tslib_1.__generator(this, function (_a) {
50
+ build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
51
+ return [2 /*return*/];
52
+ });
53
+ }); }),
54
+ {
55
+ myId: 2
56
+ }
57
+ ]
58
+ }
59
+ })];
60
+ case 2:
61
+ _b.apply(void 0, [(_c.sent()).length]).toBe(3);
62
+ return [2 /*return*/];
63
+ }
64
+ });
65
+ });
29
66
  }, false);
30
- testKnexPGSqlImpl("knex filter", async ({ createEntity }) => {
31
- let s = await entityWithValidations.create4RowsInDp(createEntity);
32
- expect((await s.find({
33
- where: KnexDataProvider.customFilter(async () => {
34
- return build => build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]);
35
- })
36
- })).length).toBe(2);
67
+ backend_database_test_setup_backend_spec_1.testKnexPGSqlImpl("knex filter", function (_a) {
68
+ var createEntity = _a.createEntity;
69
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
70
+ var s, _b;
71
+ return tslib_1.__generator(this, function (_c) {
72
+ switch (_c.label) {
73
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
74
+ case 1:
75
+ s = _c.sent();
76
+ _b = expect;
77
+ return [4 /*yield*/, s.find({
78
+ where: remult_knex_1.KnexDataProvider.customFilter(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
79
+ return tslib_1.__generator(this, function (_a) {
80
+ return [2 /*return*/, function (build) { return build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]); }];
81
+ });
82
+ }); })
83
+ })];
84
+ case 2:
85
+ _b.apply(void 0, [(_c.sent()).length]).toBe(2);
86
+ return [2 /*return*/];
87
+ }
88
+ });
89
+ });
37
90
  }, false);
38
- testKnexPGSqlImpl("knex filter2", async ({ createEntity }) => {
39
- let s = await entityWithValidations.create4RowsInDp(createEntity);
40
- expect((await s.find({
41
- where: {
42
- $or: [KnexDataProvider.customFilter(async () => {
43
- return build => build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]);
44
- }), {
45
- myId: 4
46
- }]
47
- }
48
- })).length).toBe(3);
91
+ backend_database_test_setup_backend_spec_1.testKnexPGSqlImpl("knex filter2", function (_a) {
92
+ var createEntity = _a.createEntity;
93
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
94
+ var s, _b;
95
+ return tslib_1.__generator(this, function (_c) {
96
+ switch (_c.label) {
97
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
98
+ case 1:
99
+ s = _c.sent();
100
+ _b = expect;
101
+ return [4 /*yield*/, s.find({
102
+ where: {
103
+ $or: [remult_knex_1.KnexDataProvider.customFilter(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
104
+ return tslib_1.__generator(this, function (_a) {
105
+ return [2 /*return*/, function (build) { return build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]); }];
106
+ });
107
+ }); }), {
108
+ myId: 4
109
+ }]
110
+ }
111
+ })];
112
+ case 2:
113
+ _b.apply(void 0, [(_c.sent()).length]).toBe(3);
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ });
49
118
  }, false);
@@ -1,7 +1,11 @@
1
- export function valueOrExpressionToValue(f) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.valueOrExpressionToValue = void 0;
4
+ function valueOrExpressionToValue(f) {
2
5
  if (typeof f === 'function') {
3
- let x = f;
6
+ var x = f;
4
7
  return x();
5
8
  }
6
9
  return f;
7
10
  }
11
+ exports.valueOrExpressionToValue = valueOrExpressionToValue;