dataflux 1.7.3 → 1.9.0
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/README.md +163 -30
- package/dist/BasicObj.js +53 -6
- package/dist/Model.js +147 -39
- package/dist/ObserverStore.js +140 -100
- package/dist/PersistentStore.js +22 -7
- package/dist/Store.js +202 -64
- package/dist/dataflux.min.js +2 -0
- package/dist/dataflux.min.js.map +1 -0
- package/dist/modelHooksUtils.js +50 -19
- package/package.json +10 -6
package/dist/Model.js
CHANGED
|
@@ -7,8 +7,6 @@ exports["default"] = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _modelHooksUtils = require("./modelHooksUtils");
|
|
9
9
|
|
|
10
|
-
var _batchPromises = _interopRequireDefault(require("batch-promises"));
|
|
11
|
-
|
|
12
10
|
var _axios2 = _interopRequireDefault(require("axios"));
|
|
13
11
|
|
|
14
12
|
var _BasicObj = require("./BasicObj");
|
|
@@ -95,22 +93,29 @@ var _addRelationByFilter = /*#__PURE__*/new WeakMap();
|
|
|
95
93
|
|
|
96
94
|
var _removeHiddenFields = /*#__PURE__*/new WeakMap();
|
|
97
95
|
|
|
98
|
-
var _bulkOperation = /*#__PURE__*/new WeakMap();
|
|
99
|
-
|
|
100
96
|
var _toArray = /*#__PURE__*/new WeakMap();
|
|
101
97
|
|
|
102
98
|
var _unWrap = /*#__PURE__*/new WeakMap();
|
|
103
99
|
|
|
104
100
|
var _insertObjects = /*#__PURE__*/new WeakMap();
|
|
105
101
|
|
|
102
|
+
var _assignId = /*#__PURE__*/new WeakMap();
|
|
103
|
+
|
|
106
104
|
var _updateObjects = /*#__PURE__*/new WeakMap();
|
|
107
105
|
|
|
108
106
|
var _deleteObjects = /*#__PURE__*/new WeakMap();
|
|
109
107
|
|
|
108
|
+
var _hanldeApiError = /*#__PURE__*/new WeakMap();
|
|
109
|
+
|
|
110
|
+
var _cleanApiError = /*#__PURE__*/new WeakMap();
|
|
111
|
+
|
|
112
|
+
var _removeFromStoreSilentlyAfterFailure = /*#__PURE__*/new WeakMap();
|
|
113
|
+
|
|
110
114
|
var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
111
115
|
var _this = this,
|
|
112
116
|
_options$deep,
|
|
113
|
-
_options$parseMoment
|
|
117
|
+
_options$parseMoment,
|
|
118
|
+
_options$validate;
|
|
114
119
|
|
|
115
120
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
116
121
|
|
|
@@ -178,6 +183,31 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
178
183
|
value: void 0
|
|
179
184
|
});
|
|
180
185
|
|
|
186
|
+
_defineProperty(this, "validateObjectAttribute", function (object, key) {
|
|
187
|
+
var validate = _this.options.validate;
|
|
188
|
+
|
|
189
|
+
if (validate && validate[key]) {
|
|
190
|
+
try {
|
|
191
|
+
validate[key](object);
|
|
192
|
+
object.setError(false, key);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
object.setError(error.message, key);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
_defineProperty(this, "isObjectValid", function (object) {
|
|
200
|
+
for (var key in object) {
|
|
201
|
+
if (typeof object[key] !== "function") {
|
|
202
|
+
if (object.getError(key)) {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return true;
|
|
209
|
+
});
|
|
210
|
+
|
|
181
211
|
_defineProperty(this, "getStore", function () {
|
|
182
212
|
return _classPrivateFieldGet(_this, _store);
|
|
183
213
|
});
|
|
@@ -195,7 +225,8 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
195
225
|
return _this.getStore().whenSaved(_this.getType())["catch"](function (e) {
|
|
196
226
|
throw new Error("You cannot perform load() on an unsaved object.");
|
|
197
227
|
}).then(function () {
|
|
198
|
-
var res = _classPrivateFieldGet(_this, _loadFunction).call(_this, obj.toJSON());
|
|
228
|
+
var res = _classPrivateFieldGet(_this, _loadFunction).call(_this, obj.toJSON()); // toJSON to avoid side effects;
|
|
229
|
+
|
|
199
230
|
|
|
200
231
|
if (typeof res === "string") {
|
|
201
232
|
return _classPrivateFieldGet(_this, _axios).call(_this, {
|
|
@@ -271,15 +302,15 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
271
302
|
});
|
|
272
303
|
|
|
273
304
|
_defineProperty(this, "insertObjects", function (objects) {
|
|
274
|
-
return objects.length ? _classPrivateFieldGet(_this,
|
|
305
|
+
return objects.length ? _classPrivateFieldGet(_this, _insertObjects).call(_this, objects) : Promise.resolve();
|
|
275
306
|
});
|
|
276
307
|
|
|
277
308
|
_defineProperty(this, "updateObjects", function (objects) {
|
|
278
|
-
return objects.length ? _classPrivateFieldGet(_this,
|
|
309
|
+
return objects.length ? _classPrivateFieldGet(_this, _updateObjects).call(_this, objects) : Promise.resolve();
|
|
279
310
|
});
|
|
280
311
|
|
|
281
312
|
_defineProperty(this, "deleteObjects", function (objects) {
|
|
282
|
-
return objects.length ? _classPrivateFieldGet(_this,
|
|
313
|
+
return objects.length ? _classPrivateFieldGet(_this, _deleteObjects).call(_this, objects) : Promise.resolve();
|
|
283
314
|
});
|
|
284
315
|
|
|
285
316
|
_defineProperty(this, "factory", function (params) {
|
|
@@ -338,26 +369,11 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
338
369
|
}
|
|
339
370
|
});
|
|
340
371
|
|
|
341
|
-
_classPrivateFieldInitSpec(this, _bulkOperation, {
|
|
342
|
-
writable: true,
|
|
343
|
-
value: function value(objects, action) {
|
|
344
|
-
if (_classPrivateFieldGet(_this, _singleItemQuery)) {
|
|
345
|
-
return (0, _batchPromises["default"])(_classPrivateFieldGet(_this, _batchSize), objects.map(function (i) {
|
|
346
|
-
return _classPrivateFieldGet(_this, _removeHiddenFields).call(_this, i.toJSON());
|
|
347
|
-
}), action);
|
|
348
|
-
} else {
|
|
349
|
-
return action(objects.map(function (i) {
|
|
350
|
-
return _classPrivateFieldGet(_this, _removeHiddenFields).call(_this, i.toJSON());
|
|
351
|
-
}));
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
});
|
|
355
|
-
|
|
356
372
|
_classPrivateFieldInitSpec(this, _toArray, {
|
|
357
373
|
writable: true,
|
|
358
374
|
value: function value(data) {
|
|
359
375
|
if (Array.isArray(data)) {
|
|
360
|
-
if (data.every(function (str) {
|
|
376
|
+
if (data.length && data.every(function (str) {
|
|
361
377
|
return ["string", "number"].includes(_typeof(str));
|
|
362
378
|
})) {
|
|
363
379
|
return [{
|
|
@@ -380,7 +396,11 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
380
396
|
|
|
381
397
|
_classPrivateFieldInitSpec(this, _unWrap, {
|
|
382
398
|
writable: true,
|
|
383
|
-
value: function value(
|
|
399
|
+
value: function value(objects) {
|
|
400
|
+
var data = Object.values(objects).map(function (object) {
|
|
401
|
+
return _classPrivateFieldGet(_this, _removeHiddenFields).call(_this, object.toJSON());
|
|
402
|
+
});
|
|
403
|
+
|
|
384
404
|
if (data.value != null && Object.keys(data).length === 1) {
|
|
385
405
|
return data.value;
|
|
386
406
|
} else if (Array.isArray(data) && data.length === 1 && data[0].value != null && Object.keys(data[0]).length === 1) {
|
|
@@ -393,22 +413,109 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
393
413
|
|
|
394
414
|
_classPrivateFieldInitSpec(this, _insertObjects, {
|
|
395
415
|
writable: true,
|
|
396
|
-
value: function value(
|
|
397
|
-
|
|
416
|
+
value: function value(objects) {
|
|
417
|
+
var operation = "insert";
|
|
418
|
+
return (0, _modelHooksUtils.executeHook)(operation, _classPrivateFieldGet(_this, _insertHook), _classPrivateFieldGet(_this, _unWrap).call(_this, objects), _classPrivateFieldGet(_this, _axios)).then(function (data) {
|
|
419
|
+
if (data) _classPrivateFieldGet(_this, _assignId).call(_this, data, objects);
|
|
420
|
+
|
|
421
|
+
_classPrivateFieldGet(_this, _cleanApiError).call(_this, objects);
|
|
422
|
+
|
|
423
|
+
return data;
|
|
424
|
+
}).then(_classPrivateFieldGet(_this, _toArray))["catch"](function (error) {
|
|
425
|
+
_classPrivateFieldGet(_this, _removeFromStoreSilentlyAfterFailure).call(_this, objects);
|
|
426
|
+
|
|
427
|
+
return _classPrivateFieldGet(_this, _hanldeApiError).call(_this, error, objects, operation);
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
|
|
432
|
+
_classPrivateFieldInitSpec(this, _assignId, {
|
|
433
|
+
writable: true,
|
|
434
|
+
value: function value(data, objects) {
|
|
435
|
+
if (data.length === 1) {
|
|
436
|
+
var newId = data[0].id;
|
|
437
|
+
objects[0].setId(newId);
|
|
438
|
+
delete objects[0].setId;
|
|
439
|
+
}
|
|
398
440
|
}
|
|
399
441
|
});
|
|
400
442
|
|
|
401
443
|
_classPrivateFieldInitSpec(this, _updateObjects, {
|
|
402
444
|
writable: true,
|
|
403
|
-
value: function value(
|
|
404
|
-
|
|
445
|
+
value: function value(objects) {
|
|
446
|
+
var operation = "update";
|
|
447
|
+
return (0, _modelHooksUtils.executeHook)(operation, _classPrivateFieldGet(_this, _updateHook), _classPrivateFieldGet(_this, _unWrap).call(_this, objects), _classPrivateFieldGet(_this, _axios)).then(function (data) {
|
|
448
|
+
_classPrivateFieldGet(_this, _cleanApiError).call(_this, objects);
|
|
449
|
+
|
|
450
|
+
return data;
|
|
451
|
+
}).then(_classPrivateFieldGet(_this, _toArray))["catch"](function (error) {
|
|
452
|
+
return _classPrivateFieldGet(_this, _hanldeApiError).call(_this, error, objects, operation);
|
|
453
|
+
});
|
|
405
454
|
}
|
|
406
455
|
});
|
|
407
456
|
|
|
408
457
|
_classPrivateFieldInitSpec(this, _deleteObjects, {
|
|
409
458
|
writable: true,
|
|
410
|
-
value: function value(
|
|
411
|
-
|
|
459
|
+
value: function value(objects) {
|
|
460
|
+
var operation = "delete";
|
|
461
|
+
return (0, _modelHooksUtils.executeHook)(operation, _classPrivateFieldGet(_this, _deleteHook), _classPrivateFieldGet(_this, _unWrap).call(_this, objects), _classPrivateFieldGet(_this, _axios)).then(function (data) {
|
|
462
|
+
_classPrivateFieldGet(_this, _cleanApiError).call(_this, objects);
|
|
463
|
+
|
|
464
|
+
return data;
|
|
465
|
+
}).then(_classPrivateFieldGet(_this, _toArray))["catch"](function (error) {
|
|
466
|
+
return _classPrivateFieldGet(_this, _hanldeApiError).call(_this, error, objects, operation);
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
_classPrivateFieldInitSpec(this, _hanldeApiError, {
|
|
472
|
+
writable: true,
|
|
473
|
+
value: function value(error, objects, operation) {
|
|
474
|
+
var _error$response$data, _error3, _error3$response, _ref, _error$message, _error4, _error5;
|
|
475
|
+
|
|
476
|
+
error = (_error$response$data = (_error3 = error) === null || _error3 === void 0 ? void 0 : (_error3$response = _error3.response) === null || _error3$response === void 0 ? void 0 : _error3$response.data) !== null && _error$response$data !== void 0 ? _error$response$data : error;
|
|
477
|
+
var targets = objects.map(function (object) {
|
|
478
|
+
return object.getId();
|
|
479
|
+
}); // Set errors
|
|
480
|
+
|
|
481
|
+
var strError = (_ref = (_error$message = (_error4 = error) === null || _error4 === void 0 ? void 0 : _error4.message) !== null && _error$message !== void 0 ? _error$message : (_error5 = error) === null || _error5 === void 0 ? void 0 : _error5.error) !== null && _ref !== void 0 ? _ref : error;
|
|
482
|
+
Object.values(objects).map(function (object) {
|
|
483
|
+
return object.setError(strError);
|
|
484
|
+
});
|
|
485
|
+
return Promise.reject(_objectSpread(_objectSpread({}, error), {}, {
|
|
486
|
+
targets: targets,
|
|
487
|
+
operation: operation
|
|
488
|
+
}));
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
|
|
492
|
+
_classPrivateFieldInitSpec(this, _cleanApiError, {
|
|
493
|
+
writable: true,
|
|
494
|
+
value: function value(objects) {
|
|
495
|
+
Object.values(objects).map(function (object) {
|
|
496
|
+
return object.setError(false);
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
|
|
501
|
+
_classPrivateFieldInitSpec(this, _removeFromStoreSilentlyAfterFailure, {
|
|
502
|
+
writable: true,
|
|
503
|
+
value: function value(objects) {
|
|
504
|
+
var _iterator2 = _createForOfIteratorHelper(objects.map(function (object) {
|
|
505
|
+
return object.getId();
|
|
506
|
+
})),
|
|
507
|
+
_step2;
|
|
508
|
+
|
|
509
|
+
try {
|
|
510
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
511
|
+
var target = _step2.value;
|
|
512
|
+
delete _this.getStore().models[_this.getType()].storedObjects[target];
|
|
513
|
+
}
|
|
514
|
+
} catch (err) {
|
|
515
|
+
_iterator2.e(err);
|
|
516
|
+
} finally {
|
|
517
|
+
_iterator2.f();
|
|
518
|
+
}
|
|
412
519
|
}
|
|
413
520
|
});
|
|
414
521
|
|
|
@@ -417,7 +524,8 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
417
524
|
this.options = _objectSpread(_objectSpread({}, options), {}, {
|
|
418
525
|
deep: (_options$deep = options.deep) !== null && _options$deep !== void 0 ? _options$deep : true,
|
|
419
526
|
parseMoment: (_options$parseMoment = options.parseMoment) !== null && _options$parseMoment !== void 0 ? _options$parseMoment : false,
|
|
420
|
-
lazyLoad: options.lazyLoad
|
|
527
|
+
lazyLoad: options.lazyLoad,
|
|
528
|
+
validate: (_options$validate = options.validate) !== null && _options$validate !== void 0 ? _options$validate : {}
|
|
421
529
|
});
|
|
422
530
|
|
|
423
531
|
_classPrivateFieldSet(this, _store, null);
|
|
@@ -438,12 +546,12 @@ var Model = /*#__PURE__*/_createClass(function Model(name) {
|
|
|
438
546
|
throw new Error("The load option must be a function");
|
|
439
547
|
}
|
|
440
548
|
|
|
441
|
-
var
|
|
442
|
-
|
|
443
|
-
retrieveHook =
|
|
444
|
-
insertHook =
|
|
445
|
-
updateHook =
|
|
446
|
-
deleteHook =
|
|
549
|
+
var _ref2 = _typeof(options) === "object" ? (0, _modelHooksUtils.getHooksFromOptions)(options) : (0, _modelHooksUtils.getHooksFromUrl)(options),
|
|
550
|
+
_ref3 = _slicedToArray(_ref2, 4),
|
|
551
|
+
retrieveHook = _ref3[0],
|
|
552
|
+
insertHook = _ref3[1],
|
|
553
|
+
updateHook = _ref3[2],
|
|
554
|
+
deleteHook = _ref3[3];
|
|
447
555
|
|
|
448
556
|
_classPrivateFieldSet(this, _retrieveHook, retrieveHook);
|
|
449
557
|
|
package/dist/ObserverStore.js
CHANGED
|
@@ -55,20 +55,28 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
55
55
|
|
|
56
56
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
57
57
|
|
|
58
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
59
|
+
|
|
58
60
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
59
61
|
|
|
60
62
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
61
63
|
|
|
62
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
63
|
-
|
|
64
64
|
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
|
65
65
|
|
|
66
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
|
67
|
+
|
|
68
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
|
69
|
+
|
|
66
70
|
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
|
67
71
|
|
|
68
72
|
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
|
69
73
|
|
|
70
74
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
|
71
75
|
|
|
76
|
+
var _queryPromises = /*#__PURE__*/new WeakMap();
|
|
77
|
+
|
|
78
|
+
var _unsubPromises = /*#__PURE__*/new WeakMap();
|
|
79
|
+
|
|
72
80
|
var _getUniqueSubs = /*#__PURE__*/new WeakMap();
|
|
73
81
|
|
|
74
82
|
var _propagateChange = /*#__PURE__*/new WeakMap();
|
|
@@ -91,8 +99,19 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
91
99
|
|
|
92
100
|
_classPrivateMethodInitSpec(_assertThisInitialized(_this), _propagateInsertChange);
|
|
93
101
|
|
|
102
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _queryPromises, {
|
|
103
|
+
writable: true,
|
|
104
|
+
value: []
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _unsubPromises, {
|
|
108
|
+
writable: true,
|
|
109
|
+
value: []
|
|
110
|
+
});
|
|
111
|
+
|
|
94
112
|
_defineProperty(_assertThisInitialized(_this), "multipleSubscribe", function (subscriptions, callback) {
|
|
95
113
|
var dataPayload = {};
|
|
114
|
+
var subKey = (0, _uuid.v4)();
|
|
96
115
|
|
|
97
116
|
var areAllDone = function areAllDone() {
|
|
98
117
|
return subscriptions.map(function (_ref) {
|
|
@@ -105,7 +124,7 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
105
124
|
});
|
|
106
125
|
};
|
|
107
126
|
|
|
108
|
-
|
|
127
|
+
Promise.all(subscriptions.map(function (sub) {
|
|
109
128
|
var _sub = _slicedToArray(sub, 2),
|
|
110
129
|
name = _sub[0],
|
|
111
130
|
_sub$ = _sub[1],
|
|
@@ -118,62 +137,67 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
118
137
|
|
|
119
138
|
return _this.subscribe(name, wrappedCallback, filterFunction);
|
|
120
139
|
})).then(function (subKeys) {
|
|
121
|
-
var subKey = (0, _uuid.v4)();
|
|
122
140
|
_this._multipleSubscribed[subKey] = subKeys;
|
|
123
141
|
return subKey;
|
|
124
142
|
});
|
|
143
|
+
return subKey;
|
|
125
144
|
});
|
|
126
145
|
|
|
127
146
|
_defineProperty(_assertThisInitialized(_this), "subscribe", function (type, callback, filterFunction) {
|
|
128
|
-
var
|
|
147
|
+
var _this$_subscribed, _this$_subscribed$typ;
|
|
129
148
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
149
|
+
var subKey = (0, _uuid.v4)();
|
|
150
|
+
(_this$_subscribed$typ = (_this$_subscribed = _this._subscribed)[type]) !== null && _this$_subscribed$typ !== void 0 ? _this$_subscribed$typ : _this$_subscribed[type] = {};
|
|
133
151
|
|
|
134
|
-
_this.find(type, filterFunction).then(function (data) {
|
|
152
|
+
var prom = _this.find(type, filterFunction).then(function (data) {
|
|
135
153
|
_classPrivateFieldGet(_assertThisInitialized(_this), _subscribeToObjects).call(_assertThisInitialized(_this), type, data, {
|
|
136
154
|
callback: callback,
|
|
137
155
|
filterFunction: filterFunction,
|
|
138
156
|
subKey: subKey
|
|
139
157
|
});
|
|
140
158
|
|
|
141
|
-
|
|
159
|
+
callback(data);
|
|
142
160
|
});
|
|
143
161
|
|
|
162
|
+
_classPrivateFieldGet(_assertThisInitialized(_this), _queryPromises).push(prom);
|
|
163
|
+
|
|
144
164
|
return subKey;
|
|
145
165
|
});
|
|
146
166
|
|
|
147
167
|
_defineProperty(_assertThisInitialized(_this), "unsubscribe", function (key) {
|
|
148
|
-
if (_this.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
154
|
-
var sub = _step.value;
|
|
168
|
+
if (_classPrivateFieldGet(_assertThisInitialized(_this), _queryPromises).length) {
|
|
169
|
+
_classPrivateFieldSet(_assertThisInitialized(_this), _unsubPromises, Promise.all(_classPrivateFieldGet(_assertThisInitialized(_this), _queryPromises)).then(function () {
|
|
170
|
+
if (_this._multipleSubscribed[key]) {
|
|
171
|
+
var _iterator = _createForOfIteratorHelper(_this._multipleSubscribed[key]),
|
|
172
|
+
_step;
|
|
155
173
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
_iterator.e(err);
|
|
160
|
-
} finally {
|
|
161
|
-
_iterator.f();
|
|
162
|
-
}
|
|
174
|
+
try {
|
|
175
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
176
|
+
var sub = _step.value;
|
|
163
177
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
178
|
+
_this.unsubscribe(sub);
|
|
179
|
+
}
|
|
180
|
+
} catch (err) {
|
|
181
|
+
_iterator.e(err);
|
|
182
|
+
} finally {
|
|
183
|
+
_iterator.f();
|
|
184
|
+
}
|
|
171
185
|
|
|
172
|
-
|
|
173
|
-
|
|
186
|
+
delete _this._multipleSubscribed[key];
|
|
187
|
+
} else {
|
|
188
|
+
for (var type in _this._subscribed) {
|
|
189
|
+
for (var id in _this._subscribed[type]) {
|
|
190
|
+
_this._subscribed[type][id] = _this._subscribed[type][id].filter(function (i) {
|
|
191
|
+
return i.subKey !== key;
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
if (_this._subscribed[type][id].length === 0) {
|
|
195
|
+
delete _this._subscribed[type][id];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
174
198
|
}
|
|
175
199
|
}
|
|
176
|
-
}
|
|
200
|
+
}));
|
|
177
201
|
}
|
|
178
202
|
});
|
|
179
203
|
|
|
@@ -197,8 +221,10 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
197
221
|
|
|
198
222
|
try {
|
|
199
223
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
224
|
+
var _sub$subKey, _out$_sub$subKey;
|
|
225
|
+
|
|
200
226
|
var sub = _step3.value;
|
|
201
|
-
out[sub.subKey]
|
|
227
|
+
(_out$_sub$subKey = out[_sub$subKey = sub.subKey]) !== null && _out$_sub$subKey !== void 0 ? _out$_sub$subKey : out[_sub$subKey] = sub;
|
|
202
228
|
}
|
|
203
229
|
} catch (err) {
|
|
204
230
|
_iterator3.e(err);
|
|
@@ -220,20 +246,21 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
220
246
|
writable: true,
|
|
221
247
|
value: function value() {
|
|
222
248
|
var objects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
249
|
+
return (_classPrivateFieldGet(_assertThisInitialized(_this), _unsubPromises).length ? Promise.all(_classPrivateFieldGet(_assertThisInitialized(_this), _unsubPromises)) : Promise.resolve()).then(function () {
|
|
250
|
+
if (objects.length) {
|
|
251
|
+
var type = objects[0].getModel().getType();
|
|
223
252
|
|
|
224
|
-
|
|
225
|
-
var type = objects[0].getModel().getType();
|
|
226
|
-
|
|
227
|
-
var uniqueSubs = _classPrivateFieldGet(_assertThisInitialized(_this), _getUniqueSubs).call(_assertThisInitialized(_this), objects, type);
|
|
253
|
+
var uniqueSubs = _classPrivateFieldGet(_assertThisInitialized(_this), _getUniqueSubs).call(_assertThisInitialized(_this), objects, type);
|
|
228
254
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
255
|
+
(0, _batchPromises["default"])(10, uniqueSubs, function (_ref3) {
|
|
256
|
+
var callback = _ref3.callback,
|
|
257
|
+
filterFunction = _ref3.filterFunction;
|
|
258
|
+
return _this.find(type, filterFunction).then(callback);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
235
261
|
|
|
236
|
-
|
|
262
|
+
return objects;
|
|
263
|
+
});
|
|
237
264
|
}
|
|
238
265
|
});
|
|
239
266
|
|
|
@@ -245,12 +272,11 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
245
272
|
|
|
246
273
|
try {
|
|
247
274
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
275
|
+
var _this$_subscribed$typ2, _this$_subscribed$typ3;
|
|
276
|
+
|
|
248
277
|
var object = _step4.value;
|
|
249
278
|
var id = object.getId();
|
|
250
|
-
|
|
251
|
-
if (!_this._subscribed[type][id]) {
|
|
252
|
-
_this._subscribed[type][id] = [];
|
|
253
|
-
}
|
|
279
|
+
(_this$_subscribed$typ3 = (_this$_subscribed$typ2 = _this._subscribed[type])[id]) !== null && _this$_subscribed$typ3 !== void 0 ? _this$_subscribed$typ3 : _this$_subscribed$typ2[id] = [];
|
|
254
280
|
|
|
255
281
|
_this._subscribed[type][id].push(item);
|
|
256
282
|
}
|
|
@@ -285,6 +311,18 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
285
311
|
});
|
|
286
312
|
}
|
|
287
313
|
}, {
|
|
314
|
+
key: "mock",
|
|
315
|
+
value: function mock(type, objects) {
|
|
316
|
+
var _this3 = this;
|
|
317
|
+
|
|
318
|
+
objects = Array.isArray(objects) ? objects : [objects];
|
|
319
|
+
return _get(_getPrototypeOf(ObserverStore.prototype), "mock", this).call(this, type, objects).then(function (objects) {
|
|
320
|
+
_classPrivateMethodGet(_this3, _propagateInsertChange, _propagateInsertChange2).call(_this3, type, objects);
|
|
321
|
+
|
|
322
|
+
return objects;
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}, {
|
|
288
326
|
key: "delete",
|
|
289
327
|
value: function _delete(typeOrObjects, filterFunction) {
|
|
290
328
|
return _get(_getPrototypeOf(ObserverStore.prototype), "delete", this).call(this, typeOrObjects, filterFunction).then(_classPrivateFieldGet(this, _propagateChange));
|
|
@@ -295,73 +333,75 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
295
333
|
}(_PersistentStore2["default"]);
|
|
296
334
|
|
|
297
335
|
function _propagateInsertChange2(type, newObjects) {
|
|
298
|
-
var
|
|
336
|
+
var _this4 = this;
|
|
299
337
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
338
|
+
return (_classPrivateFieldGet(this, _unsubPromises).length ? Promise.all(_classPrivateFieldGet(this, _unsubPromises)) : Promise.resolve()).then(function () {
|
|
339
|
+
if (_this4._subscribed[type]) {
|
|
340
|
+
var uniqueSubs = {};
|
|
341
|
+
var objects = Object.values(_this4._subscribed[type]);
|
|
303
342
|
|
|
304
|
-
|
|
305
|
-
|
|
343
|
+
for (var _i2 = 0, _objects = objects; _i2 < _objects.length; _i2++) {
|
|
344
|
+
var object = _objects[_i2];
|
|
306
345
|
|
|
307
|
-
|
|
308
|
-
|
|
346
|
+
var _iterator5 = _createForOfIteratorHelper(object),
|
|
347
|
+
_step5;
|
|
309
348
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
349
|
+
try {
|
|
350
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
351
|
+
var sub = _step5.value;
|
|
313
352
|
|
|
314
|
-
|
|
315
|
-
|
|
353
|
+
if (!uniqueSubs[sub.subKey]) {
|
|
354
|
+
uniqueSubs[sub.subKey] = sub;
|
|
355
|
+
}
|
|
316
356
|
}
|
|
357
|
+
} catch (err) {
|
|
358
|
+
_iterator5.e(err);
|
|
359
|
+
} finally {
|
|
360
|
+
_iterator5.f();
|
|
317
361
|
}
|
|
318
|
-
} catch (err) {
|
|
319
|
-
_iterator5.e(err);
|
|
320
|
-
} finally {
|
|
321
|
-
_iterator5.f();
|
|
322
362
|
}
|
|
323
|
-
}
|
|
324
363
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
364
|
+
var possibleSubs = Object.values(uniqueSubs);
|
|
365
|
+
(0, _batchPromises["default"])(10, possibleSubs, function (_ref4) {
|
|
366
|
+
var callback = _ref4.callback,
|
|
367
|
+
filterFunction = _ref4.filterFunction;
|
|
368
|
+
var objectsToSubscribe = filterFunction ? newObjects.filter(filterFunction) : newObjects;
|
|
330
369
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
370
|
+
if (objectsToSubscribe.length) {
|
|
371
|
+
// Check if the new objects matter
|
|
372
|
+
return _this4.find(type, filterFunction).then(function (data) {
|
|
373
|
+
var subKey;
|
|
335
374
|
|
|
336
|
-
|
|
337
|
-
|
|
375
|
+
var _iterator6 = _createForOfIteratorHelper(data),
|
|
376
|
+
_step6;
|
|
338
377
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
378
|
+
try {
|
|
379
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
380
|
+
var d = _step6.value;
|
|
342
381
|
|
|
343
|
-
|
|
382
|
+
var item = _this4._subscribed[d.getModel().getType()][d.getId()];
|
|
344
383
|
|
|
345
|
-
|
|
346
|
-
|
|
384
|
+
subKey = item ? item.subKey : null;
|
|
385
|
+
if (subKey) break;
|
|
386
|
+
}
|
|
387
|
+
} catch (err) {
|
|
388
|
+
_iterator6.e(err);
|
|
389
|
+
} finally {
|
|
390
|
+
_iterator6.f();
|
|
347
391
|
}
|
|
348
|
-
} catch (err) {
|
|
349
|
-
_iterator6.e(err);
|
|
350
|
-
} finally {
|
|
351
|
-
_iterator6.f();
|
|
352
|
-
}
|
|
353
392
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
393
|
+
_classPrivateFieldGet(_this4, _subscribeToObjects).call(_this4, type, objectsToSubscribe, {
|
|
394
|
+
callback: callback,
|
|
395
|
+
filterFunction: filterFunction,
|
|
396
|
+
subKey: subKey
|
|
397
|
+
});
|
|
359
398
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
399
|
+
return data;
|
|
400
|
+
}).then(callback);
|
|
401
|
+
}
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
});
|
|
365
405
|
}
|
|
366
406
|
|
|
367
407
|
var _default = ObserverStore;
|