dataflux 1.7.5 → 1.9.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/README.md +139 -25
- package/dist/BasicObj.js +53 -6
- package/dist/Model.js +145 -38
- package/dist/ObserverStore.js +21 -8
- package/dist/PersistentStore.js +51 -22
- package/dist/Store.js +202 -64
- package/dist/dataflux.min.js +1 -1
- package/dist/dataflux.min.js.map +1 -1
- package/dist/modelHooksUtils.js +50 -19
- package/package.json +8 -8
package/dist/ObserverStore.js
CHANGED
|
@@ -111,6 +111,7 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
111
111
|
|
|
112
112
|
_defineProperty(_assertThisInitialized(_this), "multipleSubscribe", function (subscriptions, callback) {
|
|
113
113
|
var dataPayload = {};
|
|
114
|
+
var subKey = (0, _uuid.v4)();
|
|
114
115
|
|
|
115
116
|
var areAllDone = function areAllDone() {
|
|
116
117
|
return subscriptions.map(function (_ref) {
|
|
@@ -123,7 +124,7 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
123
124
|
});
|
|
124
125
|
};
|
|
125
126
|
|
|
126
|
-
|
|
127
|
+
Promise.all(subscriptions.map(function (sub) {
|
|
127
128
|
var _sub = _slicedToArray(sub, 2),
|
|
128
129
|
name = _sub[0],
|
|
129
130
|
_sub$ = _sub[1],
|
|
@@ -136,10 +137,10 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
136
137
|
|
|
137
138
|
return _this.subscribe(name, wrappedCallback, filterFunction);
|
|
138
139
|
})).then(function (subKeys) {
|
|
139
|
-
var subKey = (0, _uuid.v4)();
|
|
140
140
|
_this._multipleSubscribed[subKey] = subKeys;
|
|
141
141
|
return subKey;
|
|
142
142
|
});
|
|
143
|
+
return subKey;
|
|
143
144
|
});
|
|
144
145
|
|
|
145
146
|
_defineProperty(_assertThisInitialized(_this), "subscribe", function (type, callback, filterFunction) {
|
|
@@ -310,6 +311,18 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
310
311
|
});
|
|
311
312
|
}
|
|
312
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
|
+
}, {
|
|
313
326
|
key: "delete",
|
|
314
327
|
value: function _delete(typeOrObjects, filterFunction) {
|
|
315
328
|
return _get(_getPrototypeOf(ObserverStore.prototype), "delete", this).call(this, typeOrObjects, filterFunction).then(_classPrivateFieldGet(this, _propagateChange));
|
|
@@ -320,12 +333,12 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
320
333
|
}(_PersistentStore2["default"]);
|
|
321
334
|
|
|
322
335
|
function _propagateInsertChange2(type, newObjects) {
|
|
323
|
-
var
|
|
336
|
+
var _this4 = this;
|
|
324
337
|
|
|
325
338
|
return (_classPrivateFieldGet(this, _unsubPromises).length ? Promise.all(_classPrivateFieldGet(this, _unsubPromises)) : Promise.resolve()).then(function () {
|
|
326
|
-
if (
|
|
339
|
+
if (_this4._subscribed[type]) {
|
|
327
340
|
var uniqueSubs = {};
|
|
328
|
-
var objects = Object.values(
|
|
341
|
+
var objects = Object.values(_this4._subscribed[type]);
|
|
329
342
|
|
|
330
343
|
for (var _i2 = 0, _objects = objects; _i2 < _objects.length; _i2++) {
|
|
331
344
|
var object = _objects[_i2];
|
|
@@ -356,7 +369,7 @@ function _propagateInsertChange2(type, newObjects) {
|
|
|
356
369
|
|
|
357
370
|
if (objectsToSubscribe.length) {
|
|
358
371
|
// Check if the new objects matter
|
|
359
|
-
return
|
|
372
|
+
return _this4.find(type, filterFunction).then(function (data) {
|
|
360
373
|
var subKey;
|
|
361
374
|
|
|
362
375
|
var _iterator6 = _createForOfIteratorHelper(data),
|
|
@@ -366,7 +379,7 @@ function _propagateInsertChange2(type, newObjects) {
|
|
|
366
379
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
367
380
|
var d = _step6.value;
|
|
368
381
|
|
|
369
|
-
var item =
|
|
382
|
+
var item = _this4._subscribed[d.getModel().getType()][d.getId()];
|
|
370
383
|
|
|
371
384
|
subKey = item ? item.subKey : null;
|
|
372
385
|
if (subKey) break;
|
|
@@ -377,7 +390,7 @@ function _propagateInsertChange2(type, newObjects) {
|
|
|
377
390
|
_iterator6.f();
|
|
378
391
|
}
|
|
379
392
|
|
|
380
|
-
_classPrivateFieldGet(
|
|
393
|
+
_classPrivateFieldGet(_this4, _subscribeToObjects).call(_this4, type, objectsToSubscribe, {
|
|
381
394
|
callback: callback,
|
|
382
395
|
filterFunction: filterFunction,
|
|
383
396
|
subKey: subKey
|
package/dist/PersistentStore.js
CHANGED
|
@@ -105,32 +105,42 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
105
105
|
var inserted = _ref2.inserted,
|
|
106
106
|
updated = _ref2.updated,
|
|
107
107
|
deleted = _ref2.deleted;
|
|
108
|
-
var model = _this.models[type].model; //
|
|
108
|
+
var model = _this.models[type].model; // Validate objects
|
|
109
|
+
|
|
110
|
+
var correctInserted = inserted.filter(function (object) {
|
|
111
|
+
return model.isObjectValid(object.object);
|
|
112
|
+
});
|
|
113
|
+
var correctUpdated = updated.filter(function (object) {
|
|
114
|
+
return model.isObjectValid(object.object);
|
|
115
|
+
});
|
|
116
|
+
var correctDeleted = deleted.filter(function (object) {
|
|
117
|
+
return model.isObjectValid(object.object);
|
|
118
|
+
}); // Operations order:
|
|
109
119
|
// 1) insert
|
|
110
120
|
// 2) update
|
|
111
121
|
// 3) delete
|
|
112
122
|
|
|
113
|
-
return model.insertObjects(
|
|
123
|
+
return model.insertObjects(correctInserted.map(function (i) {
|
|
114
124
|
return i.object;
|
|
115
125
|
})).then(function () {
|
|
116
126
|
return _this.applyDiff({
|
|
117
|
-
inserted:
|
|
127
|
+
inserted: correctInserted
|
|
118
128
|
}, type);
|
|
119
129
|
}).then(function () {
|
|
120
|
-
return model.updateObjects(
|
|
130
|
+
return model.updateObjects(correctUpdated.map(function (i) {
|
|
121
131
|
return i.object;
|
|
122
132
|
}));
|
|
123
133
|
}).then(function () {
|
|
124
134
|
return _this.applyDiff({
|
|
125
|
-
updated:
|
|
135
|
+
updated: correctUpdated
|
|
126
136
|
}, type);
|
|
127
137
|
}).then(function () {
|
|
128
|
-
return model.deleteObjects(
|
|
138
|
+
return model.deleteObjects(correctDeleted.map(function (i) {
|
|
129
139
|
return i.object;
|
|
130
140
|
}));
|
|
131
141
|
}).then(function () {
|
|
132
142
|
return _this.applyDiff({
|
|
133
|
-
deleted:
|
|
143
|
+
deleted: correctDeleted
|
|
134
144
|
}, type);
|
|
135
145
|
});
|
|
136
146
|
});
|
|
@@ -142,17 +152,29 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
142
152
|
});
|
|
143
153
|
|
|
144
154
|
_defineProperty(_assertThisInitialized(_this), "delayedSave", function () {
|
|
145
|
-
|
|
146
|
-
if (_this.
|
|
147
|
-
|
|
148
|
-
|
|
155
|
+
return new Promise(function (resolve, reject) {
|
|
156
|
+
if (_this.options.autoSave) {
|
|
157
|
+
if (_this._delayedSaveTimer) {
|
|
158
|
+
_this._delayedSavePromise();
|
|
149
159
|
|
|
150
|
-
|
|
151
|
-
|
|
160
|
+
_this._delayedSavePromise = null;
|
|
161
|
+
clearTimeout(_this._delayedSaveTimer);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
_this._delayedSavePromise = resolve;
|
|
165
|
+
_this._delayedSaveTimer = setTimeout(function () {
|
|
166
|
+
resolve(_this.save());
|
|
167
|
+
_this._delayedSavePromise = null;
|
|
168
|
+
}, _this.options.saveDelay);
|
|
169
|
+
} else {
|
|
170
|
+
resolve();
|
|
171
|
+
}
|
|
172
|
+
});
|
|
152
173
|
});
|
|
153
174
|
|
|
154
175
|
_this._busy = false;
|
|
155
176
|
_this._delayedSaveTimer = null;
|
|
177
|
+
_this._delayedSavePromise = null;
|
|
156
178
|
|
|
157
179
|
if (typeof _this.options.autoSave === "number") {
|
|
158
180
|
setInterval(function () {
|
|
@@ -181,20 +203,25 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
181
203
|
var _this3 = this;
|
|
182
204
|
|
|
183
205
|
return _get(_getPrototypeOf(PersistentStore.prototype), "insert", this).call(this, type, objects).then(function (data) {
|
|
184
|
-
_this3.delayedSave()
|
|
185
|
-
|
|
186
|
-
|
|
206
|
+
return _this3.delayedSave().then(function () {
|
|
207
|
+
return data;
|
|
208
|
+
});
|
|
187
209
|
});
|
|
188
210
|
}
|
|
211
|
+
}, {
|
|
212
|
+
key: "mock",
|
|
213
|
+
value: function mock(type, objects) {
|
|
214
|
+
return _get(_getPrototypeOf(PersistentStore.prototype), "mock", this).call(this, type, objects);
|
|
215
|
+
}
|
|
189
216
|
}, {
|
|
190
217
|
key: "delete",
|
|
191
218
|
value: function _delete(typeOrObjects, filterFunction) {
|
|
192
219
|
var _this4 = this;
|
|
193
220
|
|
|
194
221
|
return _get(_getPrototypeOf(PersistentStore.prototype), "delete", this).call(this, typeOrObjects, filterFunction).then(function (data) {
|
|
195
|
-
_this4.delayedSave()
|
|
196
|
-
|
|
197
|
-
|
|
222
|
+
return _this4.delayedSave().then(function () {
|
|
223
|
+
return data;
|
|
224
|
+
});
|
|
198
225
|
});
|
|
199
226
|
}
|
|
200
227
|
}, {
|
|
@@ -218,11 +245,13 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
218
245
|
} finally {
|
|
219
246
|
_iterator.f();
|
|
220
247
|
}
|
|
248
|
+
|
|
249
|
+
return objects;
|
|
221
250
|
} else {
|
|
222
|
-
_this5.delayedSave()
|
|
251
|
+
return _this5.delayedSave().then(function () {
|
|
252
|
+
return objects;
|
|
253
|
+
});
|
|
223
254
|
}
|
|
224
|
-
|
|
225
|
-
return objects;
|
|
226
255
|
});
|
|
227
256
|
}
|
|
228
257
|
}]);
|