remult 0.22.1 → 0.22.2

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.
@@ -59,7 +59,7 @@ class MongoEntityDataProvider {
59
59
  this.entity = entity;
60
60
  this.session = session;
61
61
  }
62
- translateFromJson(row, nameProvider) {
62
+ translateFromDb(row, nameProvider) {
63
63
  let result = {};
64
64
  for (const col of this.entity.fields) {
65
65
  let val = row[nameProvider.$dbNameOf(col)];
@@ -69,7 +69,7 @@ class MongoEntityDataProvider {
69
69
  }
70
70
  return result;
71
71
  }
72
- translateToJson(row, nameProvider) {
72
+ translateToDb(row, nameProvider) {
73
73
  let result = {};
74
74
  for (const col of this.entity.fields) {
75
75
  let val = col.valueConverter.toDb(row[col.key]);
@@ -109,7 +109,7 @@ class MongoEntityDataProvider {
109
109
  }
110
110
  return await Promise.all(await collection
111
111
  .find(where, op)
112
- .map((x) => this.translateFromJson(x, e))
112
+ .map((x) => this.translateFromDb(x, e))
113
113
  .toArray());
114
114
  }
115
115
  async update(id, data) {
@@ -129,7 +129,7 @@ class MongoEntityDataProvider {
129
129
  for (const f of this.entity.fields) {
130
130
  if (!f.dbReadOnly && !f.isServerExpression) {
131
131
  if (keys.includes(f.key)) {
132
- newR[f.key] = f.valueConverter.toJson(data[f.key]);
132
+ newR[f.key] = f.valueConverter.toDb(data[f.key]);
133
133
  }
134
134
  }
135
135
  }
@@ -148,10 +148,10 @@ class MongoEntityDataProvider {
148
148
  }
149
149
  async insert(data) {
150
150
  let { collection, e } = await this.collection();
151
- let r = await collection.insertOne(await this.translateToJson(data, e), {
151
+ let r = await collection.insertOne(await this.translateToDb(data, e), {
152
152
  session: this.session,
153
153
  });
154
- return await this.translateFromJson(await collection.findOne({ _id: r.insertedId }, { session: this.session }), e);
154
+ return await this.translateFromDb(await collection.findOne({ _id: r.insertedId }, { session: this.session }), e);
155
155
  }
156
156
  async collection() {
157
157
  const e = await dbNamesOf(this.entity);
@@ -199,4 +199,24 @@ testMongoNoTrans('transactions mongo no trans', async ({ db, createEntity }) =>
199
199
  }
200
200
  expect(await x.count()).toBe(1);
201
201
  }, false);
202
+ testMongoNoTrans('test Dates', async ({ createEntity }) => {
203
+ const c = class {
204
+ };
205
+ describeClass(c, Entity('test_dates_on_mongo'), {
206
+ id: Fields.integer(),
207
+ date: Fields.date(),
208
+ });
209
+ const r = await createEntity(c);
210
+ let x = await r.insert({ id: 1, date: new Date(1976, 5, 16) });
211
+ const client = new MongoClient('mongodb://localhost:27017/local');
212
+ await client.connect();
213
+ const mongoDb = client.db('test');
214
+ expect((await mongoDb.collection(await r.metadata.getDbName()).findOne())
215
+ .date instanceof Date).toBe(true);
216
+ x.date = new Date(1978, 2, 15);
217
+ await r.save(x);
218
+ expect((await mongoDb.collection(await r.metadata.getDbName()).findOne())
219
+ .date instanceof Date).toBe(true);
220
+ //let z = await r.save({ ...x, date: new Date(1978, 2, 15) })
221
+ }, false);
202
222
  import '../shared-tests';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remult",
3
- "version": "0.22.1",
3
+ "version": "0.22.2",
4
4
  "description": "A CRUD framework for full-stack TypeScript",
5
5
  "types": "index.d.ts",
6
6
  "module": "esm/index.js",
package/remult-mongo.js CHANGED
@@ -101,7 +101,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
101
101
  this.entity = entity;
102
102
  this.session = session;
103
103
  }
104
- MongoEntityDataProvider.prototype.translateFromJson = function (row, nameProvider) {
104
+ MongoEntityDataProvider.prototype.translateFromDb = function (row, nameProvider) {
105
105
  var e_1, _a;
106
106
  var result = {};
107
107
  try {
@@ -122,7 +122,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
122
122
  }
123
123
  return result;
124
124
  };
125
- MongoEntityDataProvider.prototype.translateToJson = function (row, nameProvider) {
125
+ MongoEntityDataProvider.prototype.translateToDb = function (row, nameProvider) {
126
126
  var e_2, _a;
127
127
  var result = {};
128
128
  try {
@@ -206,7 +206,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
206
206
  _e = (_d = Promise).all;
207
207
  return [4 /*yield*/, collection
208
208
  .find(where, op)
209
- .map(function (x) { return _this.translateFromJson(x, e); })
209
+ .map(function (x) { return _this.translateFromDb(x, e); })
210
210
  .toArray()];
211
211
  case 3: return [4 /*yield*/, _e.apply(_d, [_g.sent()])];
212
212
  case 4: return [2 /*return*/, _g.sent()];
@@ -250,7 +250,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
250
250
  f_1 = _e.value;
251
251
  if (!f_1.dbReadOnly && !f_1.isServerExpression) {
252
252
  if (keys.includes(f_1.key)) {
253
- newR[f_1.key] = f_1.valueConverter.toJson(data[f_1.key]);
253
+ newR[f_1.key] = f_1.valueConverter.toDb(data[f_1.key]);
254
254
  }
255
255
  }
256
256
  }
@@ -305,13 +305,13 @@ var MongoEntityDataProvider = /** @class */ (function () {
305
305
  case 1:
306
306
  _a = _e.sent(), collection = _a.collection, e = _a.e;
307
307
  _c = (_b = collection).insertOne;
308
- return [4 /*yield*/, this.translateToJson(data, e)];
308
+ return [4 /*yield*/, this.translateToDb(data, e)];
309
309
  case 2: return [4 /*yield*/, _c.apply(_b, [_e.sent(), {
310
310
  session: this.session,
311
311
  }])];
312
312
  case 3:
313
313
  r = _e.sent();
314
- _d = this.translateFromJson;
314
+ _d = this.translateFromDb;
315
315
  return [4 /*yield*/, collection.findOne({ _id: r.insertedId }, { session: this.session })];
316
316
  case 4: return [4 /*yield*/, _d.apply(this, [_e.sent(), e])];
317
317
  case 5: return [2 /*return*/, _e.sent()];
@@ -390,4 +390,54 @@ exports.testMongoNoTrans('transactions mongo no trans', function (_a) {
390
390
  });
391
391
  });
392
392
  }, false);
393
+ exports.testMongoNoTrans('test Dates', function (_a) {
394
+ var createEntity = _a.createEntity;
395
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
396
+ var c, r, x, client, mongoDb, _b, _c, _d, _e, _f, _g;
397
+ return tslib_1.__generator(this, function (_h) {
398
+ switch (_h.label) {
399
+ case 0:
400
+ c = /** @class */ (function () {
401
+ function class_2() {
402
+ }
403
+ return class_2;
404
+ }());
405
+ DecoratorReplacer_1.describeClass(c, remult3_1.Entity('test_dates_on_mongo'), {
406
+ id: remult3_1.Fields.integer(),
407
+ date: remult3_1.Fields.date(),
408
+ });
409
+ return [4 /*yield*/, createEntity(c)];
410
+ case 1:
411
+ r = _h.sent();
412
+ return [4 /*yield*/, r.insert({ id: 1, date: new Date(1976, 5, 16) })];
413
+ case 2:
414
+ x = _h.sent();
415
+ client = new mongodb_1.MongoClient('mongodb://localhost:27017/local');
416
+ return [4 /*yield*/, client.connect()];
417
+ case 3:
418
+ _h.sent();
419
+ mongoDb = client.db('test');
420
+ _b = expect;
421
+ _d = (_c = mongoDb).collection;
422
+ return [4 /*yield*/, r.metadata.getDbName()];
423
+ case 4: return [4 /*yield*/, _d.apply(_c, [_h.sent()]).findOne()];
424
+ case 5:
425
+ _b.apply(void 0, [(_h.sent())
426
+ .date instanceof Date]).toBe(true);
427
+ x.date = new Date(1978, 2, 15);
428
+ return [4 /*yield*/, r.save(x)];
429
+ case 6:
430
+ _h.sent();
431
+ _e = expect;
432
+ _g = (_f = mongoDb).collection;
433
+ return [4 /*yield*/, r.metadata.getDbName()];
434
+ case 7: return [4 /*yield*/, _g.apply(_f, [_h.sent()]).findOne()];
435
+ case 8:
436
+ _e.apply(void 0, [(_h.sent())
437
+ .date instanceof Date]).toBe(true);
438
+ return [2 /*return*/];
439
+ }
440
+ });
441
+ });
442
+ }, false);
393
443
  require("../shared-tests");