@ember-data/store 4.4.0-alpha.8 → 4.4.0-alpha.9
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.
|
@@ -174,6 +174,12 @@ export interface CreateRecordProperties {
|
|
|
174
174
|
|
|
175
175
|
abstract class CoreStore extends Service {
|
|
176
176
|
/**
|
|
177
|
+
* Ember Data uses several specialized micro-queues for organizing
|
|
178
|
+
and coalescing similar async work.
|
|
179
|
+
|
|
180
|
+
These queues are currently controlled by a flush scheduled into
|
|
181
|
+
ember-data's custom backburner instance.
|
|
182
|
+
*
|
|
177
183
|
* EmberData specific backburner instance
|
|
178
184
|
* @property _backburner
|
|
179
185
|
* @private
|
|
@@ -186,17 +192,6 @@ abstract class CoreStore extends Service {
|
|
|
186
192
|
declare _adapterCache: Dict<MinimumAdapterInterface & { store: CoreStore }>;
|
|
187
193
|
declare _serializerCache: Dict<MinimumSerializerInterface & { store: CoreStore }>;
|
|
188
194
|
declare _storeWrapper: RecordDataStoreWrapper;
|
|
189
|
-
|
|
190
|
-
/*
|
|
191
|
-
Ember Data uses several specialized micro-queues for organizing
|
|
192
|
-
and coalescing similar async work.
|
|
193
|
-
|
|
194
|
-
These queues are currently controlled by a flush scheduled into
|
|
195
|
-
ember-data's custom backburner instance.
|
|
196
|
-
*/
|
|
197
|
-
// used for coalescing internal model updates
|
|
198
|
-
declare _updatedInternalModels: InternalModel[];
|
|
199
|
-
|
|
200
195
|
declare _fetchManager: FetchManager;
|
|
201
196
|
declare _schemaDefinitionService: SchemaDefinitionService;
|
|
202
197
|
|
|
@@ -259,7 +254,6 @@ abstract class CoreStore extends Service {
|
|
|
259
254
|
this._storeWrapper = new RecordDataStoreWrapper(this);
|
|
260
255
|
this._backburner = edBackburner;
|
|
261
256
|
this.recordArrayManager = new RecordArrayManager({ store: this });
|
|
262
|
-
this._updatedInternalModels = [];
|
|
263
257
|
|
|
264
258
|
RECORD_REFERENCES._generator = (identifier) => {
|
|
265
259
|
return new RecordReference(this, identifier);
|
|
@@ -3220,24 +3214,6 @@ abstract class CoreStore extends Service {
|
|
|
3220
3214
|
}
|
|
3221
3215
|
}
|
|
3222
3216
|
}
|
|
3223
|
-
|
|
3224
|
-
_updateInternalModel(internalModel: InternalModel) {
|
|
3225
|
-
if (this._updatedInternalModels.push(internalModel) !== 1) {
|
|
3226
|
-
return;
|
|
3227
|
-
}
|
|
3228
|
-
|
|
3229
|
-
emberBackburner.schedule('actions', this, this._flushUpdatedInternalModels);
|
|
3230
|
-
}
|
|
3231
|
-
|
|
3232
|
-
_flushUpdatedInternalModels() {
|
|
3233
|
-
let updated = this._updatedInternalModels;
|
|
3234
|
-
|
|
3235
|
-
for (let i = 0, l = updated.length; i < l; i++) {
|
|
3236
|
-
updated[i]._triggerDeferredTriggers();
|
|
3237
|
-
}
|
|
3238
|
-
|
|
3239
|
-
updated.length = 0;
|
|
3240
|
-
}
|
|
3241
3217
|
}
|
|
3242
3218
|
|
|
3243
3219
|
export default CoreStore;
|
|
@@ -137,7 +137,6 @@ export default class InternalModel {
|
|
|
137
137
|
declare _record: RecordInstance | null;
|
|
138
138
|
declare _scheduledDestroy: any;
|
|
139
139
|
declare _modelClass: any;
|
|
140
|
-
declare _deferredTriggers: any;
|
|
141
140
|
declare __recordArrays: any;
|
|
142
141
|
declare references: any;
|
|
143
142
|
declare _recordReference: RecordReference;
|
|
@@ -195,7 +194,6 @@ export default class InternalModel {
|
|
|
195
194
|
this._relationshipPromisesCache = Object.create(null);
|
|
196
195
|
this._relationshipProxyCache = Object.create(null);
|
|
197
196
|
this.references = Object.create(null);
|
|
198
|
-
this._deferredTriggers = [];
|
|
199
197
|
this.currentState = RootState.empty;
|
|
200
198
|
}
|
|
201
199
|
|
|
@@ -306,7 +304,6 @@ export default class InternalModel {
|
|
|
306
304
|
this.identifier,
|
|
307
305
|
properties
|
|
308
306
|
);
|
|
309
|
-
this._triggerDeferredTriggers();
|
|
310
307
|
}
|
|
311
308
|
|
|
312
309
|
return record;
|
|
@@ -362,7 +359,6 @@ export default class InternalModel {
|
|
|
362
359
|
// destroyRecord follows up deleteRecord with save(). This prevents an unecessary save for a new record
|
|
363
360
|
this._deletedRecordWasNew = true;
|
|
364
361
|
this.send('deleteRecord');
|
|
365
|
-
this._triggerDeferredTriggers();
|
|
366
362
|
this.unloadRecord();
|
|
367
363
|
} else {
|
|
368
364
|
this.send('deleteRecord');
|
|
@@ -959,35 +955,6 @@ export default class InternalModel {
|
|
|
959
955
|
throw new EmberError(errorMessage);
|
|
960
956
|
}
|
|
961
957
|
|
|
962
|
-
triggerLater(...args) {
|
|
963
|
-
if (this._deferredTriggers.push(args) !== 1) {
|
|
964
|
-
return;
|
|
965
|
-
}
|
|
966
|
-
|
|
967
|
-
this.store._updateInternalModel(this);
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
_triggerDeferredTriggers() {
|
|
971
|
-
//TODO: Before 1.0 we want to remove all the events that happen on the pre materialized record,
|
|
972
|
-
//but for now, we queue up all the events triggered before the record was materialized, and flush
|
|
973
|
-
//them once we have the record
|
|
974
|
-
if (!this.hasRecord) {
|
|
975
|
-
return;
|
|
976
|
-
}
|
|
977
|
-
let triggers = this._deferredTriggers;
|
|
978
|
-
let record = this._record as DSModel;
|
|
979
|
-
let trigger = record.trigger;
|
|
980
|
-
// TODO Igor make nicer check
|
|
981
|
-
if (trigger && typeof trigger === 'function') {
|
|
982
|
-
for (let i = 0, l = triggers.length; i < l; i++) {
|
|
983
|
-
let eventName = triggers[i];
|
|
984
|
-
trigger.apply(record, eventName);
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
triggers.length = 0;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
958
|
removeFromInverseRelationships() {
|
|
992
959
|
if (this.__recordData) {
|
|
993
960
|
this.store._backburner.join(() => {
|
|
@@ -262,7 +262,6 @@ const DirtyState = {
|
|
|
262
262
|
|
|
263
263
|
rolledBack(internalModel) {
|
|
264
264
|
internalModel.transitionTo('loaded.saved');
|
|
265
|
-
internalModel.triggerLater('rolledBack');
|
|
266
265
|
},
|
|
267
266
|
|
|
268
267
|
becameInvalid(internalModel) {
|
|
@@ -271,7 +270,6 @@ const DirtyState = {
|
|
|
271
270
|
|
|
272
271
|
rollback(internalModel) {
|
|
273
272
|
internalModel.rollbackAttributes();
|
|
274
|
-
internalModel.triggerLater('ready');
|
|
275
273
|
},
|
|
276
274
|
},
|
|
277
275
|
|
|
@@ -297,9 +295,7 @@ const DirtyState = {
|
|
|
297
295
|
internalModel.send('invokeLifecycleCallbacks', this.dirtyType);
|
|
298
296
|
},
|
|
299
297
|
|
|
300
|
-
rolledBack(
|
|
301
|
-
internalModel.triggerLater('rolledBack');
|
|
302
|
-
},
|
|
298
|
+
rolledBack() {},
|
|
303
299
|
|
|
304
300
|
becameInvalid(internalModel) {
|
|
305
301
|
internalModel.transitionTo('invalid');
|
|
@@ -308,7 +304,6 @@ const DirtyState = {
|
|
|
308
304
|
|
|
309
305
|
becameError(internalModel) {
|
|
310
306
|
internalModel.transitionTo('uncommitted');
|
|
311
|
-
internalModel.triggerLater('becameError', internalModel);
|
|
312
307
|
},
|
|
313
308
|
},
|
|
314
309
|
|
|
@@ -345,16 +340,13 @@ const DirtyState = {
|
|
|
345
340
|
rolledBack(internalModel) {
|
|
346
341
|
clearErrorMessages(internalModel);
|
|
347
342
|
internalModel.transitionTo('loaded.saved');
|
|
348
|
-
internalModel.triggerLater('ready');
|
|
349
343
|
},
|
|
350
344
|
|
|
351
345
|
becameValid(internalModel) {
|
|
352
346
|
internalModel.transitionTo('uncommitted');
|
|
353
347
|
},
|
|
354
348
|
|
|
355
|
-
invokeLifecycleCallbacks(
|
|
356
|
-
internalModel.triggerLater('becameInvalid', internalModel);
|
|
357
|
-
},
|
|
349
|
+
invokeLifecycleCallbacks() {},
|
|
358
350
|
},
|
|
359
351
|
};
|
|
360
352
|
|
|
@@ -403,12 +395,10 @@ const createdState = dirtyState({
|
|
|
403
395
|
|
|
404
396
|
createdState.invalid.rolledBack = function (internalModel) {
|
|
405
397
|
internalModel.transitionTo('deleted.saved');
|
|
406
|
-
internalModel.triggerLater('rolledBack');
|
|
407
398
|
};
|
|
408
399
|
|
|
409
400
|
createdState.uncommitted.rolledBack = function (internalModel) {
|
|
410
401
|
internalModel.transitionTo('deleted.saved');
|
|
411
|
-
internalModel.triggerLater('rolledBack');
|
|
412
402
|
};
|
|
413
403
|
|
|
414
404
|
const updatedState = dirtyState({
|
|
@@ -433,7 +423,6 @@ createdState.uncommitted.pushedData = function (internalModel) {
|
|
|
433
423
|
// TODO @runspired consider where to do this once we kill off state machine
|
|
434
424
|
internalModel.store._notificationManager.notify(internalModel.identifier, 'identity');
|
|
435
425
|
internalModel.transitionTo('loaded.updated.uncommitted');
|
|
436
|
-
internalModel.triggerLater('didLoad');
|
|
437
426
|
};
|
|
438
427
|
|
|
439
428
|
createdState.uncommitted.propertyWasReset = function () {};
|
|
@@ -458,7 +447,6 @@ updatedState.uncommitted.deleteRecord = function (internalModel) {
|
|
|
458
447
|
updatedState.invalid.rolledBack = function (internalModel) {
|
|
459
448
|
clearErrorMessages(internalModel);
|
|
460
449
|
internalModel.transitionTo('loaded.saved');
|
|
461
|
-
internalModel.triggerLater('rolledBack');
|
|
462
450
|
};
|
|
463
451
|
|
|
464
452
|
const RootState = {
|
|
@@ -500,13 +488,10 @@ const RootState = {
|
|
|
500
488
|
|
|
501
489
|
loadedData(internalModel) {
|
|
502
490
|
internalModel.transitionTo('loaded.created.uncommitted');
|
|
503
|
-
internalModel.triggerLater('ready');
|
|
504
491
|
},
|
|
505
492
|
|
|
506
493
|
pushedData(internalModel) {
|
|
507
494
|
internalModel.transitionTo('loaded.saved');
|
|
508
|
-
internalModel.triggerLater('didLoad');
|
|
509
|
-
internalModel.triggerLater('ready');
|
|
510
495
|
},
|
|
511
496
|
|
|
512
497
|
// Record is already in an empty state, triggering transition to empty here
|
|
@@ -533,15 +518,11 @@ const RootState = {
|
|
|
533
518
|
// EVENTS
|
|
534
519
|
pushedData(internalModel) {
|
|
535
520
|
internalModel.transitionTo('loaded.saved');
|
|
536
|
-
internalModel.triggerLater('didLoad');
|
|
537
|
-
internalModel.triggerLater('ready');
|
|
538
521
|
//TODO this seems out of place here
|
|
539
522
|
internalModel.didCleanError();
|
|
540
523
|
},
|
|
541
524
|
|
|
542
|
-
becameError(
|
|
543
|
-
internalModel.triggerLater('becameError', internalModel);
|
|
544
|
-
},
|
|
525
|
+
becameError() {},
|
|
545
526
|
|
|
546
527
|
notFound(internalModel) {
|
|
547
528
|
internalModel.transitionTo('empty');
|
|
@@ -640,7 +621,6 @@ const RootState = {
|
|
|
640
621
|
|
|
641
622
|
rollback(internalModel) {
|
|
642
623
|
internalModel.rollbackAttributes();
|
|
643
|
-
internalModel.triggerLater('ready');
|
|
644
624
|
},
|
|
645
625
|
|
|
646
626
|
pushedData() {},
|
|
@@ -649,8 +629,6 @@ const RootState = {
|
|
|
649
629
|
|
|
650
630
|
rolledBack(internalModel) {
|
|
651
631
|
internalModel.transitionTo('loaded.saved');
|
|
652
|
-
internalModel.triggerLater('ready');
|
|
653
|
-
internalModel.triggerLater('rolledBack');
|
|
654
632
|
},
|
|
655
633
|
},
|
|
656
634
|
|
|
@@ -676,12 +654,10 @@ const RootState = {
|
|
|
676
654
|
|
|
677
655
|
becameError(internalModel) {
|
|
678
656
|
internalModel.transitionTo('uncommitted');
|
|
679
|
-
internalModel.triggerLater('becameError', internalModel);
|
|
680
657
|
},
|
|
681
658
|
|
|
682
659
|
becameInvalid(internalModel) {
|
|
683
660
|
internalModel.transitionTo('invalid');
|
|
684
|
-
internalModel.triggerLater('becameInvalid', internalModel);
|
|
685
661
|
},
|
|
686
662
|
},
|
|
687
663
|
|
|
@@ -696,10 +672,7 @@ const RootState = {
|
|
|
696
672
|
internalModel.removeFromInverseRelationships();
|
|
697
673
|
},
|
|
698
674
|
|
|
699
|
-
invokeLifecycleCallbacks(
|
|
700
|
-
internalModel.triggerLater('didDelete', internalModel);
|
|
701
|
-
internalModel.triggerLater('didCommit', internalModel);
|
|
702
|
-
},
|
|
675
|
+
invokeLifecycleCallbacks() {},
|
|
703
676
|
|
|
704
677
|
willCommit() {},
|
|
705
678
|
didCommit() {},
|
|
@@ -727,7 +700,6 @@ const RootState = {
|
|
|
727
700
|
rolledBack(internalModel) {
|
|
728
701
|
clearErrorMessages(internalModel);
|
|
729
702
|
internalModel.transitionTo('loaded.saved');
|
|
730
|
-
internalModel.triggerLater('ready');
|
|
731
703
|
},
|
|
732
704
|
|
|
733
705
|
becameValid(internalModel) {
|
|
@@ -736,15 +708,7 @@ const RootState = {
|
|
|
736
708
|
},
|
|
737
709
|
},
|
|
738
710
|
|
|
739
|
-
invokeLifecycleCallbacks(
|
|
740
|
-
if (dirtyType === 'created') {
|
|
741
|
-
internalModel.triggerLater('didCreate', internalModel);
|
|
742
|
-
} else {
|
|
743
|
-
internalModel.triggerLater('didUpdate', internalModel);
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
internalModel.triggerLater('didCommit', internalModel);
|
|
747
|
-
},
|
|
711
|
+
invokeLifecycleCallbacks() {},
|
|
748
712
|
};
|
|
749
713
|
|
|
750
714
|
function wireState(object, parent, name) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ember-data/store",
|
|
3
|
-
"version": "4.4.0-alpha.
|
|
3
|
+
"version": "4.4.0-alpha.9",
|
|
4
4
|
"description": "The default blueprint for ember-cli addons.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"start": "ember serve"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@ember-data/canary-features": "4.4.0-alpha.
|
|
21
|
-
"@ember-data/private-build-infra": "4.4.0-alpha.
|
|
20
|
+
"@ember-data/canary-features": "4.4.0-alpha.9",
|
|
21
|
+
"@ember-data/private-build-infra": "4.4.0-alpha.9",
|
|
22
22
|
"@ember/string": "^3.0.0",
|
|
23
23
|
"@embroider/macros": "^1.2.0",
|
|
24
24
|
"@glimmer/tracking": "^1.0.4",
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"ember-cli-typescript": "^5.0.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@ember-data/unpublished-test-infra": "4.4.0-alpha.
|
|
32
|
+
"@ember-data/unpublished-test-infra": "4.4.0-alpha.9",
|
|
33
33
|
"@ember/optional-features": "^2.0.0",
|
|
34
34
|
"@ember/test-helpers": "^2.6.0",
|
|
35
35
|
"@types/ember": "^4.0.0",
|
|
36
36
|
"@types/rsvp": "^4.0.4",
|
|
37
37
|
"broccoli-asset-rev": "^3.0.0",
|
|
38
|
-
"ember-cli": "~4.
|
|
39
|
-
"ember-cli-dependency-checker": "^3.
|
|
38
|
+
"ember-cli": "~4.3.0",
|
|
39
|
+
"ember-cli-dependency-checker": "^3.3.1",
|
|
40
40
|
"ember-cli-htmlbars": "^6.0.1",
|
|
41
41
|
"ember-cli-inject-live-reload": "^2.0.2",
|
|
42
42
|
"ember-cli-sri": "^2.1.1",
|