ember-data-source 2.0.1 → 2.1.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dist/ember-data-tests.js +40 -344
- data/dist/ember-data.js +122 -135
- data/dist/ember-data.js.map +1 -1
- data/dist/ember-data.min.js +4 -4
- data/dist/ember-data.prod.js +117 -134
- data/package.json +2 -1
- metadata +4 -4
data/dist/ember-data.js
CHANGED
@@ -340,7 +340,10 @@
|
|
340
340
|
*/
|
341
341
|
|
342
342
|
function ember$data$lib$adapters$errors$$InvalidError(errors) {
|
343
|
-
|
343
|
+
if (!Ember.isArray(errors)) {
|
344
|
+
Ember.deprecate('`InvalidError` expects json-api formatted errors.', false, { id: 'ds.errors.invalid-error-expects-json-api-format', until: '2.0.0' });
|
345
|
+
errors = ember$data$lib$adapters$errors$$errorsHashToArray(errors);
|
346
|
+
}
|
344
347
|
ember$data$lib$adapters$errors$$AdapterError.call(this, errors, 'The adapter rejected the commit because it was invalid');
|
345
348
|
}
|
346
349
|
|
@@ -577,8 +580,7 @@
|
|
577
580
|
}
|
578
581
|
});
|
579
582
|
```
|
580
|
-
@
|
581
|
-
@method query
|
583
|
+
@method query
|
582
584
|
@param {DS.Store} store
|
583
585
|
@param {DS.Model} type
|
584
586
|
@param {Object} query
|
@@ -1217,6 +1219,24 @@
|
|
1217
1219
|
var ember$data$lib$system$map$$MapWithDefault = Ember.MapWithDefault;
|
1218
1220
|
|
1219
1221
|
var ember$data$lib$system$map$$default = ember$data$lib$system$map$$Map;
|
1222
|
+
var ember$data$lib$system$empty$object$$default = ember$data$lib$system$empty$object$$EmptyObject;
|
1223
|
+
// This exists because `Object.create(null)` is absurdly slow compared
|
1224
|
+
// to `new EmptyObject()`. In either case, you want a null prototype
|
1225
|
+
// when you're treating the object instances as arbitrary dictionaries
|
1226
|
+
// and don't want your keys colliding with build-in methods on the
|
1227
|
+
// default object prototype.
|
1228
|
+
var ember$data$lib$system$empty$object$$proto = Object.create(null, {
|
1229
|
+
// without this, we will always still end up with (new
|
1230
|
+
// EmptyObject()).constructor === Object
|
1231
|
+
constructor: {
|
1232
|
+
value: undefined,
|
1233
|
+
enumerable: false,
|
1234
|
+
writable: true
|
1235
|
+
}
|
1236
|
+
});
|
1237
|
+
function ember$data$lib$system$empty$object$$EmptyObject() {}
|
1238
|
+
|
1239
|
+
ember$data$lib$system$empty$object$$EmptyObject.prototype = ember$data$lib$system$empty$object$$proto;
|
1220
1240
|
|
1221
1241
|
/**
|
1222
1242
|
The REST adapter allows your store to communicate with an HTTP server by
|
@@ -1541,7 +1561,8 @@
|
|
1541
1561
|
of the records for a given type.
|
1542
1562
|
The `findAll` method makes an Ajax (HTTP GET) request to a URL computed by `buildURL`, and returns a
|
1543
1563
|
promise for the resulting payload.
|
1544
|
-
@
|
1564
|
+
@private
|
1565
|
+
@method findAll
|
1545
1566
|
@param {DS.Store} store
|
1546
1567
|
@param {DS.Model} type
|
1547
1568
|
@param {String} sinceToken
|
@@ -1567,7 +1588,8 @@
|
|
1567
1588
|
payload.
|
1568
1589
|
The `query` argument is a simple JavaScript object that will be passed directly
|
1569
1590
|
to the server as parameters.
|
1570
|
-
@
|
1591
|
+
@private
|
1592
|
+
@method query
|
1571
1593
|
@param {DS.Store} store
|
1572
1594
|
@param {DS.Model} type
|
1573
1595
|
@param {Object} query
|
@@ -1591,7 +1613,8 @@
|
|
1591
1613
|
payload.
|
1592
1614
|
The `query` argument is a simple JavaScript object that will be passed directly
|
1593
1615
|
to the server as parameters.
|
1594
|
-
@
|
1616
|
+
@private
|
1617
|
+
@method queryRecord
|
1595
1618
|
@param {DS.Store} store
|
1596
1619
|
@param {DS.Model} type
|
1597
1620
|
@param {Object} query
|
@@ -2038,7 +2061,7 @@
|
|
2038
2061
|
});
|
2039
2062
|
|
2040
2063
|
function ember$data$lib$adapters$rest$adapter$$parseResponseHeaders(headerStr) {
|
2041
|
-
var headers =
|
2064
|
+
var headers = new ember$data$lib$system$empty$object$$default();
|
2042
2065
|
if (!headerStr) {
|
2043
2066
|
return headers;
|
2044
2067
|
}
|
@@ -2099,44 +2122,6 @@
|
|
2099
2122
|
return hash;
|
2100
2123
|
},
|
2101
2124
|
|
2102
|
-
/**
|
2103
|
-
By default the JSONAPIAdapter will send each find request coming from a `store.find`
|
2104
|
-
or from accessing a relationship separately to the server. If your server supports passing
|
2105
|
-
ids as a query string, you can set coalesceFindRequests to true to coalesce all find requests
|
2106
|
-
within a single runloop.
|
2107
|
-
For example, if you have an initial payload of:
|
2108
|
-
```javascript
|
2109
|
-
{
|
2110
|
-
post: {
|
2111
|
-
id: 1,
|
2112
|
-
comments: [1, 2]
|
2113
|
-
}
|
2114
|
-
}
|
2115
|
-
```
|
2116
|
-
By default calling `post.get('comments')` will trigger the following requests(assuming the
|
2117
|
-
comments haven't been loaded before):
|
2118
|
-
```
|
2119
|
-
GET /comments/1
|
2120
|
-
GET /comments/2
|
2121
|
-
```
|
2122
|
-
If you set coalesceFindRequests to `true` it will instead trigger the following request:
|
2123
|
-
```
|
2124
|
-
GET /comments?filter[id]=1,2
|
2125
|
-
```
|
2126
|
-
Setting coalesceFindRequests to `true` also works for `store.find` requests and `belongsTo`
|
2127
|
-
relationships accessed within the same runloop. If you set `coalesceFindRequests: true`
|
2128
|
-
```javascript
|
2129
|
-
store.findRecord('comment', 1);
|
2130
|
-
store.findRecord('comment', 2);
|
2131
|
-
```
|
2132
|
-
will also send a request to: `GET /comments?filter[id]=1,2`
|
2133
|
-
Note: Requests coalescing rely on URL building strategy. So if you override `buildURL` in your app
|
2134
|
-
`groupRecordsForFindMany` more likely should be overridden as well in order for coalescing to work.
|
2135
|
-
@property coalesceFindRequests
|
2136
|
-
@type {boolean}
|
2137
|
-
*/
|
2138
|
-
coalesceFindRequests: false,
|
2139
|
-
|
2140
2125
|
/**
|
2141
2126
|
@method findMany
|
2142
2127
|
@param {DS.Store} store
|
@@ -2182,7 +2167,7 @@
|
|
2182
2167
|
});
|
2183
2168
|
|
2184
2169
|
var ember$data$lib$core$$DS = Ember.Namespace.create({
|
2185
|
-
VERSION: '2.0.1'
|
2170
|
+
VERSION: '2.1.0-beta.1'
|
2186
2171
|
});
|
2187
2172
|
|
2188
2173
|
if (Ember.libraries) {
|
@@ -3235,7 +3220,7 @@
|
|
3235
3220
|
var currentData = ember$data$lib$system$model$model$$get(this._internalModel, '_attributes');
|
3236
3221
|
var inFlightData = ember$data$lib$system$model$model$$get(this._internalModel, '_inFlightAttributes');
|
3237
3222
|
var newData = ember$data$lib$system$model$model$$merge(ember$data$lib$system$model$model$$copy(inFlightData), currentData);
|
3238
|
-
var diffData =
|
3223
|
+
var diffData = new ember$data$lib$system$empty$object$$default();
|
3239
3224
|
|
3240
3225
|
var newDataKeys = Object.keys(newData);
|
3241
3226
|
|
@@ -3454,7 +3439,7 @@
|
|
3454
3439
|
|
3455
3440
|
var ember$data$lib$system$store$serializer$response$$get = Ember.get;
|
3456
3441
|
|
3457
|
-
|
3442
|
+
/**
|
3458
3443
|
This is a helper method that validates a JSON API top-level document
|
3459
3444
|
|
3460
3445
|
The format of a document is described here:
|
@@ -3512,7 +3497,7 @@
|
|
3512
3497
|
return errors;
|
3513
3498
|
}
|
3514
3499
|
|
3515
|
-
|
3500
|
+
/**
|
3516
3501
|
This is a helper method that always returns a JSON-API Document.
|
3517
3502
|
|
3518
3503
|
@method normalizeResponseHelper
|
@@ -3540,7 +3525,7 @@
|
|
3540
3525
|
return normalizedResponse;
|
3541
3526
|
}
|
3542
3527
|
|
3543
|
-
|
3528
|
+
/**
|
3544
3529
|
Convert the payload from `serializer.extract` to a JSON-API Document.
|
3545
3530
|
|
3546
3531
|
@method _normalizeSerializerPayload
|
@@ -3566,7 +3551,7 @@
|
|
3566
3551
|
return { data: data };
|
3567
3552
|
}
|
3568
3553
|
|
3569
|
-
|
3554
|
+
/**
|
3570
3555
|
Convert the payload representing a single record from `serializer.extract` to
|
3571
3556
|
a JSON-API Resource Object.
|
3572
3557
|
|
@@ -3652,7 +3637,7 @@
|
|
3652
3637
|
return { id: '' + value, type: relationshipMeta.type };
|
3653
3638
|
}
|
3654
3639
|
|
3655
|
-
|
3640
|
+
/**
|
3656
3641
|
This method converts a JSON-API Resource Object to a format that DS.Store
|
3657
3642
|
understands.
|
3658
3643
|
|
@@ -4190,9 +4175,8 @@
|
|
4190
4175
|
});
|
4191
4176
|
|
4192
4177
|
var ember$data$lib$system$clone$null$$default = ember$data$lib$system$clone$null$$cloneNull;
|
4193
|
-
|
4194
4178
|
function ember$data$lib$system$clone$null$$cloneNull(source) {
|
4195
|
-
var clone =
|
4179
|
+
var clone = new ember$data$lib$system$empty$object$$default();
|
4196
4180
|
for (var key in source) {
|
4197
4181
|
clone[key] = source[key];
|
4198
4182
|
}
|
@@ -4621,10 +4605,10 @@
|
|
4621
4605
|
*/
|
4622
4606
|
function ember$data$lib$system$store$container$instance$cache$$ContainerInstanceCache(container) {
|
4623
4607
|
this._container = container;
|
4624
|
-
this._cache =
|
4608
|
+
this._cache = new ember$data$lib$system$empty$object$$default();
|
4625
4609
|
}
|
4626
4610
|
|
4627
|
-
ember$data$lib$system$store$container$instance$cache$$ContainerInstanceCache.prototype =
|
4611
|
+
ember$data$lib$system$store$container$instance$cache$$ContainerInstanceCache.prototype = new ember$data$lib$system$empty$object$$default();
|
4628
4612
|
|
4629
4613
|
ember$lib$main$$default.merge(ember$data$lib$system$store$container$instance$cache$$ContainerInstanceCache.prototype, {
|
4630
4614
|
get: function (type, preferredKey, fallbacks) {
|
@@ -4701,7 +4685,6 @@
|
|
4701
4685
|
|
4702
4686
|
return original;
|
4703
4687
|
}
|
4704
|
-
|
4705
4688
|
var ember$data$lib$system$model$states$$get = Ember.get;
|
4706
4689
|
/*
|
4707
4690
|
This file encapsulates the various states that a record can transition
|
@@ -5056,7 +5039,7 @@
|
|
5056
5039
|
},
|
5057
5040
|
|
5058
5041
|
exit: function (internalModel) {
|
5059
|
-
internalModel._inFlightAttributes =
|
5042
|
+
internalModel._inFlightAttributes = new ember$data$lib$system$empty$object$$default();
|
5060
5043
|
}
|
5061
5044
|
}
|
5062
5045
|
};
|
@@ -5474,7 +5457,6 @@
|
|
5474
5457
|
this.linkPromise = null;
|
5475
5458
|
this.meta = null;
|
5476
5459
|
this.hasData = false;
|
5477
|
-
this.hasLoaded = false;
|
5478
5460
|
}
|
5479
5461
|
|
5480
5462
|
ember$data$lib$system$relationships$state$relationship$$Relationship.prototype = {
|
@@ -5659,7 +5641,6 @@
|
|
5659
5641
|
if (link !== this.link) {
|
5660
5642
|
this.link = link;
|
5661
5643
|
this.linkPromise = null;
|
5662
|
-
this.setHasLoaded(false);
|
5663
5644
|
this.record.notifyPropertyChange(this.key);
|
5664
5645
|
}
|
5665
5646
|
},
|
@@ -5681,35 +5662,13 @@
|
|
5681
5662
|
//TODO Once we have adapter support, we need to handle updated and canonical changes
|
5682
5663
|
this.computeChanges(records);
|
5683
5664
|
this.setHasData(true);
|
5684
|
-
this.setHasLoaded(true);
|
5685
5665
|
},
|
5686
5666
|
|
5687
5667
|
notifyRecordRelationshipAdded: Ember.K,
|
5688
5668
|
notifyRecordRelationshipRemoved: Ember.K,
|
5689
5669
|
|
5690
|
-
/*
|
5691
|
-
`hasData` for a relationship is a flag to indicate if we consider the
|
5692
|
-
content of this relationship "known". Snapshots uses this to tell the
|
5693
|
-
difference between unknown (`undefined`) or empty (`null`). The reason for
|
5694
|
-
this is that we wouldn't want to serialize unknown relationships as `null`
|
5695
|
-
as that might overwrite remote state.
|
5696
|
-
All relationships for a newly created (`store.createRecord()`) are
|
5697
|
-
considered known (`hasData === true`).
|
5698
|
-
*/
|
5699
5670
|
setHasData: function (value) {
|
5700
5671
|
this.hasData = value;
|
5701
|
-
},
|
5702
|
-
|
5703
|
-
/*
|
5704
|
-
`hasLoaded` is a flag to indicate if we have gotten data from the adapter or
|
5705
|
-
not when the relationship has a link.
|
5706
|
-
This is used to be able to tell when to fetch the link and when to return
|
5707
|
-
the local data in scenarios where the local state is considered known
|
5708
|
-
(`hasData === true`).
|
5709
|
-
Updating the link will automatically set `hasLoaded` to `false`.
|
5710
|
-
*/
|
5711
|
-
setHasLoaded: function (value) {
|
5712
|
-
this.hasLoaded = value;
|
5713
5672
|
}
|
5714
5673
|
};
|
5715
5674
|
|
@@ -6156,13 +6115,9 @@
|
|
6156
6115
|
if (this.isAsync) {
|
6157
6116
|
var promise;
|
6158
6117
|
if (this.link) {
|
6159
|
-
|
6160
|
-
|
6161
|
-
}
|
6162
|
-
promise = this.findLink().then(function () {
|
6163
|
-
return _this3.findRecords();
|
6164
|
-
});
|
6165
|
-
}
|
6118
|
+
promise = this.findLink().then(function () {
|
6119
|
+
return _this3.findRecords();
|
6120
|
+
});
|
6166
6121
|
} else {
|
6167
6122
|
promise = this.findRecords();
|
6168
6123
|
}
|
@@ -6212,7 +6167,6 @@
|
|
6212
6167
|
this.removeRecord(this.inverseRecord);
|
6213
6168
|
}
|
6214
6169
|
this.setHasData(true);
|
6215
|
-
this.setHasLoaded(true);
|
6216
6170
|
};
|
6217
6171
|
|
6218
6172
|
ember$data$lib$system$relationships$state$belongs$to$$BelongsToRelationship.prototype.setCanonicalRecord = function (newRecord) {
|
@@ -6222,7 +6176,6 @@
|
|
6222
6176
|
this.removeCanonicalRecord(this.inverseRecord);
|
6223
6177
|
}
|
6224
6178
|
this.setHasData(true);
|
6225
|
-
this.setHasLoaded(true);
|
6226
6179
|
};
|
6227
6180
|
|
6228
6181
|
ember$data$lib$system$relationships$state$belongs$to$$BelongsToRelationship.prototype._super$addCanonicalRecord = ember$data$lib$system$relationships$state$relationship$$default.prototype.addCanonicalRecord;
|
@@ -6319,13 +6272,9 @@
|
|
6319
6272
|
if (this.isAsync) {
|
6320
6273
|
var promise;
|
6321
6274
|
if (this.link) {
|
6322
|
-
|
6323
|
-
|
6324
|
-
}
|
6325
|
-
promise = this.findLink().then(function () {
|
6326
|
-
return _this2.findRecord();
|
6327
|
-
});
|
6328
|
-
}
|
6275
|
+
promise = this.findLink().then(function () {
|
6276
|
+
return _this2.findRecord();
|
6277
|
+
});
|
6329
6278
|
} else {
|
6330
6279
|
promise = this.findRecord();
|
6331
6280
|
}
|
@@ -6363,7 +6312,7 @@
|
|
6363
6312
|
}
|
6364
6313
|
function ember$data$lib$system$relationships$state$create$$Relationships(record) {
|
6365
6314
|
this.record = record;
|
6366
|
-
this.initializedRelationships =
|
6315
|
+
this.initializedRelationships = new ember$data$lib$system$empty$object$$default();
|
6367
6316
|
}
|
6368
6317
|
|
6369
6318
|
ember$data$lib$system$relationships$state$create$$Relationships.prototype.has = function (key) {
|
@@ -6379,11 +6328,6 @@
|
|
6379
6328
|
return relationships[key];
|
6380
6329
|
};
|
6381
6330
|
var ember$data$lib$system$snapshot$$default = ember$data$lib$system$snapshot$$Snapshot;
|
6382
|
-
|
6383
|
-
/**
|
6384
|
-
@module ember-data
|
6385
|
-
*/
|
6386
|
-
|
6387
6331
|
var ember$data$lib$system$snapshot$$get = Ember.get;
|
6388
6332
|
|
6389
6333
|
/**
|
@@ -6396,11 +6340,11 @@
|
|
6396
6340
|
function ember$data$lib$system$snapshot$$Snapshot(internalModel) {
|
6397
6341
|
var _this = this;
|
6398
6342
|
|
6399
|
-
this._attributes =
|
6400
|
-
this._belongsToRelationships =
|
6401
|
-
this._belongsToIds =
|
6402
|
-
this._hasManyRelationships =
|
6403
|
-
this._hasManyIds =
|
6343
|
+
this._attributes = new ember$data$lib$system$empty$object$$default();
|
6344
|
+
this._belongsToRelationships = new ember$data$lib$system$empty$object$$default();
|
6345
|
+
this._belongsToIds = new ember$data$lib$system$empty$object$$default();
|
6346
|
+
this._hasManyRelationships = new ember$data$lib$system$empty$object$$default();
|
6347
|
+
this._hasManyIds = new ember$data$lib$system$empty$object$$default();
|
6404
6348
|
|
6405
6349
|
var record = internalModel.getRecord();
|
6406
6350
|
this.record = record;
|
@@ -6503,7 +6447,7 @@
|
|
6503
6447
|
@return {Object} All changed attributes of the current snapshot
|
6504
6448
|
*/
|
6505
6449
|
changedAttributes: function () {
|
6506
|
-
var changedAttributes =
|
6450
|
+
var changedAttributes = new ember$data$lib$system$empty$object$$default();
|
6507
6451
|
var changedAttributeKeys = Object.keys(this._changedAttributes);
|
6508
6452
|
|
6509
6453
|
for (var i = 0, _length = changedAttributeKeys.length; i < _length; i++) {
|
@@ -6699,8 +6643,8 @@
|
|
6699
6643
|
var ember$data$lib$system$model$internal$model$$get = Ember.get;
|
6700
6644
|
var ember$data$lib$system$model$internal$model$$set = Ember.set;
|
6701
6645
|
|
6702
|
-
var ember$data$lib$system$model$internal$model$$_extractPivotNameCache =
|
6703
|
-
var ember$data$lib$system$model$internal$model$$_splitOnDotCache =
|
6646
|
+
var ember$data$lib$system$model$internal$model$$_extractPivotNameCache = new ember$data$lib$system$empty$object$$default();
|
6647
|
+
var ember$data$lib$system$model$internal$model$$_splitOnDotCache = new ember$data$lib$system$empty$object$$default();
|
6704
6648
|
|
6705
6649
|
function ember$data$lib$system$model$internal$model$$splitOnDot(name) {
|
6706
6650
|
return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split('.'));
|
@@ -6716,6 +6660,7 @@
|
|
6716
6660
|
};
|
6717
6661
|
}
|
6718
6662
|
|
6663
|
+
var ember$data$lib$system$model$internal$model$$guid = 0;
|
6719
6664
|
/**
|
6720
6665
|
`InternalModel` is the Model class that we use internally inside Ember Data to represent models.
|
6721
6666
|
Internal ED methods should only deal with `InternalModel` objects. It is a fast, plain Javascript class.
|
@@ -6736,18 +6681,19 @@
|
|
6736
6681
|
this.id = id;
|
6737
6682
|
this.store = store;
|
6738
6683
|
this.container = container;
|
6739
|
-
this._data = data ||
|
6684
|
+
this._data = data || new ember$data$lib$system$empty$object$$default();
|
6740
6685
|
this.modelName = type.modelName;
|
6741
6686
|
this.dataHasInitialized = false;
|
6742
6687
|
//Look into making this lazy
|
6743
6688
|
this._deferredTriggers = [];
|
6744
|
-
this._attributes =
|
6745
|
-
this._inFlightAttributes =
|
6689
|
+
this._attributes = new ember$data$lib$system$empty$object$$default();
|
6690
|
+
this._inFlightAttributes = new ember$data$lib$system$empty$object$$default();
|
6746
6691
|
this._relationships = new ember$data$lib$system$relationships$state$create$$default(this);
|
6747
6692
|
this.currentState = ember$data$lib$system$model$states$$default.empty;
|
6748
6693
|
this.isReloading = false;
|
6749
6694
|
this.isError = false;
|
6750
6695
|
this.error = null;
|
6696
|
+
this[Ember.GUID_KEY] = ember$data$lib$system$model$internal$model$$guid++ + 'internal-model';
|
6751
6697
|
/*
|
6752
6698
|
implicit relationships are relationship which have not been declared but the inverse side exists on
|
6753
6699
|
another record somewhere
|
@@ -6769,7 +6715,7 @@
|
|
6769
6715
|
would have a implicit post relationship in order to be do things like remove ourselves from the post
|
6770
6716
|
when we are deleted
|
6771
6717
|
*/
|
6772
|
-
this._implicitRelationships =
|
6718
|
+
this._implicitRelationships = new ember$data$lib$system$empty$object$$default();
|
6773
6719
|
}
|
6774
6720
|
|
6775
6721
|
ember$data$lib$system$model$internal$model$$InternalModel.prototype = {
|
@@ -6945,7 +6891,7 @@
|
|
6945
6891
|
|
6946
6892
|
flushChangedAttributes: function () {
|
6947
6893
|
this._inFlightAttributes = this._attributes;
|
6948
|
-
this._attributes =
|
6894
|
+
this._attributes = new ember$data$lib$system$empty$object$$default();
|
6949
6895
|
},
|
6950
6896
|
|
6951
6897
|
/**
|
@@ -7008,10 +6954,10 @@
|
|
7008
6954
|
rollbackAttributes: function () {
|
7009
6955
|
var dirtyKeys = Object.keys(this._attributes);
|
7010
6956
|
|
7011
|
-
this._attributes =
|
6957
|
+
this._attributes = new ember$data$lib$system$empty$object$$default();
|
7012
6958
|
|
7013
6959
|
if (ember$data$lib$system$model$internal$model$$get(this, 'isError')) {
|
7014
|
-
this._inFlightAttributes =
|
6960
|
+
this._inFlightAttributes = new ember$data$lib$system$empty$object$$default();
|
7015
6961
|
this.didCleanError();
|
7016
6962
|
}
|
7017
6963
|
|
@@ -7028,7 +6974,7 @@
|
|
7028
6974
|
}
|
7029
6975
|
|
7030
6976
|
if (this.isValid()) {
|
7031
|
-
this._inFlightAttributes =
|
6977
|
+
this._inFlightAttributes = new ember$data$lib$system$empty$object$$default();
|
7032
6978
|
}
|
7033
6979
|
|
7034
6980
|
this.send('rolledBack');
|
@@ -7272,7 +7218,7 @@
|
|
7272
7218
|
ember$data$lib$system$merge$$default(this._data, data);
|
7273
7219
|
}
|
7274
7220
|
|
7275
|
-
this._inFlightAttributes =
|
7221
|
+
this._inFlightAttributes = new ember$data$lib$system$empty$object$$default();
|
7276
7222
|
|
7277
7223
|
this.send('didCommit');
|
7278
7224
|
this.updateRecordArraysLater();
|
@@ -7347,7 +7293,7 @@
|
|
7347
7293
|
this._attributes[keys[i]] = this._inFlightAttributes[keys[i]];
|
7348
7294
|
}
|
7349
7295
|
}
|
7350
|
-
this._inFlightAttributes =
|
7296
|
+
this._inFlightAttributes = new ember$data$lib$system$empty$object$$default();
|
7351
7297
|
},
|
7352
7298
|
|
7353
7299
|
/**
|
@@ -7390,7 +7336,7 @@
|
|
7390
7336
|
var keys = Object.keys(updates);
|
7391
7337
|
var length = keys.length;
|
7392
7338
|
|
7393
|
-
original = ember$data$lib$system$merge$$default(
|
7339
|
+
original = ember$data$lib$system$merge$$default(new ember$data$lib$system$empty$object$$default(), this._data);
|
7394
7340
|
original = ember$data$lib$system$merge$$default(original, this._inFlightAttributes);
|
7395
7341
|
|
7396
7342
|
for (i = 0; i < length; i++) {
|
@@ -7677,7 +7623,7 @@
|
|
7677
7623
|
createRecord: function (modelName, inputProperties) {
|
7678
7624
|
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === 'string');
|
7679
7625
|
var typeClass = this.modelFor(modelName);
|
7680
|
-
var properties = ember$data$lib$system$store$$copy(inputProperties) ||
|
7626
|
+
var properties = ember$data$lib$system$store$$copy(inputProperties) || new ember$data$lib$system$empty$object$$default();
|
7681
7627
|
|
7682
7628
|
// If the passed properties do not include a primary key,
|
7683
7629
|
// give the adapter an opportunity to generate one. Typically,
|
@@ -8408,7 +8354,7 @@
|
|
8408
8354
|
record.destroy(); // maybe within unloadRecord
|
8409
8355
|
}
|
8410
8356
|
|
8411
|
-
typeMap.metadata =
|
8357
|
+
typeMap.metadata = new ember$data$lib$system$empty$object$$default();
|
8412
8358
|
}
|
8413
8359
|
|
8414
8360
|
function byType(entry) {
|
@@ -8462,7 +8408,11 @@
|
|
8462
8408
|
Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
|
8463
8409
|
|
8464
8410
|
if (!Ember.ENV.ENABLE_DS_FILTER) {
|
8465
|
-
Ember.
|
8411
|
+
Ember.deprecate('The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page', false, {
|
8412
|
+
url: 'https://github.com/ember-data/ember-data-filter',
|
8413
|
+
id: 'ds.store.filter-deprecated',
|
8414
|
+
until: '2.0.0'
|
8415
|
+
});
|
8466
8416
|
}
|
8467
8417
|
|
8468
8418
|
var promise;
|
@@ -8703,9 +8653,9 @@
|
|
8703
8653
|
}
|
8704
8654
|
|
8705
8655
|
typeMap = {
|
8706
|
-
idToRecord:
|
8656
|
+
idToRecord: new ember$data$lib$system$empty$object$$default(),
|
8707
8657
|
records: [],
|
8708
|
-
metadata:
|
8658
|
+
metadata: new ember$data$lib$system$empty$object$$default(),
|
8709
8659
|
type: typeClass
|
8710
8660
|
};
|
8711
8661
|
|
@@ -8954,6 +8904,9 @@
|
|
8954
8904
|
serializer (the application serializer if it exists).
|
8955
8905
|
Alternatively, `pushPayload` will accept a model type which
|
8956
8906
|
will determine which serializer will process the payload.
|
8907
|
+
However, the serializer itself (processing this data via
|
8908
|
+
`normalizePayload`) will not know which model it is
|
8909
|
+
deserializing.
|
8957
8910
|
```app/serializers/application.js
|
8958
8911
|
import DS from 'ember-data';
|
8959
8912
|
export default DS.ActiveModelSerializer;
|
@@ -9093,9 +9046,15 @@
|
|
9093
9046
|
@param {String} modelName
|
9094
9047
|
@return DS.Adapter
|
9095
9048
|
*/
|
9096
|
-
adapterFor: function (
|
9049
|
+
adapterFor: function (modelOrClass) {
|
9050
|
+
var modelName;
|
9097
9051
|
|
9098
|
-
|
9052
|
+
if (typeof modelOrClass === 'string') {
|
9053
|
+
modelName = modelOrClass;
|
9054
|
+
} else {
|
9055
|
+
Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: 'ds.store.passing-classes-deprecated', until: '2.0.0' });
|
9056
|
+
modelName = modelOrClass.modelName;
|
9057
|
+
}
|
9099
9058
|
|
9100
9059
|
return this.lookupAdapter(modelName);
|
9101
9060
|
},
|
@@ -9125,9 +9084,15 @@
|
|
9125
9084
|
@param {String} modelName the record to serialize
|
9126
9085
|
@return {DS.Serializer}
|
9127
9086
|
*/
|
9128
|
-
serializerFor: function (
|
9087
|
+
serializerFor: function (modelOrClass) {
|
9088
|
+
var modelName;
|
9129
9089
|
|
9130
|
-
|
9090
|
+
if (typeof modelOrClass === 'string') {
|
9091
|
+
modelName = modelOrClass;
|
9092
|
+
} else {
|
9093
|
+
Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: 'ds.store.passing-classes-deprecated', until: '2.0.0' });
|
9094
|
+
modelName = modelOrClass.modelName;
|
9095
|
+
}
|
9131
9096
|
|
9132
9097
|
var fallbacks = ['application', this.adapterFor(modelName).get('defaultSerializer'), '-default'];
|
9133
9098
|
|
@@ -9973,6 +9938,28 @@
|
|
9973
9938
|
return ember$data$lib$system$normalize$model$name$$default(key);
|
9974
9939
|
},
|
9975
9940
|
|
9941
|
+
/**
|
9942
|
+
You can use this method to normalize all payloads, regardless of whether they
|
9943
|
+
represent single records or an array.
|
9944
|
+
For example, you might want to remove some extraneous data from the payload:
|
9945
|
+
```app/serializers/application.js
|
9946
|
+
import DS from 'ember-data';
|
9947
|
+
export default DS.JSONSerializer.extend({
|
9948
|
+
normalizePayload: function(payload) {
|
9949
|
+
delete payload.version;
|
9950
|
+
delete payload.status;
|
9951
|
+
return payload;
|
9952
|
+
}
|
9953
|
+
});
|
9954
|
+
```
|
9955
|
+
@method normalizePayload
|
9956
|
+
@param {Object} payload
|
9957
|
+
@return {Object} the normalized payload
|
9958
|
+
*/
|
9959
|
+
normalizePayload: function (payload) {
|
9960
|
+
return payload;
|
9961
|
+
},
|
9962
|
+
|
9976
9963
|
/**
|
9977
9964
|
@method normalizeAttributes
|
9978
9965
|
@private
|
@@ -10616,8 +10603,8 @@
|
|
10616
10603
|
var ember$inflector$lib$lib$system$inflector$$capitalize = ember$lib$main$$default.String.capitalize;
|
10617
10604
|
|
10618
10605
|
var ember$inflector$lib$lib$system$inflector$$BLANK_REGEX = /^\s*$/;
|
10619
|
-
var ember$inflector$lib$lib$system$inflector$$LAST_WORD_DASHED_REGEX = /([\w/-]+[_
|
10620
|
-
var ember$inflector$lib$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX = /([\w
|
10606
|
+
var ember$inflector$lib$lib$system$inflector$$LAST_WORD_DASHED_REGEX = /([\w/-]+[_/-\s])([a-z\d]+$)/;
|
10607
|
+
var ember$inflector$lib$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX = /([\w/-\s]+)([A-Z][a-z\d]*$)/;
|
10621
10608
|
var ember$inflector$lib$lib$system$inflector$$CAMELIZED_REGEX = /[A-Z][a-z\d]*$/;
|
10622
10609
|
|
10623
10610
|
function ember$inflector$lib$lib$system$inflector$$loadUncountable(rules, uncountable) {
|
@@ -13791,7 +13778,7 @@
|
|
13791
13778
|
},
|
13792
13779
|
|
13793
13780
|
inverseMap: Ember.computed(function () {
|
13794
|
-
return
|
13781
|
+
return new ember$data$lib$system$empty$object$$default();
|
13795
13782
|
}),
|
13796
13783
|
|
13797
13784
|
/**
|