dataflux 1.2.3 → 1.4.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/LICENSE +1 -1
- package/README.md +96 -46
- package/dist/Model.js +101 -35
- package/dist/{StoreObject.js → Obj.js} +39 -12
- package/dist/ObserverStore.js +83 -39
- package/dist/PersistentStore.js +65 -30
- package/dist/Store.js +86 -45
- package/dist/fingerprint.js +13 -1
- package/package.json +7 -3
|
@@ -9,6 +9,8 @@ var _fingerprint = _interopRequireDefault(require("./fingerprint"));
|
|
|
9
9
|
|
|
10
10
|
var _uuid = require("uuid");
|
|
11
11
|
|
|
12
|
+
var _moment = _interopRequireDefault(require("moment/moment"));
|
|
13
|
+
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
15
|
|
|
14
16
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
@@ -33,8 +35,12 @@ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!priva
|
|
|
33
35
|
|
|
34
36
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
|
35
37
|
|
|
38
|
+
var dateRegex = new RegExp("^[0-9][0-9][0-9][0-9]-[0-9].*T[0-9].*Z$");
|
|
39
|
+
|
|
36
40
|
var _loaded = /*#__PURE__*/new WeakMap();
|
|
37
41
|
|
|
42
|
+
var _setHidden = /*#__PURE__*/new WeakMap();
|
|
43
|
+
|
|
38
44
|
var Obj = /*#__PURE__*/_createClass(function Obj(values, _model) {
|
|
39
45
|
var _this = this;
|
|
40
46
|
|
|
@@ -45,6 +51,11 @@ var Obj = /*#__PURE__*/_createClass(function Obj(values, _model) {
|
|
|
45
51
|
value: false
|
|
46
52
|
});
|
|
47
53
|
|
|
54
|
+
_classPrivateFieldInitSpec(this, _setHidden, {
|
|
55
|
+
writable: true,
|
|
56
|
+
value: {}
|
|
57
|
+
});
|
|
58
|
+
|
|
48
59
|
_defineProperty(this, "load", function () {
|
|
49
60
|
if (_classPrivateFieldGet(_this, _loaded)) {
|
|
50
61
|
return Promise.resolve(_this);
|
|
@@ -54,7 +65,7 @@ var Obj = /*#__PURE__*/_createClass(function Obj(values, _model) {
|
|
|
54
65
|
return model.load(_this).then(function () {
|
|
55
66
|
_classPrivateFieldSet(_this, _loaded, true);
|
|
56
67
|
|
|
57
|
-
return model.getStore().update([_this]); // Propagate update
|
|
68
|
+
return model.getStore().update([_this], true); // Propagate update
|
|
58
69
|
}).then(function () {
|
|
59
70
|
return _this;
|
|
60
71
|
}); // return always this
|
|
@@ -66,21 +77,25 @@ var Obj = /*#__PURE__*/_createClass(function Obj(values, _model) {
|
|
|
66
77
|
});
|
|
67
78
|
|
|
68
79
|
_defineProperty(this, "get", function (attribute) {
|
|
69
|
-
return _this[attribute];
|
|
80
|
+
return _classPrivateFieldGet(_this, _setHidden)[attribute] || _this[attribute];
|
|
70
81
|
});
|
|
71
82
|
|
|
72
83
|
_defineProperty(this, "getRelation", function (type, filterFunction) {
|
|
73
84
|
return _this.getModel().getRelation(_this, type, filterFunction);
|
|
74
85
|
});
|
|
75
86
|
|
|
76
|
-
_defineProperty(this, "set", function (attribute, value) {
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
}
|
|
87
|
+
_defineProperty(this, "set", function (attribute, value, hidden) {
|
|
88
|
+
if (hidden) {
|
|
89
|
+
_classPrivateFieldGet(_this, _setHidden)[attribute] = value;
|
|
90
|
+
} else {
|
|
91
|
+
if (attribute === "id") {
|
|
92
|
+
throw new Error("You cannot change the ID");
|
|
93
|
+
}
|
|
80
94
|
|
|
81
|
-
|
|
95
|
+
_this[attribute] = value;
|
|
96
|
+
}
|
|
82
97
|
|
|
83
|
-
_this.getModel().getStore().update([_this]);
|
|
98
|
+
return _this.getModel().getStore().update([_this]);
|
|
84
99
|
});
|
|
85
100
|
|
|
86
101
|
_defineProperty(this, "save", function () {
|
|
@@ -98,7 +113,11 @@ var Obj = /*#__PURE__*/_createClass(function Obj(values, _model) {
|
|
|
98
113
|
for (var _i = 0, _attrs = attrs; _i < _attrs.length; _i++) {
|
|
99
114
|
var a = _attrs[_i];
|
|
100
115
|
|
|
101
|
-
if (
|
|
116
|
+
if (_this[a] instanceof _moment["default"]) {
|
|
117
|
+
out[a] = _this[a].toISOString();
|
|
118
|
+
} else if (_this[a] instanceof Date) {
|
|
119
|
+
out[a] = (0, _moment["default"])(_this[a]).toISOString();
|
|
120
|
+
} else if (typeof _this[a] !== "function") {
|
|
102
121
|
out[a] = _this[a];
|
|
103
122
|
}
|
|
104
123
|
}
|
|
@@ -114,9 +133,17 @@ var Obj = /*#__PURE__*/_createClass(function Obj(values, _model) {
|
|
|
114
133
|
return _model;
|
|
115
134
|
};
|
|
116
135
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
136
|
+
var frEach = _model.options.parseMoment ? function (key) {
|
|
137
|
+
if (dateRegex.test(values[key])) {
|
|
138
|
+
var mmnt = (0, _moment["default"])(values[key]);
|
|
139
|
+
_this[key] = mmnt.isValid() ? mmnt : values[key];
|
|
140
|
+
} else {
|
|
141
|
+
_this[key] = values[key];
|
|
142
|
+
}
|
|
143
|
+
} : function (key) {
|
|
144
|
+
return _this[key] = values[key];
|
|
145
|
+
};
|
|
146
|
+
Object.keys(values).forEach(frEach);
|
|
120
147
|
var id;
|
|
121
148
|
|
|
122
149
|
if (this.id && (typeof this.id === "string" || typeof this.id === "number")) {
|
package/dist/ObserverStore.js
CHANGED
|
@@ -17,8 +17,16 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
17
17
|
|
|
18
18
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
19
19
|
|
|
20
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
21
|
+
|
|
22
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
|
|
20
24
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
25
|
|
|
26
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
27
|
+
|
|
28
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
29
|
+
|
|
22
30
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
23
31
|
|
|
24
32
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -83,6 +91,22 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
83
91
|
|
|
84
92
|
_classPrivateMethodInitSpec(_assertThisInitialized(_this), _propagateInsertChange);
|
|
85
93
|
|
|
94
|
+
_defineProperty(_assertThisInitialized(_this), "multipleSubscribe", function (subscriptions, callback) {
|
|
95
|
+
return Promise.all(subscriptions.map(function (sub, index) {
|
|
96
|
+
var attrs = Array.from(Array(index + 1)).map(function () {
|
|
97
|
+
return null;
|
|
98
|
+
});
|
|
99
|
+
return _this.subscribe(sub[0], sub[1], function (data) {
|
|
100
|
+
attrs[index] = data;
|
|
101
|
+
return callback.apply(void 0, _toConsumableArray(attrs));
|
|
102
|
+
});
|
|
103
|
+
})).then(function (subKeys) {
|
|
104
|
+
var subKey = (0, _uuid.v4)();
|
|
105
|
+
_this._multipleSubscribed[subKey] = subKeys;
|
|
106
|
+
return subKey;
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
|
|
86
110
|
_defineProperty(_assertThisInitialized(_this), "subscribe", function (type, callback, filterFunction) {
|
|
87
111
|
var subKey = (0, _uuid.v4)();
|
|
88
112
|
|
|
@@ -104,14 +128,33 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
104
128
|
});
|
|
105
129
|
|
|
106
130
|
_defineProperty(_assertThisInitialized(_this), "unsubscribe", function (key) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
if (_this._multipleSubscribed[key]) {
|
|
132
|
+
var _iterator = _createForOfIteratorHelper(_this._multipleSubscribed[key]),
|
|
133
|
+
_step;
|
|
134
|
+
|
|
135
|
+
try {
|
|
136
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
137
|
+
var sub = _step.value;
|
|
112
138
|
|
|
113
|
-
|
|
114
|
-
|
|
139
|
+
_this.unsubscribe(sub);
|
|
140
|
+
}
|
|
141
|
+
} catch (err) {
|
|
142
|
+
_iterator.e(err);
|
|
143
|
+
} finally {
|
|
144
|
+
_iterator.f();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
delete _this._multipleSubscribed[key];
|
|
148
|
+
} else {
|
|
149
|
+
for (var type in _this._subscribed) {
|
|
150
|
+
for (var id in _this._subscribed[type]) {
|
|
151
|
+
_this._subscribed[type][id] = _this._subscribed[type][id].filter(function (i) {
|
|
152
|
+
return i.subKey !== key;
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
if (_this._subscribed[type][id].length === 0) {
|
|
156
|
+
delete _this._subscribed[type][id];
|
|
157
|
+
}
|
|
115
158
|
}
|
|
116
159
|
}
|
|
117
160
|
}
|
|
@@ -122,34 +165,34 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
122
165
|
value: function value(objects, type) {
|
|
123
166
|
var out = {};
|
|
124
167
|
|
|
125
|
-
var
|
|
126
|
-
|
|
168
|
+
var _iterator2 = _createForOfIteratorHelper(objects),
|
|
169
|
+
_step2;
|
|
127
170
|
|
|
128
171
|
try {
|
|
129
|
-
for (
|
|
130
|
-
var object =
|
|
172
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
173
|
+
var object = _step2.value;
|
|
131
174
|
var objectId = object.getId();
|
|
132
175
|
var typeChannel = _this._subscribed[type] || {};
|
|
133
176
|
var subscribedToObject = typeChannel[objectId] || [];
|
|
134
177
|
|
|
135
|
-
var
|
|
136
|
-
|
|
178
|
+
var _iterator3 = _createForOfIteratorHelper(subscribedToObject),
|
|
179
|
+
_step3;
|
|
137
180
|
|
|
138
181
|
try {
|
|
139
|
-
for (
|
|
140
|
-
var sub =
|
|
182
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
183
|
+
var sub = _step3.value;
|
|
141
184
|
out[sub.subKey] = out[sub.subKey] || sub;
|
|
142
185
|
}
|
|
143
186
|
} catch (err) {
|
|
144
|
-
|
|
187
|
+
_iterator3.e(err);
|
|
145
188
|
} finally {
|
|
146
|
-
|
|
189
|
+
_iterator3.f();
|
|
147
190
|
}
|
|
148
191
|
}
|
|
149
192
|
} catch (err) {
|
|
150
|
-
|
|
193
|
+
_iterator2.e(err);
|
|
151
194
|
} finally {
|
|
152
|
-
|
|
195
|
+
_iterator2.f();
|
|
153
196
|
}
|
|
154
197
|
|
|
155
198
|
return Object.values(out);
|
|
@@ -180,12 +223,12 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
180
223
|
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _subscribeToObjects, {
|
|
181
224
|
writable: true,
|
|
182
225
|
value: function value(type, objectsToSubscribe, item) {
|
|
183
|
-
var
|
|
184
|
-
|
|
226
|
+
var _iterator4 = _createForOfIteratorHelper(objectsToSubscribe),
|
|
227
|
+
_step4;
|
|
185
228
|
|
|
186
229
|
try {
|
|
187
|
-
for (
|
|
188
|
-
var object =
|
|
230
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
231
|
+
var object = _step4.value;
|
|
189
232
|
var id = object.getId();
|
|
190
233
|
|
|
191
234
|
if (!_this._subscribed[type][id]) {
|
|
@@ -195,21 +238,22 @@ var ObserverStore = /*#__PURE__*/function (_PersistentStore) {
|
|
|
195
238
|
_this._subscribed[type][id].push(item);
|
|
196
239
|
}
|
|
197
240
|
} catch (err) {
|
|
198
|
-
|
|
241
|
+
_iterator4.e(err);
|
|
199
242
|
} finally {
|
|
200
|
-
|
|
243
|
+
_iterator4.f();
|
|
201
244
|
}
|
|
202
245
|
}
|
|
203
246
|
});
|
|
204
247
|
|
|
205
248
|
_this._subscribed = {};
|
|
249
|
+
_this._multipleSubscribed = {};
|
|
206
250
|
return _this;
|
|
207
251
|
}
|
|
208
252
|
|
|
209
253
|
_createClass(ObserverStore, [{
|
|
210
254
|
key: "update",
|
|
211
|
-
value: function update(objects) {
|
|
212
|
-
return _get(_getPrototypeOf(ObserverStore.prototype), "update", this).call(this, objects).then(_classPrivateFieldGet(this, _propagateChange));
|
|
255
|
+
value: function update(objects, skipSave) {
|
|
256
|
+
return _get(_getPrototypeOf(ObserverStore.prototype), "update", this).call(this, objects, skipSave).then(_classPrivateFieldGet(this, _propagateChange));
|
|
213
257
|
}
|
|
214
258
|
}, {
|
|
215
259
|
key: "insert",
|
|
@@ -243,21 +287,21 @@ function _propagateInsertChange2(type, newObjects) {
|
|
|
243
287
|
for (var _i = 0, _objects = objects; _i < _objects.length; _i++) {
|
|
244
288
|
var object = _objects[_i];
|
|
245
289
|
|
|
246
|
-
var
|
|
247
|
-
|
|
290
|
+
var _iterator5 = _createForOfIteratorHelper(object),
|
|
291
|
+
_step5;
|
|
248
292
|
|
|
249
293
|
try {
|
|
250
|
-
for (
|
|
251
|
-
var sub =
|
|
294
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
295
|
+
var sub = _step5.value;
|
|
252
296
|
|
|
253
297
|
if (!uniqueSubs[sub.subKey]) {
|
|
254
298
|
uniqueSubs[sub.subKey] = sub;
|
|
255
299
|
}
|
|
256
300
|
}
|
|
257
301
|
} catch (err) {
|
|
258
|
-
|
|
302
|
+
_iterator5.e(err);
|
|
259
303
|
} finally {
|
|
260
|
-
|
|
304
|
+
_iterator5.f();
|
|
261
305
|
}
|
|
262
306
|
}
|
|
263
307
|
|
|
@@ -272,12 +316,12 @@ function _propagateInsertChange2(type, newObjects) {
|
|
|
272
316
|
return _this3.find(type, filterFunction).then(function (data) {
|
|
273
317
|
var subKey;
|
|
274
318
|
|
|
275
|
-
var
|
|
276
|
-
|
|
319
|
+
var _iterator6 = _createForOfIteratorHelper(data),
|
|
320
|
+
_step6;
|
|
277
321
|
|
|
278
322
|
try {
|
|
279
|
-
for (
|
|
280
|
-
var d =
|
|
323
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
324
|
+
var d = _step6.value;
|
|
281
325
|
|
|
282
326
|
var item = _this3._subscribed[d.getModel().getType()][d.getId()];
|
|
283
327
|
|
|
@@ -285,9 +329,9 @@ function _propagateInsertChange2(type, newObjects) {
|
|
|
285
329
|
if (subKey) break;
|
|
286
330
|
}
|
|
287
331
|
} catch (err) {
|
|
288
|
-
|
|
332
|
+
_iterator6.e(err);
|
|
289
333
|
} finally {
|
|
290
|
-
|
|
334
|
+
_iterator6.f();
|
|
291
335
|
}
|
|
292
336
|
|
|
293
337
|
_classPrivateFieldGet(_this3, _subscribeToObjects).call(_this3, type, objectsToSubscribe, {
|
package/dist/PersistentStore.js
CHANGED
|
@@ -49,11 +49,35 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
49
49
|
|
|
50
50
|
_this = _super.call(this, options);
|
|
51
51
|
|
|
52
|
+
_defineProperty(_assertThisInitialized(_this), "whenSaved", function (type) {
|
|
53
|
+
return _this.getDiff(type).then(function (_ref) {
|
|
54
|
+
var inserted = _ref.inserted,
|
|
55
|
+
updated = _ref.updated,
|
|
56
|
+
deleted = _ref.deleted;
|
|
57
|
+
|
|
58
|
+
if (inserted.length === 0 && updated.length === 0 && deleted.length === 0) {
|
|
59
|
+
return true;
|
|
60
|
+
} else if (_this.options.autoSave) {
|
|
61
|
+
return _this._saveDiff(type, {
|
|
62
|
+
inserted: inserted,
|
|
63
|
+
updated: updated,
|
|
64
|
+
deleted: deleted
|
|
65
|
+
});
|
|
66
|
+
} else {
|
|
67
|
+
return Promise.reject("Save must be invoked manually");
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
52
72
|
_defineProperty(_assertThisInitialized(_this), "save", function () {
|
|
53
73
|
_this._busy = true;
|
|
54
74
|
|
|
55
75
|
_this.pubSub.publish("save", "start");
|
|
56
76
|
|
|
77
|
+
if (_this._delayedSaveTimer) {
|
|
78
|
+
clearTimeout(_this._delayedSaveTimer);
|
|
79
|
+
}
|
|
80
|
+
|
|
57
81
|
return Promise.all(Object.keys(_this.models).map(_this._saveByType)).then(function (data) {
|
|
58
82
|
_this._busy = false;
|
|
59
83
|
|
|
@@ -71,33 +95,43 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
71
95
|
});
|
|
72
96
|
});
|
|
73
97
|
|
|
98
|
+
_defineProperty(_assertThisInitialized(_this), "_saveDiff", function (type, _ref2) {
|
|
99
|
+
var inserted = _ref2.inserted,
|
|
100
|
+
updated = _ref2.updated,
|
|
101
|
+
deleted = _ref2.deleted;
|
|
102
|
+
var model = _this.models[type].model; // Operations order:
|
|
103
|
+
// 1) insert
|
|
104
|
+
// 2) update
|
|
105
|
+
// 3) delete
|
|
106
|
+
|
|
107
|
+
return model.insertObjects(inserted.map(function (i) {
|
|
108
|
+
return i.object;
|
|
109
|
+
})).then(function () {
|
|
110
|
+
return _this.applyDiff({
|
|
111
|
+
inserted: inserted
|
|
112
|
+
}, type);
|
|
113
|
+
}).then(function () {
|
|
114
|
+
return model.updateObjects(updated.map(function (i) {
|
|
115
|
+
return i.object;
|
|
116
|
+
}));
|
|
117
|
+
}).then(function () {
|
|
118
|
+
return _this.applyDiff({
|
|
119
|
+
updated: updated
|
|
120
|
+
}, type);
|
|
121
|
+
}).then(function () {
|
|
122
|
+
return model.deleteObjects(deleted.map(function (i) {
|
|
123
|
+
return i.object;
|
|
124
|
+
}));
|
|
125
|
+
}).then(function () {
|
|
126
|
+
return _this.applyDiff({
|
|
127
|
+
deleted: deleted
|
|
128
|
+
}, type);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
|
|
74
132
|
_defineProperty(_assertThisInitialized(_this), "_saveByType", function (type) {
|
|
75
|
-
return _this.getDiff(type).then(function (
|
|
76
|
-
|
|
77
|
-
updated = _ref.updated,
|
|
78
|
-
deleted = _ref.deleted;
|
|
79
|
-
var model = _this.models[type].model; // Operations order:
|
|
80
|
-
// 1) insert
|
|
81
|
-
// 2) update
|
|
82
|
-
// 3) delete
|
|
83
|
-
|
|
84
|
-
return model.insertObjects(inserted).then(function () {
|
|
85
|
-
return _this.applyDiff({
|
|
86
|
-
inserted: inserted
|
|
87
|
-
}, type);
|
|
88
|
-
}).then(function () {
|
|
89
|
-
return model.updateObjects(updated);
|
|
90
|
-
}).then(function () {
|
|
91
|
-
return _this.applyDiff({
|
|
92
|
-
updated: updated
|
|
93
|
-
}, type);
|
|
94
|
-
}).then(function () {
|
|
95
|
-
return model.deleteObjects(deleted);
|
|
96
|
-
}).then(function () {
|
|
97
|
-
return _this.applyDiff({
|
|
98
|
-
deleted: deleted
|
|
99
|
-
}, type);
|
|
100
|
-
});
|
|
133
|
+
return _this.getDiff(type).then(function (diff) {
|
|
134
|
+
return _this._saveDiff(type, diff);
|
|
101
135
|
});
|
|
102
136
|
});
|
|
103
137
|
|
|
@@ -131,8 +165,7 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
131
165
|
var _this2 = this;
|
|
132
166
|
|
|
133
167
|
this._busy = true;
|
|
134
|
-
|
|
135
|
-
_get(_getPrototypeOf(PersistentStore.prototype), "addModel", this).call(this, model).then(function () {
|
|
168
|
+
return _get(_getPrototypeOf(PersistentStore.prototype), "addModel", this).call(this, model).then(function () {
|
|
136
169
|
_this2._busy = false;
|
|
137
170
|
});
|
|
138
171
|
}
|
|
@@ -160,11 +193,13 @@ var PersistentStore = /*#__PURE__*/function (_Store) {
|
|
|
160
193
|
}
|
|
161
194
|
}, {
|
|
162
195
|
key: "update",
|
|
163
|
-
value: function update(objects) {
|
|
196
|
+
value: function update(objects, skipSave) {
|
|
164
197
|
var _this5 = this;
|
|
165
198
|
|
|
166
199
|
return _get(_getPrototypeOf(PersistentStore.prototype), "update", this).call(this, objects).then(function (data) {
|
|
167
|
-
|
|
200
|
+
if (!skipSave) {
|
|
201
|
+
_this5.delayedSave();
|
|
202
|
+
}
|
|
168
203
|
|
|
169
204
|
return data;
|
|
170
205
|
});
|