@quatrain/core 0.4.3 → 0.4.4

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.
@@ -20,7 +20,7 @@ export declare abstract class AbstractObject {
20
20
  ref: string;
21
21
  label: string;
22
22
  };
23
- save(): Promise<DataObjectClass<any>>;
23
+ save(): Promise<this>;
24
24
  delete(): Promise<DataObjectClass<any>>;
25
25
  static query(): Query<typeof AbstractObject>;
26
26
  }
@@ -14,7 +14,6 @@ const Query_1 = require("../backends/Query");
14
14
  class AbstractObject {
15
15
  constructor(dao) {
16
16
  this._dataObject = dao;
17
- AbstractObject.COLLECTION = this.constructor.name.toLowerCase();
18
17
  }
19
18
  get(key) {
20
19
  return this._dataObject.get(key);
@@ -52,7 +51,8 @@ class AbstractObject {
52
51
  }
53
52
  save() {
54
53
  return __awaiter(this, void 0, void 0, function* () {
55
- return yield this._dataObject.save();
54
+ yield this._dataObject.save();
55
+ return this;
56
56
  });
57
57
  }
58
58
  delete() {
@@ -67,7 +67,7 @@ export declare class DataObject implements DataObjectClass<any> {
67
67
  * @returns any
68
68
  */
69
69
  val(key: string): any;
70
- toJSON(): {
70
+ toJSON(objectsAsReferences?: boolean): {
71
71
  [x: string]: any;
72
72
  };
73
73
  toReference(): {
@@ -75,7 +75,7 @@ export declare class DataObject implements DataObjectClass<any> {
75
75
  ref: string;
76
76
  uri: string;
77
77
  };
78
- protected _dataToJSON(): {};
78
+ protected _dataToJSON(objectsAsReferences?: boolean): {};
79
79
  read(): Promise<DataObjectClass<any>>;
80
80
  save(): Promise<DataObjectClass<any>>;
81
81
  delete(): Promise<DataObjectClass<any>>;
@@ -159,26 +159,30 @@ class DataObject {
159
159
  throw new Error(`Unknown property '${key}'`);
160
160
  }
161
161
  }
162
- toJSON() {
163
- return Object.assign(Object.assign({}, (this._uid && { uid: this._uid })), this._dataToJSON());
162
+ toJSON(objectsAsReferences = false) {
163
+ return Object.assign(Object.assign({}, (this._uid && { uid: this._uid })), this._dataToJSON(objectsAsReferences));
164
164
  }
165
165
  toReference() {
166
166
  return Object.assign(Object.assign({}, this._objectUri.toReference()), { label: this.val('name') || '' });
167
167
  }
168
- _dataToJSON() {
168
+ _dataToJSON(objectsAsReferences = false) {
169
169
  const data = {};
170
170
  Object.keys(this._properties).forEach((key) => {
171
171
  const prop = Reflect.get(this._properties, key);
172
- const value = prop.val();
173
172
  switch (prop.constructor.name) {
174
173
  case 'CollectionProperty':
175
174
  // ignore
176
175
  break;
177
176
  case 'ObjectProperty':
178
- Reflect.set(data, key, value ? value.toJSON() : null);
177
+ const value = prop.val();
178
+ Reflect.set(data, key, value
179
+ ? objectsAsReferences
180
+ ? value.toReference()
181
+ : value.toJSON()
182
+ : null);
179
183
  break;
180
184
  default:
181
- Reflect.set(data, key, value || null);
185
+ Reflect.set(data, key, prop.val() || null);
182
186
  }
183
187
  });
184
188
  return data;
@@ -195,12 +199,10 @@ class DataObject {
195
199
  });
196
200
  }
197
201
  save() {
198
- return __awaiter(this, void 0, void 0, function* () {
199
- const backend = Core_1.Core.getBackend(this.backend || Core_1.Core.defaultBackend);
200
- this._persisted = true;
201
- this._modified = false;
202
- return this.uid ? backend.update(this) : backend.create(this);
203
- });
202
+ const backend = Core_1.Core.getBackend(this.backend || Core_1.Core.defaultBackend);
203
+ this._persisted = true;
204
+ this._modified = false;
205
+ return this.uid ? backend.update(this) : backend.create(this);
204
206
  }
205
207
  delete() {
206
208
  return __awaiter(this, void 0, void 0, function* () {
@@ -19,5 +19,5 @@ export interface DataObjectClass<T extends DataObjectClass<any>> {
19
19
  delete(): Promise<T>;
20
20
  clone(data?: any): Promise<T>;
21
21
  toReference(): any;
22
- toJSON(): any;
22
+ toJSON(objectsAsReferences?: boolean): any;
23
23
  }
@@ -19,9 +19,10 @@ class ObjectProperty extends BaseProperty_1.BaseProperty {
19
19
  return super.set(value);
20
20
  }
21
21
  toJSON() {
22
- return this._value && this._value.dataObject
22
+ return this._value &&
23
+ (this._value.dataObject || this._value instanceof DataObject_1.DataObject)
23
24
  ? this._value.dataObject.toReference()
24
- : undefined;
25
+ : null;
25
26
  }
26
27
  }
27
28
  exports.ObjectProperty = ObjectProperty;
@@ -93,8 +93,9 @@ const DataGenerator = (model, qty = 5, forcedValues = {}) => __awaiter(void 0, v
93
93
  break;
94
94
  }
95
95
  });
96
- promises.push(dao.save());
96
+ yield dao.save();
97
+ promises.push(dao);
97
98
  }
98
- return Promise.all(promises);
99
+ return promises;
99
100
  });
100
101
  exports.DataGenerator = DataGenerator;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/core",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Core objects for business apps",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",