remult 0.19.2-exp.0 → 0.19.3

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.
@@ -31,7 +31,7 @@ var SseSubscriptionServer = /** @class */ (function () {
31
31
  delete c.channels[channel];
32
32
  else
33
33
  c.channels[channel] = true;
34
- res.success("ok");
34
+ res.success({ status: "ok" });
35
35
  this.debug();
36
36
  return;
37
37
  }
@@ -22,7 +22,7 @@ export class SseSubscriptionServer {
22
22
  delete c.channels[channel];
23
23
  else
24
24
  c.channels[channel] = true;
25
- res.success("ok");
25
+ res.success({ status: "ok" });
26
26
  this.debug();
27
27
  return;
28
28
  }
@@ -12,8 +12,19 @@ export function remultFastify(options) {
12
12
  },
13
13
  json(data) {
14
14
  res.send(data);
15
+ },
16
+ write(data) {
17
+ res.raw.write(data);
18
+ },
19
+ writeHead(status, headers) {
20
+ res.raw.writeHead(status, headers);
15
21
  }
16
22
  };
23
+ Object.assign(req, {
24
+ on(event, listener) {
25
+ req.raw.on(event, listener);
26
+ }
27
+ });
17
28
  handler(req, myRes, () => { });
18
29
  };
19
30
  return response;
