remult 0.12.6 → 0.12.9

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remult",
3
- "version": "0.12.6",
3
+ "version": "0.12.9",
4
4
  "description": "remult core lib",
5
5
  "homepage": "https://remult.dev/",
6
6
  "repository": {
package/readme.md CHANGED
@@ -3,12 +3,18 @@
3
3
  <img src="https://github.com/remult/remult/raw/master/docs/.vuepress/public/logo.png" width="140" height="140">
4
4
  </a>
5
5
  <h1>Remult</h1>
6
+ <a href="https://circleci.com/gh/remult/remult/tree/master">
7
+ <img alt="CircleCI" src="https://circleci.com/gh/remult/remult/tree/master.svg?style=svg">
8
+ </a>
6
9
  <a href="https://raw.githubusercontent.com/remult/remult/master/LICENSE">
7
10
  <img alt="GitHub license" src="https://img.shields.io/badge/license-MIT-blue.svg">
8
11
  </a>
9
- <a href="https://badge.fury.io/js/remult">
12
+ <a href="https://www.npmjs.com/package/remult">
10
13
  <img alt="npm version" src="https://badge.fury.io/js/remult.svg">
11
14
  </a>
15
+ <a href="https://www.npmjs.com/package/remult">
16
+ <img alt="npm downloads" src="https://img.shields.io/npm/dm/remult">
17
+ </a>
12
18
  </div>
13
19
 
14
20
  ## What is Remult?
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
+ var __1 = require("../..");
4
5
  var context_1 = require("../context");
5
6
  var remult_knex_1 = require("../../remult-knex");
6
7
  var Knex = require("knex");
7
8
  var dotenv_1 = require("dotenv");
9
+ var backend_database_test_setup_backend_spec_1 = require("./backend-database-test-setup.backend-spec");
10
+ var entityWithValidations_1 = require("../shared-tests/entityWithValidations");
8
11
  dotenv_1.config();
9
12
  describe("test", function () {
10
13
  var remult;
@@ -21,3 +24,112 @@ describe("test", function () {
21
24
  });
22
25
  }); });
23
26
  });
