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.
package/esm/remult-mongo.js
CHANGED
|
@@ -59,7 +59,7 @@ class MongoEntityDataProvider {
|
|
|
59
59
|
this.entity = entity;
|
|
60
60
|
this.session = session;
|
|
61
61
|
}
|
|
62
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
151
|
+
let r = await collection.insertOne(await this.translateToDb(data, e), {
|
|
152
152
|
session: this.session,
|
|
153
153
|
});
|
|
154
|
-
return await this.
|
|
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
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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");
|