remult 0.13.5 → 0.13.8

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.13.5",
3
+ "version": "0.13.8",
4
4
  "description": "remult core lib",
5
5
  "homepage": "https://remult.dev/",
6
6
  "repository": {
package/readme.md CHANGED
@@ -54,17 +54,17 @@ app.listen(port, () => {
54
54
 
55
55
  ## Define model classes
56
56
  ```ts
57
- import { Entity, EntityBase, Field } from 'remult';
57
+ import { Entity, EntityBase, Fields } from 'remult';
58
58
 
59
59
  @Entity('products', {
60
60
  allowApiCrud: true
61
61
  })
62
62
  export class Product extends EntityBase {
63
- @Field()
64
- name: string = '';
63
+ @Fields.string()
64
+ name = '';
65
65
 
66
- @Field()
67
- unitPrice: number = 0;
66
+ @Fields.number()
67
+ unitPrice = 0;
68
68
  }
69
69
  ```
70
70
 
@@ -106,17 +106,17 @@ import { Min } from 'class-validator';
106
106
  allowApiCrud: true
107
107
  })
108
108
  export class Product extends EntityBase {
109
- @Field<Product>({
109
+ @Fields.string<Product>({
110
110
  validate: p => {
111
111
  if (p.name.trim().length == 0)
112
112
  p.$.name.error = 'required';
113
113
  }
114
114
  })
115
- name: string = '';
115
+ name = '';
116
116
 
117
- @Field()
117
+ @Fields.number()
118
118
  @Min(0)
119
- unitPrice: number = 0;
119
+ unitPrice = 0;
120
120
  }
121
121
  ```
122
122
 
@@ -147,13 +147,13 @@ catch {
147
147
  allowApiUpdate: (remult, article) => article.author.id == remult.user.id
148
148
  })
149
149
  export class Article extends EntityBase {
150
- @Field({ allowApiUpdate: false })
151
- slug: string;
150
+ @Fields.string({ allowApiUpdate: false })
151
+ slug = '';
152
152
 
153
- @Field({ allowApiUpdate: false })
154
- author: Profile;
153
+ @Field(() => Profile, { allowApiUpdate: false })
154
+ author!: Profile;
155
155
 
156
- @Field()
157
- content: string;
156
+ @Fields.string()
157
+ content = '';
158
158
  }
159
159
  ```
@@ -375,7 +375,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
375
375
  FilterConsumerBridgeToKnexRequest.prototype.or = function (orElements) {
376
376
  var _this = this;
377
377
  this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
378
- var result, _loop_1, this_1, orElements_1, orElements_1_1, element, e_5_1;
378
+ var result, _loop_1, this_1, orElements_1, orElements_1_1, element, state_1, e_5_1;
379
379
  var e_5, _a;
380
380
  return tslib_1.__generator(this, function (_b) {
381
381
  switch (_b.label) {
@@ -399,6 +399,8 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
399
399
  });
400
400
  });
401
401
  }
402
+ else
403
+ return [2 /*return*/, { value: void 0 }]; //empty or means all rows
402
404
  return [2 /*return*/];
403
405
  }
404
406
  });
@@ -414,7 +416,9 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
414
416
  element = orElements_1_1.value;
415
417
  return [5 /*yield**/, _loop_1(element)];
416
418
  case 3:
417
- _b.sent();
419
+ state_1 = _b.sent();
420
+ if (typeof state_1 === "object")
421
+ return [2 /*return*/, state_1.value];
418
422
  _b.label = 4;
419
423
  case 4:
420
424
  orElements_1_1 = orElements_1.next();
package/remult-mongo.js CHANGED
@@ -339,15 +339,16 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
339
339
  this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
340
340
  var result, orElements_1, orElements_1_1, element, f, where, e_7_1;
341
341
  var e_7, _a;