@@ -1711,10 +1711,7 @@ export function decorateColumnSettings(settings, remult) {
1711
1711
  if (settings.valueType == String) {
1712
1712
  let x = settings;
1713
1713
  if (!settings.valueConverter)
1714
- x.valueConverter = {
1715
- toJson: x => x,
1716
- fromJson: x => x
1717
- };
1714
+ x.valueConverter = ValueConverters.String;
1718
1715
  }
1719
1716
  if (settings.valueType == Number) {
1720
1717
  let x = settings;
@@ -25,6 +25,14 @@ testAll("what", async ({ remult, createEntity }) => {
25
25
  await (await createEntity(stam)).create({ id: 1, title: 'noam' }).save();
26
26
  expect(await remult.repo(stam).count()).toBe(1);
27
27
  }, false);
28
+ testAll("data types", async ({ remult, createEntity }) => {
29
+ let r = await (await createEntity(stam)).create({
30
+ id: 1,
31
+ //@ts-ignore
32
+ title: 42
33
+ }).save();
34
+ expect(r.title).toEqual("42");
35
+ }, false);
28
36
  testAll("filter works on all db", async ({ createEntity }) => {
29
37
  let s = await entityWithValidations.create4RowsInDp(createEntity);
30
38
  expect((await s.find({ where: { myId: [1, 3] } })).length).toBe(2);
@@ -5,6 +5,7 @@ export declare class ValueConverters {
5
5
  static readonly DateOnlyString: ValueConverter<Date>;
6
6
  static readonly Boolean: ValueConverter<Boolean>;
7
7
  static readonly Number: ValueConverter<number>;
8
+ static readonly String: ValueConverter<String>;
8
9
  static readonly Integer: ValueConverter<number>;
9
10
  static readonly Default: Required<ValueConverter<any>>;
10
11
  static readonly JsonString: ValueConverter<any>;
@@ -141,6 +141,14 @@ ValueConverters.Number = {
141
141
  },
142
142
  inputType: InputTypes.number
143
143
  };
144
+ ValueConverters.String = {
145
+ fromDb: enforceString,
146
+ toDb: enforceString,
147
+ fromJson: enforceString,
148
+ toJson: enforceString,
149
+ fromInput: enforceString,
150
+ toInput: enforceString,
151
+ };
144
152
  ValueConverters.Integer = {
145
153
  ...ValueConverters.Number,
146
154
  toJson: value => {
@@ -180,3 +188,10 @@ ValueConverters.JsonValue = {
180
188
  toInput: x => ValueConverters.JsonString.toJson(x),
181
189
  fieldTypeInDb: 'json'
182
190
  };
191
+ function enforceString(value) {
192
+ if (value === null || value === undefined)
193
+ return value;
194
+ if (typeof (value) !== "string")
195
+ return value.toString();
196
+ return value;
197
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remult",
3
- "version": "0.19.2-exp.0",
3
+ "version": "0.19.3",
4
4
  "description": "A CRUD framework for full-stack TypeScript",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
package/remult-fastify.js CHANGED
@@ -17,8 +17,19 @@ function remultFastify(options) {
17
17
  },
18
18
  json: function (data) {
19
19
  res.send(data);
20
+ },
21
+ write: function (data) {
22
+ res.raw.write(data);
23
+ },
24
+ writeHead: function (status, headers) {
25
+ res.raw.writeHead(status, headers);
20
26
  }
21
27
  };
28
+ Object.assign(req, {
29
+ on: function (event, listener) {
30
+ req.raw.on(event, listener);
31
+ }
32
+ });
22
33
  handler(req, myRes, function () { });
23
34
  };
24
35
  return response;
@@ -2896,10 +2896,7 @@ function decorateColumnSettings(settings, remult) {
2896
2896
  if (settings.valueType == String) {
2897
2897
  var x = settings;
2898
2898
  if (!settings.valueConverter)
2899
- x.valueConverter = {
2900
- toJson: function (x) { return x; },
2901
- fromJson: function (x) { return x; }
2902
- };
2899
+ x.valueConverter = valueConverters_1.ValueConverters.String;
2903
2900
  }
2904
2901
  if (settings.valueType == Number) {
2905
2902
  var x = settings;
@@ -43,6 +43,26 @@ db_tests_setup_1.testAll("what", function (_a) {
43
43
  });
44
44
  });
45
45
  }, false);
46
+ db_tests_setup_1.testAll("data types", function (_a) {
47
+ var remult = _a.remult, createEntity = _a.createEntity;
48
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
49
+ var r;
50
+ return tslib_1.__generator(this, function (_b) {
51
+ switch (_b.label) {
52
+ case 0: return [4 /*yield*/, createEntity(stam)];
53
+ case 1: return [4 /*yield*/, (_b.sent()).create({
54
+ id: 1,
55
+ //@ts-ignore
56
+ title: 42
57
+ }).save()];
58
+ case 2:
59
+ r = _b.sent();
60
+ expect(r.title).toEqual("42");
61
+ return [2 /*return*/];
62
+ }
63
+ });
64
+ });
65
+ }, false);
46
66
  db_tests_setup_1.testAll("filter works on all db", function (_a) {
47
67
  var createEntity = _a.createEntity;
48
68
  return tslib_1.__awaiter(void 0, void 0, void 0, function () {
@@ -5,6 +5,7 @@ export declare class ValueConverters {
5
5
  static readonly DateOnlyString: ValueConverter<Date>;
6
6
  static readonly Boolean: ValueConverter<Boolean>;
7
7
  static readonly Number: ValueConverter<number>;
8
+ static readonly String: ValueConverter<String>;
8
9
  static readonly Integer: ValueConverter<number>;
9
10
  static readonly Default: Required<ValueConverter<any>>;
10
11
  static readonly JsonString: ValueConverter<any>;
@@ -142,6 +142,14 @@ var ValueConverters = /** @class */ (function () {
142
142
  },
143
143
  inputType: inputTypes_1.InputTypes.number
144
144
  };
145
+ ValueConverters.String = {
146
+ fromDb: enforceString,
147
+ toDb: enforceString,
148
+ fromJson: enforceString,
149
+ toJson: enforceString,
150
+ fromInput: enforceString,
151
+ toInput: enforceString,
152
+ };
145
153
  ValueConverters.Integer = tslib_1.__assign(tslib_1.__assign({}, ValueConverters.Number), { toJson: function (value) {
146
154
  var val = ValueConverters.Number.toDb(value);
147
155
  if (!val)
@@ -179,3 +187,10 @@ var ValueConverters = /** @class */ (function () {
179
187
  return ValueConverters;
180
188
  }());
181
189
  exports.ValueConverters = ValueConverters;
190
+ function enforceString(value) {
191
+ if (value === null || value === undefined)
192
+ return value;
193
+ if (typeof (value) !== "string")
194
+ return value.toString();
195
+ return value;
196
+ }