27
+ backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter", function (_a) {
28
+ var createEntity = _a.createEntity;
29
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
30
+ var s, _b;
31
+ return tslib_1.__generator(this, function (_c) {
32
+ switch (_c.label) {
33
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
34
+ case 1:
35
+ s = _c.sent();
36
+ _b = expect;
37
+ return [4 /*yield*/, s.find({
38
+ where: __1.SqlDatabase.customFilter(function (build) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
39
+ return tslib_1.__generator(this, function (_a) {
40
+ build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
41
+ return [2 /*return*/];
42
+ });
43
+ }); })
44
+ })];
45
+ case 2:
46
+ _b.apply(void 0, [(_c.sent()).length]).toBe(2);
47
+ return [2 /*return*/];
48
+ }
49
+ });
50
+ });
51
+ }, false);
52
+ backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter2", function (_a) {
53
+ var createEntity = _a.createEntity;
54
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
55
+ var s, _b;
56
+ return tslib_1.__generator(this, function (_c) {
57
+ switch (_c.label) {
58
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
59
+ case 1:
60
+ s = _c.sent();
61
+ _b = expect;
62
+ return [4 /*yield*/, s.find({
63
+ where: {
64
+ $or: [
65
+ __1.SqlDatabase.customFilter(function (build) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
66
+ return tslib_1.__generator(this, function (_a) {
67
+ build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
68
+ return [2 /*return*/];
69
+ });
70
+ }); }),
71
+ {
72
+ myId: 2
73
+ }
74
+ ]
75
+ }
76
+ })];
77
+ case 2:
78
+ _b.apply(void 0, [(_c.sent()).length]).toBe(3);
79
+ return [2 /*return*/];
80
+ }
81
+ });
82
+ });
83
+ }, false);
84
+ backend_database_test_setup_backend_spec_1.testKnexPGSqlImpl("knex filter", function (_a) {
85
+ var createEntity = _a.createEntity;
86
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
87
+ var s, _b;
88
+ return tslib_1.__generator(this, function (_c) {
89
+ switch (_c.label) {
90
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
91
+ case 1:
92
+ s = _c.sent();
93
+ _b = expect;
94
+ return [4 /*yield*/, s.find({
95
+ where: remult_knex_1.KnexDataProvider.customFilter(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
96
+ return tslib_1.__generator(this, function (_a) {
97
+ return [2 /*return*/, function (build) { return build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]); }];
98
+ });
99
+ }); })
100
+ })];
101
+ case 2:
102
+ _b.apply(void 0, [(_c.sent()).length]).toBe(2);
103
+ return [2 /*return*/];
104
+ }
105
+ });
106
+ });
107
+ }, false);
108
+ backend_database_test_setup_backend_spec_1.testKnexPGSqlImpl("knex filter2", function (_a) {
109
+ var createEntity = _a.createEntity;
110
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
111
+ var s, _b;
112
+ return tslib_1.__generator(this, function (_c) {
113
+ switch (_c.label) {
114
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
115
+ case 1:
116
+ s = _c.sent();
117
+ _b = expect;
118
+ return [4 /*yield*/, s.find({
119
+ where: {
120
+ $or: [remult_knex_1.KnexDataProvider.customFilter(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
121
+ return tslib_1.__generator(this, function (_a) {
122
+ return [2 /*return*/, function (build) { return build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]); }];
123
+ });
124
+ }); }), {
125
+ myId: 4
126
+ }]
127
+ }
128
+ })];
129
+ case 2:
130
+ _b.apply(void 0, [(_c.sent()).length]).toBe(3);
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ });
135
+ }, false);
@@ -616,6 +616,7 @@ function getEntityKey(entity) {
616
616
  exports.getEntityKey = getEntityKey;
617
617
  exports.columnsOfType = new Map();
618
618
  function createOldEntity(entity, remult) {
619
+ var _this = this;
619
620
  var r = exports.columnsOfType.get(entity);
620
621
  if (!r)
621
622
  exports.columnsOfType.set(entity, r = []);
@@ -634,12 +635,21 @@ function createOldEntity(entity, remult) {
634
635
  info = tslib_1.__assign(tslib_1.__assign({}, baseSettings_1), info);
635
636
  var functions = ["saving", "saved", "deleting", "deleted", "validation"];
636
637
  var _loop_2 = function (key_1) {
637
- if (baseSettings_1[key_1]) {
638
+ if (baseSettings_1[key_1] && baseSettings_1[key_1] !== info[key_1]) {
638
639
  var x_1 = info[key_1];
639
- info[key_1] = function (a, b) {
640
- x_1(a, b);
641
- baseSettings_1[key_1](a, b);
642
- };
640
+ info[key_1] = function (a, b) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
641
+ return tslib_1.__generator(this, function (_a) {
642
+ switch (_a.label) {
643
+ case 0: return [4 /*yield*/, x_1(a, b)];
644
+ case 1:
645
+ _a.sent();
646
+ return [4 /*yield*/, baseSettings_1[key_1](a, b)];
647
+ case 2:
648
+ _a.sent();
649
+ return [2 /*return*/];
650
+ }
651
+ });
652
+ }); };
643
653
  }
644
654
  };
645
655
  try {
@@ -50,7 +50,7 @@ export declare type Fields<entityType> = {
50
50
  toArray(): FieldRef<entityType, any>[];
51
51
  };
52
52
  export declare type FieldsMetadata<entityType> = {
53
- [Properties in keyof OmitEB<entityType>]: FieldMetadata;
53
+ [Properties in keyof OmitEB<entityType>]: FieldMetadata<entityType[Properties]>;
54
54
  } & {
55
55
  find(fieldMetadataOrKey: FieldMetadata | string): FieldMetadata;
56
56
  [Symbol.iterator]: () => IterableIterator<FieldMetadata>;
@@ -20,9 +20,6 @@ var entityForCustomFilter_1 = require("../tests/entityForCustomFilter");
20
20
  var entityWithValidationsOnColumn_1 = require("../tests/entityWithValidationsOnColumn");
21
21
  var validators_1 = require("../validators");
22
22
  var models_1 = require("../tests/testModel/models");
23
- var backend_database_test_setup_backend_spec_1 = require("../backend-tests/backend-database-test-setup.backend-spec");
24
- var __1 = require("../..");
25
- var remult_knex_1 = require("../../remult-knex");
26
23
  db_tests_setup_1.testAll("what", function (_a) {
27
24
  var remult = _a.remult, createEntity = _a.createEntity;
28
25
  return tslib_1.__awaiter(void 0, void 0, void 0, function () {
@@ -1237,115 +1234,6 @@ db_tests_setup_1.testAll("filter", function (_a) {
1237
1234
  });
1238
1235
  });
1239
1236
  }, false);
1240
- backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter", function (_a) {
1241
- var createEntity = _a.createEntity;
1242
- return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1243
- var s, _b;
1244
- return tslib_1.__generator(this, function (_c) {
1245
- switch (_c.label) {
1246
- case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
1247
- case 1:
1248
- s = _c.sent();
1249
- _b = expect;
1250
- return [4 /*yield*/, s.find({
1251
- where: __1.SqlDatabase.customFilter(function (build) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1252
- return tslib_1.__generator(this, function (_a) {
1253
- build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
1254
- return [2 /*return*/];
1255
- });
1256
- }); })
1257
- })];
1258
- case 2:
1259
- _b.apply(void 0, [(_c.sent()).length]).toBe(2);
1260
- return [2 /*return*/];
1261
- }
1262
- });
1263
- });
1264
- }, false);
1265
- backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter2", function (_a) {
1266
- var createEntity = _a.createEntity;
1267
- return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1268
- var s, _b;
1269
- return tslib_1.__generator(this, function (_c) {
1270
- switch (_c.label) {
1271
- case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
1272
- case 1:
1273
- s = _c.sent();
1274
- _b = expect;
1275
- return [4 /*yield*/, s.find({
1276
- where: {
1277
- $or: [
1278
- __1.SqlDatabase.customFilter(function (build) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1279
- return tslib_1.__generator(this, function (_a) {
1280
- build.sql = s.metadata.fields.myId.options.dbName + ' in (1,3)';
1281
- return [2 /*return*/];
1282
- });
1283
- }); }),
1284
- {
1285
- myId: 2
1286
- }
1287
- ]
1288
- }
1289
- })];
1290
- case 2:
1291
- _b.apply(void 0, [(_c.sent()).length]).toBe(3);
1292
- return [2 /*return*/];
1293
- }
1294
- });
1295
- });
1296
- }, false);
1297
- backend_database_test_setup_backend_spec_1.testKnexPGSqlImpl("knex filter", function (_a) {
1298
- var createEntity = _a.createEntity;
1299
- return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1300
- var s, _b;
1301
- return tslib_1.__generator(this, function (_c) {
1302
- switch (_c.label) {
1303
- case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
1304
- case 1:
1305
- s = _c.sent();
1306
- _b = expect;
1307
- return [4 /*yield*/, s.find({
1308
- where: remult_knex_1.KnexDataProvider.customFilter(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1309
- return tslib_1.__generator(this, function (_a) {
1310
- return [2 /*return*/, function (build) { return build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]); }];
1311
- });
1312
- }); })
1313
- })];
1314
- case 2:
1315
- _b.apply(void 0, [(_c.sent()).length]).toBe(2);
1316
- return [2 /*return*/];
1317
- }
1318
- });
1319
- });
1320
- }, false);
1321
- backend_database_test_setup_backend_spec_1.testKnexPGSqlImpl("knex filter2", function (_a) {
1322
- var createEntity = _a.createEntity;
1323
- return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1324
- var s, _b;
1325
- return tslib_1.__generator(this, function (_c) {
1326
- switch (_c.label) {
1327
- case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
1328
- case 1:
1329
- s = _c.sent();
1330
- _b = expect;
1331
- return [4 /*yield*/, s.find({
1332
- where: {
1333
- $or: [remult_knex_1.KnexDataProvider.customFilter(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1334
- return tslib_1.__generator(this, function (_a) {
1335
- return [2 /*return*/, function (build) { return build.whereIn(s.metadata.fields.myId.options.dbName, [1, 3]); }];
1336
- });
1337
- }); }), {
1338
- myId: 4
1339
- }]
1340
- }
1341
- })];
1342
- case 2:
1343
- _b.apply(void 0, [(_c.sent()).length]).toBe(3);
1344
- return [2 /*return*/];
1345
- }
1346
- });
1347
- });
1348
- }, false);
1349
1237
  var testFilter = /** @class */ (function () {
1350
1238
  function testFilter() {
1351
1239
  this.id = 0;
@@ -86,3 +86,25 @@ describe("custom id column", function () {
86
86
  });
87
87
  });
88
88
  });
89
+ //typing game
90
+ // var z = <Z>(y: Z) => {
91
+ // }
92
+ // z<number>(1);
93
+ // function myBackendMethod<T>(types: T, values: values<T>) {
94
+ // }
95
+ // type values<T> = {
96
+ // [Property in keyof T]: T[Property] extends new (...args: any[]) => infer R ? R : any;
97
+ // };
98
+ // const a1 = AccountManager;
99
+ // const a = {
100
+ // a: String.prototype,
101
+ // b: AccountManager.prototype
102
+ // };
103
+ // var zzz: AccountManager = undefined!;
104
+ // myBackendMethod({
105
+ // a: String,
106
+ // b: AccountManager
107
+ // }, {
108
+ // b: new AccountManager(),
109
+ // a: "asdf"
110
+ // })