342
- return tslib_1.__generator(this, function (_b) {
343
- switch (_b.label) {
342
+ var _b;
343
+ return tslib_1.__generator(this, function (_c) {
344
+ switch (_c.label) {
344
345
  case 0:
345
346
  result = [];
346
- _b.label = 1;
347
+ _c.label = 1;
347
348
  case 1:
348
- _b.trys.push([1, 6, 7, 8]);
349
+ _c.trys.push([1, 6, 7, 8]);
349
350
  orElements_1 = tslib_1.__values(orElements), orElements_1_1 = orElements_1.next();
350
- _b.label = 2;
351
+ _c.label = 2;
351
352
  case 2:
352
353
  if (!!orElements_1_1.done) return [3 /*break*/, 5];
353
354
  element = orElements_1_1.value;
@@ -356,17 +357,19 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
356
357
  element.__applyToConsumer(f);
357
358
  return [4 /*yield*/, f.resolveWhere()];
358
359
  case 3:
359
- where = _b.sent();
360
- if ((where === null || where === void 0 ? void 0 : where.$and.length) > 0) {
360
+ where = _c.sent();
361
+ if (((_b = where === null || where === void 0 ? void 0 : where.$and) === null || _b === void 0 ? void 0 : _b.length) > 0) {
361
362
  result.push(where);
362
363
  }
363
- _b.label = 4;
364
+ else
365
+ return [2 /*return*/]; //since empty or is all rows;
366
+ _c.label = 4;
364
367
  case 4:
365
368
  orElements_1_1 = orElements_1.next();
366
369
  return [3 /*break*/, 2];
367
370
  case 5: return [3 /*break*/, 8];
368
371
  case 6:
369
- e_7_1 = _b.sent();
372
+ e_7_1 = _c.sent();
370
373
  e_7 = { error: e_7_1 };
371
374
  return [3 /*break*/, 8];
372
375
  case 7:
@@ -806,35 +806,35 @@ var JobsInQueueEntity = /** @class */ (function (_super) {
806
806
  return _super !== null && _super.apply(this, arguments) || this;
807
807
  }
808
808
  tslib_1.__decorate([
809
- remult3_1.Fields.String(),
809
+ remult3_1.Fields.string(),
810
810
  tslib_1.__metadata("design:type", String)
811
811
  ], JobsInQueueEntity.prototype, "userId", void 0);
812
812
  tslib_1.__decorate([
813
- remult3_1.Fields.String(),
813
+ remult3_1.Fields.string(),
814
814
  tslib_1.__metadata("design:type", String)
815
815
  ], JobsInQueueEntity.prototype, "url", void 0);
816
816
  tslib_1.__decorate([
817
- remult3_1.Fields.Date(),
817
+ remult3_1.Fields.date(),
818
818
  tslib_1.__metadata("design:type", Date)
819
819
  ], JobsInQueueEntity.prototype, "submitTime", void 0);
820
820
  tslib_1.__decorate([
821
- remult3_1.Fields.Date(),
821
+ remult3_1.Fields.date(),
822
822
  tslib_1.__metadata("design:type", Date)
823
823
  ], JobsInQueueEntity.prototype, "doneTime", void 0);
824
824
  tslib_1.__decorate([
825
- remult3_1.Fields.String(),
825
+ remult3_1.Fields.string(),
826
826
  tslib_1.__metadata("design:type", String)
827
827
  ], JobsInQueueEntity.prototype, "result", void 0);
828
828
  tslib_1.__decorate([
829
- remult3_1.Fields.Boolean(),
829
+ remult3_1.Fields.boolean(),
830
830
  tslib_1.__metadata("design:type", Boolean)
831
831
  ], JobsInQueueEntity.prototype, "done", void 0);
832
832
  tslib_1.__decorate([
833
- remult3_1.Fields.Boolean(),
833
+ remult3_1.Fields.boolean(),
834
834
  tslib_1.__metadata("design:type", Boolean)
835
835
  ], JobsInQueueEntity.prototype, "error", void 0);
836
836
  tslib_1.__decorate([
837
- remult3_1.Fields.Number(),
837
+ remult3_1.Fields.number(),
838
838
  tslib_1.__metadata("design:type", Number)
839
839
  ], JobsInQueueEntity.prototype, "progress", void 0);
840
840
  JobsInQueueEntity = tslib_1.__decorate([
@@ -2,28 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var __1 = require("../..");
5
- var context_1 = require("../context");
6
5
  var remult_knex_1 = require("../../remult-knex");
7
- var Knex = require("knex");
8
6
  var dotenv_1 = require("dotenv");
9
7
  var backend_database_test_setup_backend_spec_1 = require("./backend-database-test-setup.backend-spec");
10
8
  var entityWithValidations_1 = require("../shared-tests/entityWithValidations");
11
9
  dotenv_1.config();
12
- describe("test", function () {
13
- var remult;
14
- var knex;
15
- beforeAll(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
16
- return tslib_1.__generator(this, function (_a) {
17
- knex =
18
- Knex.default({
19
- client: 'pg',
20
- connection: process.env.DATABASE_URL
21
- });
22
- remult = new context_1.Remult(new remult_knex_1.KnexDataProvider(knex));
23
- return [2 /*return*/];
24
- });
25
- }); });
26
- });
27
10
  backend_database_test_setup_backend_spec_1.testPostgresImplementation("sql filter", function (_a) {
28
11
  var createEntity = _a.createEntity;
29
12
  return tslib_1.__awaiter(void 0, void 0, void 0, function () {
package/src/context.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { DataProvider } from "./data-interfaces";
2
- import { EntityRef, Repository } from "./remult3";
2
+ import { EntityMetadata, EntityRef, FindOptions, Repository } from "./remult3";
3
3
  import { ClassType } from "../classType";
4
4
  export interface HttpProvider {
5
5
  post(url: string, data: any): Promise<any> | {
@@ -21,6 +21,7 @@ export declare function toPromise<T>(p: Promise<T> | {
21
21
  export declare function processHttpException(ex: any): Promise<any>;
22
22
  export declare function isBackend(): boolean;
23
23
  export declare class Remult {
24
+ static onFind: (metadata: EntityMetadata, options: FindOptions<any>) => void;
24
25
  clearAllCache(): any;
25
26
  static entityRefInit?: (ref: EntityRef<any>, row: any) => void;
26
27
  authenticated(): boolean;
package/src/context.js CHANGED
@@ -283,6 +283,7 @@ var Remult = /** @class */ (function () {
283
283
  }
284
284
  return r;
285
285
  };
286
+ Remult.onFind = function (metadata, options) { };
286
287
  Remult.apiBaseUrl = '/api';
287
288
  return Remult;
288
289
  }());
@@ -76,6 +76,8 @@ var FilterConsumerBridgeToSqlRequest = /** @class */ (function () {
76
76
  return [4 /*yield*/, f.resolveWhere()];
77
77
  case 2:
78
78
  where = _b.sent();
79
+ if (!where)
80
+ return [2 /*return*/]; //since if any member of or is empty, then the entire or is irrelevant
79
81
  if (where.length > 0) {
80
82
  if (statement.length > 0) {
81
83
  statement += " or ";
package/src/id-entity.js CHANGED
@@ -9,7 +9,7 @@ var IdEntity = /** @class */ (function (_super) {
9
9
  return _super !== null && _super.apply(this, arguments) || this;
10
10
  }
11
11
  tslib_1.__decorate([
12
- remult3_1.Fields.Uuid(),
12
+ remult3_1.Fields.uuid(),
13
13
  tslib_1.__metadata("design:type", String)
14
14
  ], IdEntity.prototype, "id", void 0);
15
15
  return IdEntity;
@@ -210,21 +210,21 @@ export declare const Fields1: {
210
210
  String: () => (a: any) => void;
211
211
  };
212
212
  export declare class Fields {
213
- static Object<entityType = any, valueType = any>(...options: (FieldOptions<entityType, valueType> | ((options: FieldOptions<entityType, valueType>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
214
- static DateOnly<entityType = any>(...options: (FieldOptions<entityType, Date> | ((options: FieldOptions<entityType, Date>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
215
- static Date<entityType = any>(...options: (FieldOptions<entityType, Date> | ((options: FieldOptions<entityType, Date>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
216
- static Integer<entityType = any>(...options: (FieldOptions<entityType, Number> | ((options: FieldOptions<entityType, Number>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
217
- static AutoIncrement<entityType = any>(...options: (FieldOptions<entityType, Number> | ((options: FieldOptions<entityType, Number>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
218
- static Number<entityType = any>(...options: (FieldOptions<entityType, Number> | ((options: FieldOptions<entityType, Number>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
219
- static Uuid<entityType = any>(...options: (FieldOptions<entityType, string> | ((options: FieldOptions<entityType, string>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
220
- static String<entityType = any>(...options: (StringFieldOptions<entityType> | ((options: StringFieldOptions<entityType>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
221
- static Boolean<entityType = any>(...options: (FieldOptions<entityType, boolean> | ((options: FieldOptions<entityType, boolean>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
213
+ static object<entityType = any, valueType = any>(...options: (FieldOptions<entityType, valueType> | ((options: FieldOptions<entityType, valueType>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
214
+ static dateOnly<entityType = any>(...options: (FieldOptions<entityType, Date> | ((options: FieldOptions<entityType, Date>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
215
+ static date<entityType = any>(...options: (FieldOptions<entityType, Date> | ((options: FieldOptions<entityType, Date>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
216
+ static integer<entityType = any>(...options: (FieldOptions<entityType, Number> | ((options: FieldOptions<entityType, Number>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
217
+ static autoIncrement<entityType = any>(...options: (FieldOptions<entityType, Number> | ((options: FieldOptions<entityType, Number>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
218
+ static number<entityType = any>(...options: (FieldOptions<entityType, Number> | ((options: FieldOptions<entityType, Number>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
219
+ static uuid<entityType = any>(...options: (FieldOptions<entityType, string> | ((options: FieldOptions<entityType, string>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
220
+ static string<entityType = any>(...options: (StringFieldOptions<entityType> | ((options: StringFieldOptions<entityType>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
221
+ static boolean<entityType = any>(...options: (FieldOptions<entityType, boolean> | ((options: FieldOptions<entityType, boolean>, remult: Remult) => void))[]): (target: any, key: any, c?: any) => void;
222
222
  }
223
223
  export declare function isAutoIncrement(f: FieldMetadata): boolean;
224
224
  export interface StringFieldOptions<entityType = any> extends FieldOptions<entityType, string> {
225
225
  maxLength?: number;
226
226
  }
227
- export declare function ValueListFieldType<entityType = any, valueType extends ValueListItem = any>(...options: (ValueListFieldOptions<entityType, valueType> | ((options: FieldOptions<entityType, valueType>, remult: Remult) => void))[]): (type: ClassType<valueType>) => any;
227
+ export declare function ValueListFieldType<entityType = any, valueType extends ValueListItem = any>(...options: (ValueListFieldOptions<entityType, valueType> | ((options: FieldOptions<entityType, valueType>, remult: Remult) => void))[]): (type: ClassType<valueType>) => void;
228
228
  export interface ValueListFieldOptions<entityType, valueType> extends FieldOptions<entityType, valueType> {
229
229
  getValues?: () => valueType[];
230
230
  }
@@ -274,12 +274,41 @@ var RepositoryImplementation = /** @class */ (function () {
274
274
  };
275
275
  RepositoryImplementation.prototype.find = function (options) {
276
276
  return tslib_1.__awaiter(this, void 0, void 0, function () {
277
- var opt, _a, rawRows, loadFields, _b, _c, col, ei, load, repo, toLoad, rawRows_1, rawRows_1_1, r, val, rows, rows_1, rows_1_1, r, e_4_1, result;
278
- var e_4, _d, e_5, _e, _f, e_6, _g;
277
+ function loadManyToOne(repo, toLoad) {
278
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
279
+ var rows, rows_1, rows_1_1, r;
280
+ var _a, e_6, _b;
281
+ return tslib_1.__generator(this, function (_c) {
282
+ switch (_c.label) {
283
+ case 0: return [4 /*yield*/, repo.find({ where: (_a = repo.metadata.idMetadata).getIdFilter.apply(_a, tslib_1.__spread(toLoad)) })];
284
+ case 1:
285
+ rows = _c.sent();
286
+ try {
287
+ for (rows_1 = tslib_1.__values(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {
288
+ r = rows_1_1.value;
289
+ repo.addToCache(r);
290
+ }
291
+ }
292
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
293
+ finally {
294
+ try {
295
+ if (rows_1_1 && !rows_1_1.done && (_b = rows_1.return)) _b.call(rows_1);
296
+ }
297
+ finally { if (e_6) throw e_6.error; }
298
+ }
299
+ return [2 /*return*/];
300
+ }
301
+ });
302
+ });
303
+ }
304
+ var opt, _a, rawRows, loadFields, _b, _c, col, ei, load, repo, toLoad, rawRows_1, rawRows_1_1, r, val, e_4_1, result;
305
+ var e_4, _d, e_5, _e;
279
306
  var _this = this;
280
- return tslib_1.__generator(this, function (_h) {
281
- switch (_h.label) {
307
+ return tslib_1.__generator(this, function (_f) {
308
+ switch (_f.label) {
282
309
  case 0:
310
+ context_1.Remult.onFind(this._info, options);
311
+ ;
283
312
  opt = {};
284
313
  if (!options)
285
314
  options = {};
@@ -290,21 +319,21 @@ var RepositoryImplementation = /** @class */ (function () {
290
319
  _a = opt;
291
320
  return [4 /*yield*/, this.translateWhereToFilter(options.where)];
292
321
  case 1:
293
- _a.where = _h.sent();
322
+ _a.where = _f.sent();
294
323
  opt.orderBy = sort_1.Sort.translateOrderByToSort(this.metadata, options.orderBy);
295
324
  opt.limit = options.limit;
296
325
  opt.page = options.page;
297
326
  return [4 /*yield*/, this.edp.find(opt)];
298
327
  case 2:
299
- rawRows = _h.sent();
328
+ rawRows = _f.sent();
300
329
  loadFields = undefined;
301
330
  if (options.load)
302
331
  loadFields = options.load(this.metadata.fields);
303
- _h.label = 3;
332
+ _f.label = 3;
304
333
  case 3:
305
- _h.trys.push([3, 8, 9, 10]);
334
+ _f.trys.push([3, 8, 9, 10]);
306
335
  _b = tslib_1.__values(this.metadata.fields), _c = _b.next();
307
- _h.label = 4;
336
+ _f.label = 4;
308
337
  case 4:
309
338
  if (!!_c.done) return [3 /*break*/, 7];
310
339
  col = _c.value;
@@ -333,29 +362,16 @@ var RepositoryImplementation = /** @class */ (function () {
333
362
  finally { if (e_5) throw e_5.error; }
334
363
  }
335
364
  if (!(toLoad.length > 0)) return [3 /*break*/, 6];
336
- return [4 /*yield*/, repo.find({ where: (_f = repo.metadata.idMetadata).getIdFilter.apply(_f, tslib_1.__spread(toLoad)) })];
365
+ return [4 /*yield*/, loadManyToOne(repo, toLoad)];
337
366
  case 5:
338
- rows = _h.sent();
339
- try {
340
- for (rows_1 = (e_6 = void 0, tslib_1.__values(rows)), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {
341
- r = rows_1_1.value;
342
- repo.addToCache(r);
343
- }
344
- }
345
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
346
- finally {
347
- try {
348
- if (rows_1_1 && !rows_1_1.done && (_g = rows_1.return)) _g.call(rows_1);
349
- }
350
- finally { if (e_6) throw e_6.error; }
351
- }
352
- _h.label = 6;
367
+ _f.sent();
368
+ _f.label = 6;
353
369
  case 6:
354
370
  _c = _b.next();
355
371
  return [3 /*break*/, 4];
356
372
  case 7: return [3 /*break*/, 10];
357
373
  case 8:
358
- e_4_1 = _h.sent();
374
+ e_4_1 = _f.sent();
359
375
  e_4 = { error: e_4_1 };
360
376
  return [3 /*break*/, 10];
361
377
  case 9:
@@ -371,7 +387,7 @@ var RepositoryImplementation = /** @class */ (function () {
371
387
  }
372
388
  }); }); }))];
373
389
  case 11:
374
- result = _h.sent();
390
+ result = _f.sent();
375
391
  return [2 /*return*/, result];
376
392
  }
377
393
  });
@@ -2165,14 +2181,14 @@ exports.Fields1 = {
2165
2181
  var Fields = /** @class */ (function () {
2166
2182
  function Fields() {
2167
2183
  }
2168
- Fields.Object = function () {
2184
+ Fields.object = function () {
2169
2185
  var options = [];
2170
2186
  for (var _i = 0; _i < arguments.length; _i++) {
2171
2187
  options[_i] = arguments[_i];
2172
2188
  }
2173
2189
  return Field.apply(void 0, tslib_1.__spread([undefined], options));
2174
2190
  };
2175
- Fields.DateOnly = function () {
2191
+ Fields.dateOnly = function () {
2176
2192
  var options = [];
2177
2193
  for (var _i = 0; _i < arguments.length; _i++) {
2178
2194
  options[_i] = arguments[_i];
@@ -2181,14 +2197,14 @@ var Fields = /** @class */ (function () {
2181
2197
  valueConverter: valueConverters_1.ValueConverters.DateOnly
2182
2198
  }], options));
2183
2199
  };
2184
- Fields.Date = function () {
2200
+ Fields.date = function () {
2185
2201
  var options = [];
2186
2202
  for (var _i = 0; _i < arguments.length; _i++) {
2187
2203
  options[_i] = arguments[_i];
2188
2204
  }
2189
2205
  return Field.apply(void 0, tslib_1.__spread([function () { return Date; }], options));
2190
2206
  };
2191
- Fields.Integer = function () {
2207
+ Fields.integer = function () {
2192
2208
  var options = [];
2193
2209
  for (var _i = 0; _i < arguments.length; _i++) {
2194
2210
  options[_i] = arguments[_i];
@@ -2197,7 +2213,7 @@ var Fields = /** @class */ (function () {
2197
2213
  valueConverter: valueConverters_1.ValueConverters.Integer
2198
2214
  }], options));
2199
2215
  };
2200
- Fields.AutoIncrement = function () {
2216
+ Fields.autoIncrement = function () {
2201
2217
  var options = [];
2202
2218
  for (var _i = 0; _i < arguments.length; _i++) {
2203
2219
  options[_i] = arguments[_i];
@@ -2208,14 +2224,14 @@ var Fields = /** @class */ (function () {
2208
2224
  valueConverter: tslib_1.__assign(tslib_1.__assign({}, valueConverters_1.ValueConverters.Integer), { fieldTypeInDb: 'autoincrement' })
2209
2225
  }], options));
2210
2226
  };
2211
- Fields.Number = function () {
2227
+ Fields.number = function () {
2212
2228
  var options = [];
2213
2229
  for (var _i = 0; _i < arguments.length; _i++) {
2214
2230
  options[_i] = arguments[_i];
2215
2231
  }
2216
2232
  return Field.apply(void 0, tslib_1.__spread([function () { return Number; }], options));
2217
2233
  };
2218
- Fields.Uuid = function () {
2234
+ Fields.uuid = function () {
2219
2235
  var options = [];
2220
2236
  for (var _i = 0; _i < arguments.length; _i++) {
2221
2237
  options[_i] = arguments[_i];
@@ -2225,14 +2241,14 @@ var Fields = /** @class */ (function () {
2225
2241
  defaultValue: function () { return uuid_1.v4(); }
2226
2242
  }], options));
2227
2243
  };
2228
- Fields.String = function () {
2244
+ Fields.string = function () {
2229
2245
  var options = [];
2230
2246
  for (var _i = 0; _i < arguments.length; _i++) {
2231
2247
  options[_i] = arguments[_i];
2232
2248
  }
2233
2249
  return Field.apply(void 0, tslib_1.__spread([function () { return String; }], options));
2234
2250
  };
2235
- Fields.Boolean = function () {
2251
+ Fields.boolean = function () {
2236
2252
  var options = [];
2237
2253
  for (var _i = 0; _i < arguments.length; _i++) {
2238
2254
  options[_i] = arguments[_i];
@@ -2253,7 +2269,7 @@ function ValueListFieldType() {
2253
2269
  options[_i] = arguments[_i];
2254
2270
  }
2255
2271
  return function (type) {
2256
- return FieldType.apply(void 0, tslib_1.__spread([function (o) {
2272
+ FieldType.apply(void 0, tslib_1.__spread([function (o) {
2257
2273
  o.valueConverter = ValueListInfo.get(type),
2258
2274
  o.displayValue = function (item, val) { return val.caption; };
2259
2275
  }], options))(type);
@@ -2262,7 +2278,7 @@ function ValueListFieldType() {
2262
2278
  exports.ValueListFieldType = ValueListFieldType;
2263
2279
  var ValueListInfo = /** @class */ (function () {
2264
2280
  function ValueListInfo(valueListType) {
2265
- var e_30, _a;
2281
+ var e_30, _a, _b;
2266
2282
  this.valueListType = valueListType;
2267
2283
  this.byIdMap = new Map();
2268
2284
  this.values = [];
@@ -2272,10 +2288,10 @@ var ValueListInfo = /** @class */ (function () {
2272
2288
  if (s instanceof this.valueListType) {
2273
2289
  if (s.id === undefined)
2274
2290
  s.id = member;
2275
- if (s.caption === undefined)
2276
- s.caption = column_1.makeTitle(member);
2277
2291
  if (typeof s.id === 'number')
2278
2292
  this.isNumeric = true;
2293
+ if (s.caption === undefined)
2294
+ s.caption = column_1.makeTitle(s.id !== undefined ? s.id.toString() : member);
2279
2295
  this.byIdMap.set(s.id, s);
2280
2296
  this.values.push(s);
2281
2297
  }
@@ -2283,13 +2299,18 @@ var ValueListInfo = /** @class */ (function () {
2283
2299
  if (this.isNumeric) {
2284
2300
  this.fieldTypeInDb = 'integer';
2285
2301
  }
2286
- var options = Reflect.getMetadata(exports.storableMember, valueListType);
2287
- if (options)
2302
+ var options = Reflect.getMetadata(exports.storableMember, this.valueListType);
2303
+ if (options) {
2288
2304
  try {
2289
2305
  for (var options_1 = tslib_1.__values(options), options_1_1 = options_1.next(); !options_1_1.done; options_1_1 = options_1.next()) {
2290
2306
  var op = options_1_1.value;
2291
- if (op === null || op === void 0 ? void 0 : op.getValues)
2292
- this.values = op.getValues();
2307
+ if (op === null || op === void 0 ? void 0 : op.getValues) {
2308
+ (_b = this.values).splice.apply(_b, tslib_1.__spread([0, this.values.length], op.getValues()));
2309
+ this.values.forEach(function (s) {
2310
+ if (s.caption === undefined && s.id !== undefined)
2311
+ s.caption = column_1.makeTitle(s.id);
2312
+ });
2313
+ }
2293
2314
  }
2294
2315
  }
2295
2316
  catch (e_30_1) { e_30 = { error: e_30_1 }; }
@@ -2299,12 +2320,18 @@ var ValueListInfo = /** @class */ (function () {
2299
2320
  }
2300
2321
  finally { if (e_30) throw e_30.error; }
2301
2322
  }
2323
+ if (this.values.find(function (s) { return s.id === undefined; }))
2324
+ throw new Error("ValueType " + this.valueListType + " has values without an id");
2325
+ }
2326
+ else
2327
+ throw new Error("ValueType not yet initialized, did you forget to call @ValueListFieldType on " + valueListType);
2302
2328
  }
2303
2329
  ValueListInfo.get = function (type) {
2304
2330
  var r = typeCache.get(type);
2305
- if (!r)
2331
+ if (!r) {
2306
2332
  r = new ValueListInfo(type);
2307
- typeCache.set(type, r);
2333
+ typeCache.set(type, r);
2334
+ }
2308
2335
  return r;
2309
2336
  };
2310
2337
  ValueListInfo.prototype.getValues = function () {
@@ -1,5 +1,16 @@
1
1
  import { EntityBase } from "../remult3";
2
+ import { IdEntity } from "../id-entity";
2
3
  export declare class stam extends EntityBase {
3
4
  id: number;
4
5
  title: string;
5
6
  }
7
+ export declare class tasksWithEnum extends IdEntity {
8
+ title: string;
9
+ completed: boolean;
10
+ priority: Priority;
11
+ }
12
+ export declare enum Priority {
13
+ Low = 0,
14
+ High = 1,
15
+ Critical = 2
16
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stam = void 0;
3
+ exports.Priority = exports.tasksWithEnum = exports.stam = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var data_api_1 = require("../data-api");
6
6
  var remult3_1 = require("../remult3");
@@ -20,6 +20,7 @@ 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 id_entity_1 = require("../id-entity");
23
24
  db_tests_setup_1.testAll("what", function (_a) {
24
25
  var remult = _a.remult, createEntity = _a.createEntity;
25
26
  return tslib_1.__awaiter(void 0, void 0, void 0, function () {
@@ -111,6 +112,42 @@ db_tests_setup_1.testAll("filter works on all db or", function (_a) {
111
112
  });
112
113
  });
113
114
  }, false);
115
+ db_tests_setup_1.testAll("filter works on all db or_1", function (_a) {
116
+ var createEntity = _a.createEntity;
117
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
118
+ var s, _b;
119
+ return tslib_1.__generator(this, function (_c) {
120
+ switch (_c.label) {
121
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
122
+ case 1:
123
+ s = _c.sent();
124
+ _b = expect;
125
+ return [4 /*yield*/, s.find({ where: { $or: [{}, {}] } })];
126
+ case 2:
127
+ _b.apply(void 0, [(_c.sent()).length]).toBe(4);
128
+ return [2 /*return*/];
129
+ }
130
+ });
131
+ });
132
+ }, false);
133
+ db_tests_setup_1.testAll("filter works on all db or_2", function (_a) {
134
+ var createEntity = _a.createEntity;
135
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
136
+ var s, _b;
137
+ return tslib_1.__generator(this, function (_c) {
138
+ switch (_c.label) {
139
+ case 0: return [4 /*yield*/, entityWithValidations_1.entityWithValidations.create4RowsInDp(createEntity)];
140
+ case 1:
141
+ s = _c.sent();
142
+ _b = expect;
143
+ return [4 /*yield*/, s.find({ where: { $or: [{}, { myId: 3 }] } })];
144
+ case 2:
145
+ _b.apply(void 0, [(_c.sent()).length]).toBe(4);
146
+ return [2 /*return*/];
147
+ }
148
+ });
149
+ });
150
+ }, false);
114
151
  db_tests_setup_1.testAll("entity with different id column still works well", function (_a) {
115
152
  var createEntity = _a.createEntity;
116
153
  return tslib_1.__awaiter(void 0, void 0, void 0, function () {
@@ -290,11 +327,11 @@ var testDateWithNull = /** @class */ (function (_super) {
290
327
  return _this;
291
328
  }
292
329
  tslib_1.__decorate([
293
- remult3_1.Fields.Integer(),
330
+ remult3_1.Fields.integer(),
294
331
  tslib_1.__metadata("design:type", Number)
295
332
  ], testDateWithNull.prototype, "id", void 0);
296
333
  tslib_1.__decorate([
297
- remult3_1.Fields.DateOnly({ allowNull: true }),
334
+ remult3_1.Fields.dateOnly({ allowNull: true }),
298
335
  tslib_1.__metadata("design:type", Date)
299
336
  ], testDateWithNull.prototype, "d", void 0);
300
337
  testDateWithNull = tslib_1.__decorate([
@@ -778,7 +815,7 @@ db_tests_setup_1.testAll("Test unique Validation,", function (_a) {
778
815
  return class_1;
779
816
  }(remult_3_entities_1.Categories));
780
817
  remult3_1.Entity('categories')(type);
781
- remult3_1.Fields.String({
818
+ remult3_1.Fields.string({
782
819
  validate: function (en, col) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
783
820
  return tslib_1.__generator(this, function (_a) {
784
821
  switch (_a.label) {
@@ -840,7 +877,7 @@ db_tests_setup_1.testAll("Test unique Validation 2", function (_a) {
840
877
  return class_2;
841
878
  }(remult_3_entities_1.Categories));
842
879
  remult3_1.Entity('sdfgds')(type);
843
- remult3_1.Fields.String({
880
+ remult3_1.Fields.string({
844
881
  validate: validators_1.Validators.unique
845
882
  })(type.prototype, "a");
846
883
  return [4 /*yield*/, createEntity(type)];
@@ -879,11 +916,11 @@ var testNumbers = /** @class */ (function (_super) {
879
916
  return _super !== null && _super.apply(this, arguments) || this;
880
917
  }
881
918
  tslib_1.__decorate([
882
- remult3_1.Fields.Integer(),
919
+ remult3_1.Fields.integer(),
883
920
  tslib_1.__metadata("design:type", Number)
884
921
  ], testNumbers.prototype, "id", void 0);
885
922
  tslib_1.__decorate([
886
- remult3_1.Fields.Number(),
923
+ remult3_1.Fields.number(),
887
924
  tslib_1.__metadata("design:type", Number)
888
925
  ], testNumbers.prototype, "a", void 0);
889
926
  testNumbers = tslib_1.__decorate([
@@ -1123,8 +1160,8 @@ db_tests_setup_1.testAll("saves correctly to db", function (_a) {
1123
1160
  return class_3;
1124
1161
  }(remult3_1.EntityBase));
1125
1162
  remult3_1.Entity('asdf', { allowApiCrud: true })(type);
1126
- remult3_1.Fields.Number()(type.prototype, 'id');
1127
- remult3_1.Fields.Boolean()(type.prototype, "ok");
1163
+ remult3_1.Fields.number()(type.prototype, 'id');
1164
+ remult3_1.Fields.boolean()(type.prototype, "ok");
1128
1165
  return [4 /*yield*/, createEntity(type)];
1129
1166
  case 1:
1130
1167
  r = (_b.sent()).create();
@@ -1150,11 +1187,11 @@ var autoIncrement = /** @class */ (function (_super) {
1150
1187
  return _super !== null && _super.apply(this, arguments) || this;
1151
1188
  }
1152
1189
  tslib_1.__decorate([
1153
- remult3_1.Fields.AutoIncrement(),
1190
+ remult3_1.Fields.autoIncrement(),
1154
1191
  tslib_1.__metadata("design:type", Number)
1155
1192
  ], autoIncrement.prototype, "id", void 0);
1156
1193
  tslib_1.__decorate([
1157
- remult3_1.Fields.Integer(),
1194
+ remult3_1.Fields.integer(),
1158
1195
  tslib_1.__metadata("design:type", Number)
1159
1196
  ], autoIncrement.prototype, "stam", void 0);
1160
1197
  autoIncrement = tslib_1.__decorate([
@@ -1270,19 +1307,19 @@ var testFilter = /** @class */ (function () {
1270
1307
  }]
1271
1308
  }); });
1272
1309
  tslib_1.__decorate([
1273
- remult3_1.Fields.Integer(),
1310
+ remult3_1.Fields.integer(),
1274
1311
  tslib_1.__metadata("design:type", Number)
1275
1312
  ], testFilter.prototype, "id", void 0);
1276
1313
  tslib_1.__decorate([
1277
- remult3_1.Fields.String(),
1314
+ remult3_1.Fields.string(),
1278
1315
  tslib_1.__metadata("design:type", String)
1279
1316
  ], testFilter.prototype, "a", void 0);
1280
1317
  tslib_1.__decorate([
1281
- remult3_1.Fields.String(),
1318
+ remult3_1.Fields.string(),
1282
1319
  tslib_1.__metadata("design:type", String)
1283
1320
  ], testFilter.prototype, "b", void 0);
1284
1321
  tslib_1.__decorate([
1285
- remult3_1.Fields.String(),
1322
+ remult3_1.Fields.string(),
1286
1323
  tslib_1.__metadata("design:type", String)
1287
1324
  ], testFilter.prototype, "c", void 0);
1288
1325
  testFilter = tslib_1.__decorate([
@@ -1298,11 +1335,11 @@ var testStringWithNull = /** @class */ (function (_super) {
1298
1335
  return _this;
1299
1336
  }
1300
1337
  tslib_1.__decorate([
1301
- remult3_1.Fields.Integer(),
1338
+ remult3_1.Fields.integer(),
1302
1339
  tslib_1.__metadata("design:type", Number)
1303
1340
  ], testStringWithNull.prototype, "id", void 0);
1304
1341
  tslib_1.__decorate([
1305
- remult3_1.Fields.String({ allowNull: true }),
1342
+ remult3_1.Fields.string({ allowNull: true }),
1306
1343
  tslib_1.__metadata("design:type", String)
1307
1344
  ], testStringWithNull.prototype, "d", void 0);
1308
1345
  testStringWithNull = tslib_1.__decorate([
@@ -1319,11 +1356,11 @@ var stam = /** @class */ (function (_super) {
1319
1356
  return _this;
1320
1357
  }
1321
1358
  tslib_1.__decorate([
1322
- remult3_1.Fields.Integer(),
1359
+ remult3_1.Fields.integer(),
1323
1360
  tslib_1.__metadata("design:type", Number)
1324
1361
  ], stam.prototype, "id", void 0);
1325
1362
  tslib_1.__decorate([
1326
- remult3_1.Fields.String({ maxLength: 1500 }),
1363
+ remult3_1.Fields.string({ maxLength: 1500 }),
1327
1364
  tslib_1.__metadata("design:type", String)
1328
1365
  ], stam.prototype, "title", void 0);
1329
1366
  stam = tslib_1.__decorate([
@@ -1340,11 +1377,11 @@ var p = /** @class */ (function (_super) {
1340
1377
  return _this;
1341
1378
  }
1342
1379
  tslib_1.__decorate([
1343
- remult3_1.Fields.Integer(),
1380
+ remult3_1.Fields.integer(),
1344
1381
  tslib_1.__metadata("design:type", Number)
1345
1382
  ], p.prototype, "id", void 0);
1346
1383
  tslib_1.__decorate([
1347
- remult3_1.Fields.String(),
1384
+ remult3_1.Fields.string(),
1348
1385
  tslib_1.__metadata("design:type", String)
1349
1386
  ], p.prototype, "name", void 0);
1350
1387
  tslib_1.__decorate([
@@ -1357,3 +1394,62 @@ var p = /** @class */ (function (_super) {
1357
1394
  ], p);
1358
1395
  return p;
1359
1396
  }(remult3_1.EntityBase));
1397
+ var tasksWithEnum = /** @class */ (function (_super) {
1398
+ tslib_1.__extends(tasksWithEnum, _super);
1399
+ function tasksWithEnum() {
1400
+ var _this = _super !== null && _super.apply(this, arguments) || this;
1401
+ _this.title = '';
1402
+ _this.completed = false;
1403
+ _this.priority = Priority.Low;
1404
+ return _this;
1405
+ }
1406
+ tslib_1.__decorate([
1407
+ remult3_1.Fields.string(),
1408
+ tslib_1.__metadata("design:type", Object)
1409
+ ], tasksWithEnum.prototype, "title", void 0);
1410
+ tslib_1.__decorate([
1411
+ remult3_1.Fields.boolean(),
1412
+ tslib_1.__metadata("design:type", Object)
1413
+ ], tasksWithEnum.prototype, "completed", void 0);
1414
+ tslib_1.__decorate([
1415
+ remult3_1.Fields.object(),
1416
+ tslib_1.__metadata("design:type", Object)
1417
+ ], tasksWithEnum.prototype, "priority", void 0);
1418
+ tasksWithEnum = tslib_1.__decorate([
1419
+ remult3_1.Entity('tasksWithEnum', {
1420
+ allowApiCrud: true
1421
+ })
1422
+ ], tasksWithEnum);
1423
+ return tasksWithEnum;
1424
+ }(id_entity_1.IdEntity));
1425
+ exports.tasksWithEnum = tasksWithEnum;
1426
+ var Priority;
1427
+ (function (Priority) {
1428
+ Priority[Priority["Low"] = 0] = "Low";
1429
+ Priority[Priority["High"] = 1] = "High";
1430
+ Priority[Priority["Critical"] = 2] = "Critical";
1431
+ })(Priority = exports.Priority || (exports.Priority = {}));
1432
+ db_tests_setup_1.testAll("task with enum", function (_a) {
1433
+ var createEntity = _a.createEntity;
1434
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
1435
+ var r, item;
1436
+ return tslib_1.__generator(this, function (_b) {
1437
+ switch (_b.label) {
1438
+ case 0: return [4 /*yield*/, createEntity(tasksWithEnum)];
1439
+ case 1:
1440
+ r = _b.sent();
1441
+ return [4 /*yield*/, r.insert({
1442
+ title: 'a',
1443
+ priority: Priority.Critical
1444
+ })];
1445
+ case 2:
1446
+ _b.sent();
1447
+ return [4 /*yield*/, r.findFirst()];
1448
+ case 3:
1449
+ item = _b.sent();
1450
+ expect(item.priority).toBe(Priority.Critical);
1451
+ return [2 /*return*/];
1452
+ }
1453
+ });
1454
+ });
1455
+ });
@@ -53,11 +53,11 @@ var entityWithValidations = /** @class */ (function (_super) {
53
53
  var entityWithValidations_1;
54
54
  entityWithValidations.savingRowCount = 0;
55
55
  tslib_1.__decorate([
56
- remult3_1.Fields.Integer(),
56
+ remult3_1.Fields.integer(),
57
57
  tslib_1.__metadata("design:type", Number)
58
58
  ], entityWithValidations.prototype, "myId", void 0);
59
59
  tslib_1.__decorate([
60
- remult3_1.Fields.String(),
60
+ remult3_1.Fields.string(),
61
61
  tslib_1.__metadata("design:type", String)
62
62
  ], entityWithValidations.prototype, "name", void 0);
63
63
  entityWithValidations = entityWithValidations_1 = tslib_1.__decorate([
@@ -19,8 +19,8 @@ describe("custom id column", function () {
19
19
  return class_1;
20
20
  }(remult3_1.EntityBase));
21
21
  remult3_1.BuildEntity(type, 'custom', {
22
- a: remult3_1.Fields.Number(),
23
- b: remult3_1.Fields.Number()
22
+ a: remult3_1.Fields.number(),
23
+ b: remult3_1.Fields.number()
24
24
  }, { allowApiCrud: true });
25
25
  return [4 /*yield*/, createEntity(type)];
26
26
  case 1:
@@ -58,8 +58,8 @@ describe("custom id column", function () {
58
58
  return class_2;
59
59
  }(remult3_1.EntityBase));
60
60
  remult3_1.Entity('custom2', { allowApiCrud: true })(type);
61
- remult3_1.Fields.Number()(type.prototype, 'a');
62
- remult3_1.Fields.Number()(type.prototype, 'id');
61
+ remult3_1.Fields.number()(type.prototype, 'a');
62
+ remult3_1.Fields.number()(type.prototype, 'id');
63
63
  return [4 /*yield*/, createEntity(type)];
64
64
  case 1:
65
65
  c = _c.sent();
@@ -66,7 +66,7 @@ var testGroups = /** @class */ (function (_super) {
66
66
  return _this;
67
67
  }
68
68
  tslib_1.__decorate([
69
- remult3_1.Fields.Integer(),
69
+ remult3_1.Fields.integer(),
70
70
  tslib_1.__metadata("design:type", Number)
71
71
  ], testGroups.prototype, "id", void 0);
72
72
  tslib_1.__decorate([
@@ -11,7 +11,7 @@ var testNull = /** @class */ (function (_super) {
11
11
  return _this;
12
12
  }
13
13
  tslib_1.__decorate([
14
- remult3_1.Fields.Integer(),
14
+ remult3_1.Fields.integer(),
15
15
  tslib_1.__metadata("design:type", Number)
16
16
  ], testNull.prototype, "id", void 0);
17
17
  tslib_1.__decorate([
package/src/tests/c.js CHANGED
@@ -12,11 +12,11 @@ var c = /** @class */ (function (_super) {
12
12
  return _this;
13
13
  }
14
14
  tslib_1.__decorate([
15
- remult3_1.Fields.Integer(),
15
+ remult3_1.Fields.integer(),
16
16
  tslib_1.__metadata("design:type", Number)
17
17
  ], c.prototype, "id", void 0);
18
18
  tslib_1.__decorate([
19
- remult3_1.Fields.String(),
19
+ remult3_1.Fields.string(),
20
20
  tslib_1.__metadata("design:type", String)
21
21
  ], c.prototype, "name", void 0);
22
22
  c = tslib_1.__decorate([
package/src/tests/d.js CHANGED
@@ -20,11 +20,11 @@ var d = /** @class */ (function (_super) {
20
20
  };
21
21
  d.count = 0;
22
22
  tslib_1.__decorate([
23
- remult3_1.Fields.Integer(),
23
+ remult3_1.Fields.integer(),
24
24
  tslib_1.__metadata("design:type", Number)
25
25
  ], d.prototype, "id", void 0);
26
26
  tslib_1.__decorate([
27
- remult3_1.Fields.Integer(),
27
+ remult3_1.Fields.integer(),
28
28
  tslib_1.__metadata("design:type", Number)
29
29
  ], d.prototype, "b", void 0);
30
30
  tslib_1.__decorate([
@@ -21,11 +21,11 @@ var dWithPrefilter = /** @class */ (function (_super) {
21
21
  var dWithPrefilter_1;
22
22
  dWithPrefilter.count = 0;
23
23
  tslib_1.__decorate([
24
- remult3_1.Fields.Integer(),
24
+ remult3_1.Fields.integer(),
25
25
  tslib_1.__metadata("design:type", Number)
26
26
  ], dWithPrefilter.prototype, "id", void 0);
27
27
  tslib_1.__decorate([
28
- remult3_1.Fields.Integer(),
28
+ remult3_1.Fields.integer(),
29
29
  tslib_1.__metadata("design:type", Number)
30
30
  ], dWithPrefilter.prototype, "b", void 0);
31
31
  tslib_1.__decorate([
@@ -46,7 +46,7 @@ var entityForCustomFilter = /** @class */ (function (_super) {
46
46
  entityForCustomFilter.testNumericValue = filter_interfaces_1.Filter.createCustom(function (r, val) { return ({ id: val }); });
47
47
  entityForCustomFilter.testObjectValue = filter_interfaces_1.Filter.createCustom(function (r, val) { return ({ id: val.val }); });
48
48
  tslib_1.__decorate([
49
- remult3_1.Fields.Integer(),
49
+ remult3_1.Fields.integer(),
50
50
  tslib_1.__metadata("design:type", Number)
51
51
  ], entityForCustomFilter.prototype, "id", void 0);
52
52
  entityForCustomFilter = entityForCustomFilter_1 = tslib_1.__decorate([
@@ -9,11 +9,11 @@ var entityWithValidationsOnColumn = /** @class */ (function (_super) {
9
9
  return _super !== null && _super.apply(this, arguments) || this;
10
10
  }
11
11
  tslib_1.__decorate([
12
- remult3_1.Fields.Integer(),
12
+ remult3_1.Fields.integer(),
13
13
  tslib_1.__metadata("design:type", Number)
14
14
  ], entityWithValidationsOnColumn.prototype, "myId", void 0);
15
15
  tslib_1.__decorate([
16
- remult3_1.Fields.String({
16
+ remult3_1.Fields.string({
17
17
  validate: function (t, c) {
18
18
  if (!t.name || t.name.length < 3)
19
19
  c.error = 'invalid on column';
package/src/tests/h.js CHANGED
@@ -11,7 +11,7 @@ var h = /** @class */ (function (_super) {
11
11
  h_1 = h;
12
12
  var h_1;
13
13
  tslib_1.__decorate([
14
- remult3_1.Fields.String(),
14
+ remult3_1.Fields.string(),
15
15
  tslib_1.__metadata("design:type", String)
16
16
  ], h.prototype, "id", void 0);
17
17
  tslib_1.__decorate([
@@ -19,7 +19,7 @@ var h = /** @class */ (function (_super) {
19
19
  tslib_1.__metadata("design:type", h)
20
20
  ], h.prototype, "refH", void 0);
21
21
  tslib_1.__decorate([
22
- remult3_1.Fields.String(),
22
+ remult3_1.Fields.string(),
23
23
  tslib_1.__metadata("design:type", String)
24
24
  ], h.prototype, "refHId", void 0);
25
25
  h = h_1 = tslib_1.__decorate([
@@ -8,23 +8,23 @@ var Products = /** @class */ (function () {
8
8
  function Products() {
9
9
  }
10
10
  tslib_1.__decorate([
11
- remult3_1.Fields.Integer(),
11
+ remult3_1.Fields.integer(),
12
12
  tslib_1.__metadata("design:type", Number)
13
13
  ], Products.prototype, "id", void 0);
14
14
  tslib_1.__decorate([
15
- remult3_1.Fields.String(),
15
+ remult3_1.Fields.string(),
16
16
  tslib_1.__metadata("design:type", String)
17
17
  ], Products.prototype, "name", void 0);
18
18
  tslib_1.__decorate([
19
- remult3_1.Fields.Number(),
19
+ remult3_1.Fields.number(),
20
20
  tslib_1.__metadata("design:type", Number)
21
21
  ], Products.prototype, "price", void 0);
22
22
  tslib_1.__decorate([
23
- remult3_1.Fields.Boolean(),
23
+ remult3_1.Fields.boolean(),
24
24
  tslib_1.__metadata("design:type", Boolean)
25
25
  ], Products.prototype, "archived", void 0);
26
26
  tslib_1.__decorate([
27
- remult3_1.Fields.Date(),
27
+ remult3_1.Fields.date(),
28
28
  tslib_1.__metadata("design:type", Date)
29
29
  ], Products.prototype, "availableFrom", void 0);
30
30
  Products = tslib_1.__decorate([
@@ -42,27 +42,27 @@ var Categories = /** @class */ (function (_super) {
42
42
  return _this;
43
43
  }
44
44
  tslib_1.__decorate([
45
- remult3_1.Fields.Number({
45
+ remult3_1.Fields.number({
46
46
  dbName: 'CategoryID'
47
47
  }),
48
48
  tslib_1.__metadata("design:type", Number)
49
49
  ], Categories.prototype, "id", void 0);
50
50
  tslib_1.__decorate([
51
- remult3_1.Fields.String({ allowNull: true }),
51
+ remult3_1.Fields.string({ allowNull: true }),
52
52
  tslib_1.__metadata("design:type", String)
53
53
  ], Categories.prototype, "categoryName", void 0);
54
54
  tslib_1.__decorate([
55
- remult3_1.Fields.String(),
55
+ remult3_1.Fields.string(),
56
56
  tslib_1.__metadata("design:type", String)
57
57
  ], Categories.prototype, "description", void 0);
58
58
  tslib_1.__decorate([
59
- remult3_1.Fields.Number({
59
+ remult3_1.Fields.number({
60
60
  serverExpression: function (c) { return c.categoryName ? c.categoryName.length : undefined; }
61
61
  }),
62
62
  tslib_1.__metadata("design:type", Number)
63
63
  ], Categories.prototype, "categoryNameLength", void 0);
64
64
  tslib_1.__decorate([
65
- remult3_1.Fields.Number({
65
+ remult3_1.Fields.number({
66
66
  serverExpression: function (c) { return Promise.resolve(c.categoryName ? c.categoryName.length : undefined); }
67
67
  }),
68
68
  tslib_1.__metadata("design:type", Number)
@@ -11,15 +11,15 @@ var tasks = /** @class */ (function (_super) {
11
11
  return _this;
12
12
  }
13
13
  tslib_1.__decorate([
14
- remult3_1.Fields.Integer(),
14
+ remult3_1.Fields.integer(),
15
15
  tslib_1.__metadata("design:type", Number)
16
16
  ], tasks.prototype, "id", void 0);
17
17
  tslib_1.__decorate([
18
- remult3_1.Fields.String(),
18
+ remult3_1.Fields.string(),
19
19
  tslib_1.__metadata("design:type", String)
20
20
  ], tasks.prototype, "name", void 0);
21
21
  tslib_1.__decorate([
22
- remult3_1.Fields.Boolean(),
22
+ remult3_1.Fields.boolean(),
23
23
  tslib_1.__metadata("design:type", Boolean)
24
24
  ], tasks.prototype, "completed", void 0);
25
25
  tasks = tslib_1.__decorate([
@@ -28,9 +28,15 @@ var TestStatus = /** @class */ (function () {
28
28
  this.id = id;
29
29
  this.caption = caption;
30
30
  }
31
- TestStatus.open = new TestStatus();
32
- TestStatus.closed = new TestStatus('cc');
33
- TestStatus.hold = new TestStatus(undefined, 'hh');
31
+ TestStatus_1 = TestStatus;
32
+ var TestStatus_1;
33
+ TestStatus.open = new TestStatus_1();
34
+ TestStatus.closed = new TestStatus_1('cc');
35
+ TestStatus.hold = new TestStatus_1(undefined, 'hh');
36
+ TestStatus = TestStatus_1 = tslib_1.__decorate([
37
+ remult3_1.ValueListFieldType(),
38
+ tslib_1.__metadata("design:paramtypes", [String, String])
39
+ ], TestStatus);
34
40
  return TestStatus;
35
41
  }());
36
42
  exports.TestStatus = TestStatus;