remult 0.10.14 → 0.11.1

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.10.14",
3
+ "version": "0.11.1",
4
4
  "description": "remult core lib",
5
5
  "homepage": "https://remult.dev/",
6
6
  "repository": {
@@ -31,7 +31,15 @@ export declare class RepositoryImplementation<entityType> implements Repository<
31
31
  id: string;
32
32
  } ? string : (string | number))): Promise<void>;
33
33
  delete(item: entityType): Promise<void>;
34
- save(entity: entityType, originalIdOrCreate?: boolean | number | string): Promise<entityType>;
34
+ insert(item: Partial<OmitEB<entityType>>[]): Promise<entityType[]>;
35
+ insert(item: Partial<OmitEB<entityType>>): Promise<entityType>;
36
+ update(id: (entityType extends {
37
+ id: number;
38
+ } ? number : entityType extends {
39
+ id: string;
40
+ } ? string : (string | number)), entity: Partial<OmitEB<entityType>>): Promise<entityType>;
41
+ save(item: Partial<OmitEB<entityType>>[]): Promise<entityType[]>;
42
+ save(item: Partial<OmitEB<entityType>>): Promise<entityType>;
35
43
  find(options: FindOptions<entityType>): Promise<entityType[]>;
36
44
  private mapRawDataToResult;
37
45
  count(where?: EntityFilter<entityType>): Promise<number>;
@@ -202,44 +202,76 @@ var RepositoryImplementation = /** @class */ (function () {
202
202
  });
203
203
  });
204
204
  };
205
- RepositoryImplementation.prototype.save = function (entity, originalIdOrCreate) {
205
+ RepositoryImplementation.prototype.insert = function (entity) {
206
206
  return tslib_1.__awaiter(this, void 0, void 0, function () {
207
- var ref, id, row, obj, key, element, updatedRow;
207
+ var ref;
208
+ var _this = this;
208
209
  return tslib_1.__generator(this, function (_a) {
209
210
  switch (_a.label) {
210
211
  case 0:
212
+ if (!Array.isArray(entity)) return [3 /*break*/, 1];
213
+ return [2 /*return*/, Promise.all(entity.map(function (x) { return _this.insert(x); }))];
214
+ case 1:
211
215
  ref = getEntityRef(entity, false);
212
- if (!ref) return [3 /*break*/, 2];
216
+ if (!ref) return [3 /*break*/, 3];
217
+ if (!ref.isNew())
218
+ throw "Item is not new";
213
219
  return [4 /*yield*/, ref.save()];
214
- case 1: return [2 /*return*/, _a.sent()];
215
- case 2:
216
- if (!(entity instanceof EntityBase)) return [3 /*break*/, 4];
217
- return [4 /*yield*/, this.getEntityRef(entity).save()];
218
- case 3: return [2 /*return*/, _a.sent()];
219
- case 4:
220
- id = entity[this.metadata.idMetadata.field.key];
221
- if (!(id === undefined || originalIdOrCreate === true)) return [3 /*break*/, 6];
222
- return [4 /*yield*/, this.getEntityRef(this.create(entity)).save()];
223
- case 5: return [2 /*return*/, _a.sent()];
224
- case 6:
225
- if (originalIdOrCreate !== undefined)
226
- id = originalIdOrCreate;
220
+ case 2: return [2 /*return*/, _a.sent()];
221
+ case 3: return [4 /*yield*/, this.getEntityRef(this.create(entity)).save()];
222
+ case 4: return [2 /*return*/, _a.sent()];
223
+ }
224
+ });
225
+ });
226
+ };
227
+ RepositoryImplementation.prototype.update = function (id, entity) {
228
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
229
+ var row, obj, key, updatedRow;
230
+ return tslib_1.__generator(this, function (_a) {
231
+ switch (_a.label) {
232
+ case 0:
227
233
  row = new rowHelperImplementation(this._info, Object.assign({}, entity), this, this.edp, this.remult, false);
228
234
  obj = row.copyDataToObject();
229
235
  for (key in entity) {
230
236
  if (Object.prototype.hasOwnProperty.call(entity, key)) {
231
- element = entity[key];
232
237
  entity[key] = obj[key];
233
238
  }
234
239
  }
235
240
  return [4 /*yield*/, this.edp.update(id, entity)];
236
- case 7:
241
+ case 1:
237
242
  updatedRow = _a.sent();
238
243
  return [2 /*return*/, this.mapRawDataToResult(updatedRow, undefined)];
239
244
  }
240
245
  });
241
246
  });
242
247
  };
248
+ RepositoryImplementation.prototype.save = function (entity) {
249
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
250
+ var ref, id;
251
+ var _this = this;
252
+ return tslib_1.__generator(this, function (_a) {
253
+ switch (_a.label) {
254
+ case 0:
255
+ if (!Array.isArray(entity)) return [3 /*break*/, 1];
256
+ return [2 /*return*/, Promise.all(entity.map(function (x) { return _this.insert(x); }))];
257
+ case 1:
258
+ ref = getEntityRef(entity, false);
259
+ if (!ref) return [3 /*break*/, 3];
260
+ return [4 /*yield*/, ref.save()];
261
+ case 2: return [2 /*return*/, _a.sent()];
262
+ case 3:
263
+ if (!(entity instanceof EntityBase)) return [3 /*break*/, 5];
264
+ return [4 /*yield*/, this.getEntityRef(entity).save()];
265
+ case 4: return [2 /*return*/, _a.sent()];
266
+ case 5:
267
+ id = entity[this.metadata.idMetadata.field.key];
268
+ if (id === undefined)
269
+ return [2 /*return*/, this.insert(entity)];
270
+ return [2 /*return*/, this.update(id, entity)];
271
+ }
272
+ });
273
+ });
274
+ };
243
275
  RepositoryImplementation.prototype.find = function (options) {
244
276
  return tslib_1.__awaiter(this, void 0, void 0, function () {
245
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;
@@ -119,13 +119,15 @@ export interface Repository<entityType> {
119
119
  count(where?: EntityFilter<entityType>): Promise<number>;
120
120
  create(item?: Partial<OmitEB<entityType>>): entityType;
121
121
  getEntityRef(item: entityType): EntityRef<entityType>;
122
+ save(item: Partial<OmitEB<entityType>>[]): Promise<entityType[]>;
122
123
  save(item: Partial<OmitEB<entityType>>): Promise<entityType>;
123
- save(item: Partial<OmitEB<entityType>>, originalId?: entityType extends {
124
+ insert(item: Partial<OmitEB<entityType>>[]): Promise<entityType[]>;
125
+ insert(item: Partial<OmitEB<entityType>>): Promise<entityType>;
126
+ update(id: (entityType extends {
124
127
  id: number;
125
128
  } ? number : entityType extends {
126
129
  id: string;
127
- } ? string : (string | number)): Promise<entityType>;
128
- save(item: Partial<OmitEB<entityType>>, create?: boolean): Promise<entityType>;
130
+ } ? string : (string | number)), item: Partial<OmitEB<entityType>>): Promise<entityType>;
129
131
  delete(id: (entityType extends {
130
132
  id: number;
131
133
  } ? number : entityType extends {