ember-data-source 1.13.6 → 1.13.7
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 +4817 -4653
- data/dist/ember-data.js +988 -786
- data/dist/ember-data.js.map +1 -1
- data/dist/ember-data.min.js +4 -4
- data/dist/ember-data.prod.js +646 -642
- data/package.json +1 -1
- metadata +3 -3
data/dist/ember-data.js
CHANGED
@@ -4,13 +4,12 @@
|
|
4
4
|
var ember$data$lib$system$object$polyfills$$keysFunc = Object.keys || Ember.keys;
|
5
5
|
var ember$data$lib$system$object$polyfills$$create = Object.create || Ember.create;
|
6
6
|
|
7
|
-
|
7
|
+
var ember$data$lib$adapters$errors$$EmberError = Ember.Error;
|
8
|
+
var ember$data$lib$adapters$errors$$forEach = Ember.ArrayPolyfills.forEach;
|
9
|
+
var ember$data$lib$adapters$errors$$SOURCE_POINTER_REGEXP = /^\/?data\/(attributes|relationships)\/(.*)/;/**
|
8
10
|
@class AdapterError
|
9
11
|
@namespace DS
|
10
|
-
*/
|
11
|
-
|
12
|
-
var ember$data$lib$adapters$errors$$forEach = Ember.ArrayPolyfills.forEach;
|
13
|
-
var ember$data$lib$adapters$errors$$SOURCE_POINTER_REGEXP = /data\/(attributes|relationships)\/(.*)/;
|
12
|
+
*/
|
14
13
|
function ember$data$lib$adapters$errors$$AdapterError(errors, message) {
|
15
14
|
message = message || "Adapter operation failed";
|
16
15
|
|
@@ -84,7 +83,7 @@
|
|
84
83
|
*/
|
85
84
|
function ember$data$lib$adapters$errors$$InvalidError(errors) {
|
86
85
|
if (!Ember.isArray(errors)) {
|
87
|
-
Ember.deprecate("`InvalidError` expects json-api formatted errors.");
|
86
|
+
Ember.deprecate("`InvalidError` expects json-api formatted errors.", false, { id: "ds.errors.invalid-error-expects-json-api-format", until: "2.0.0" });
|
88
87
|
errors = ember$data$lib$adapters$errors$$errorsHashToArray(errors);
|
89
88
|
}
|
90
89
|
ember$data$lib$adapters$errors$$AdapterError.call(this, errors, "The adapter rejected the commit because it was invalid");
|
@@ -123,10 +122,10 @@
|
|
123
122
|
var messages = Ember.makeArray(errors[key]);
|
124
123
|
for (var i = 0; i < messages.length; i++) {
|
125
124
|
out.push({
|
126
|
-
title:
|
125
|
+
title: "Invalid Attribute",
|
127
126
|
detail: messages[i],
|
128
127
|
source: {
|
129
|
-
pointer: "data/attributes/" + key
|
128
|
+
pointer: "/data/attributes/" + key
|
130
129
|
}
|
131
130
|
});
|
132
131
|
}
|
@@ -577,7 +576,7 @@
|
|
577
576
|
*/
|
578
577
|
shouldReloadAll: function (store, snapshotRecordArray) {
|
579
578
|
var modelName = snapshotRecordArray.type.modelName;
|
580
|
-
Ember.deprecate('The default behavior of shouldReloadAll will change in Ember Data 2.0 to always return false when there is at least one "' + modelName + '" record in the store. If you would like to preserve the current behavior please override shouldReloadAll in your adapter:application and return true.');
|
579
|
+
Ember.deprecate('The default behavior of shouldReloadAll will change in Ember Data 2.0 to always return false when there is at least one "' + modelName + '" record in the store. If you would like to preserve the current behavior please override shouldReloadAll in your adapter:application and return true.', false, { id: 'ds.adapter.should-reload-all-default-behavior', until: '2.0.0' });
|
581
580
|
return true;
|
582
581
|
},
|
583
582
|
|
@@ -595,7 +594,7 @@
|
|
595
594
|
@return {Boolean}
|
596
595
|
*/
|
597
596
|
shouldBackgroundReloadRecord: function (store, snapshot) {
|
598
|
-
Ember.deprecate('The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false.');
|
597
|
+
Ember.deprecate('The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false.', false, { id: 'ds.adapter.should-background-reload-record-default-behavior', until: '2.0.0' });
|
599
598
|
return false;
|
600
599
|
},
|
601
600
|
|
@@ -754,7 +753,10 @@
|
|
754
753
|
*/
|
755
754
|
urlForFindRecord: function (id, modelName, snapshot) {
|
756
755
|
if (this.urlForFind !== ember$data$lib$adapters$build$url$mixin$$urlForFind) {
|
757
|
-
Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.'
|
756
|
+
Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.', false, {
|
757
|
+
id: 'ds.adapter.url-for-find-deprecated',
|
758
|
+
until: '2.0.0'
|
759
|
+
});
|
758
760
|
return this.urlForFind(id, modelName, snapshot);
|
759
761
|
}
|
760
762
|
return this._buildURL(modelName, id);
|
@@ -786,7 +788,10 @@
|
|
786
788
|
*/
|
787
789
|
urlForQuery: function (query, modelName) {
|
788
790
|
if (this.urlForFindQuery !== ember$data$lib$adapters$build$url$mixin$$urlForFindQuery) {
|
789
|
-
Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.'
|
791
|
+
Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.', false, {
|
792
|
+
id: 'ds.adapter.url-for-find-query-deprecated',
|
793
|
+
until: '2.0.0'
|
794
|
+
});
|
790
795
|
return this.urlForFindQuery(query, modelName);
|
791
796
|
}
|
792
797
|
return this._buildURL(modelName);
|
@@ -870,21 +875,16 @@
|
|
870
875
|
if (path) {
|
871
876
|
// Protocol relative url
|
872
877
|
//jscs:disable disallowEmptyBlocks
|
873
|
-
if (/^\/\//.test(path)) {
|
874
|
-
//
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
}
|
884
|
-
// Relative path
|
885
|
-
} else if (!/^http(s)?:\/\//.test(path)) {
|
886
|
-
url.push(parentURL);
|
887
|
-
}
|
878
|
+
if (/^\/\//.test(path)) {} else if (path.charAt(0) === '/') {
|
879
|
+
//jscs:enable disallowEmptyBlocks
|
880
|
+
if (host) {
|
881
|
+
path = path.slice(1);
|
882
|
+
url.push(host);
|
883
|
+
}
|
884
|
+
// Relative path
|
885
|
+
} else if (!/^http(s)?:\/\//.test(path)) {
|
886
|
+
url.push(parentURL);
|
887
|
+
}
|
888
888
|
} else {
|
889
889
|
if (host) {
|
890
890
|
url.push(host);
|
@@ -928,36 +928,45 @@
|
|
928
928
|
});
|
929
929
|
|
930
930
|
function ember$data$lib$adapters$build$url$mixin$$urlForFind(id, modelName, snapshot) {
|
931
|
-
Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.'
|
931
|
+
Ember.deprecate('BuildURLMixin#urlForFind has been deprecated and renamed to `urlForFindRecord`.', false, {
|
932
|
+
id: 'ds.adapter.url-for-find-deprecated',
|
933
|
+
until: '2.0.0'
|
934
|
+
});
|
935
|
+
|
932
936
|
return this._buildURL(modelName, id);
|
933
937
|
}
|
934
938
|
|
935
939
|
function ember$data$lib$adapters$build$url$mixin$$urlForFindQuery(query, modelName) {
|
936
|
-
Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.'
|
940
|
+
Ember.deprecate('BuildURLMixin#urlForFindQuery has been deprecated and renamed to `urlForQuery`.', false, {
|
941
|
+
id: 'ds.adapter.url-for-find-query-deprecated',
|
942
|
+
until: '2.0.0'
|
943
|
+
});
|
937
944
|
return this._buildURL(modelName);
|
938
945
|
}
|
939
946
|
|
940
947
|
var ember$data$lib$adapters$build$url$mixin$$default = ember$data$lib$adapters$build$url$mixin$$BuildURLMixin;
|
941
948
|
|
942
|
-
|
949
|
+
var ember$data$lib$adapters$rest$adapter$$get = Ember.get;
|
950
|
+
var ember$data$lib$adapters$rest$adapter$$set = Ember.set;
|
951
|
+
var ember$data$lib$adapters$rest$adapter$$forEach = Ember.ArrayPolyfills.forEach;/**
|
943
952
|
The REST adapter allows your store to communicate with an HTTP server by
|
944
953
|
transmitting JSON via XHR. Most Ember.js apps that consume a JSON API
|
945
954
|
should use the REST adapter.
|
946
|
-
|
955
|
+
|
947
956
|
This adapter is designed around the idea that the JSON exchanged with
|
948
957
|
the server should be conventional.
|
949
|
-
|
958
|
+
|
950
959
|
## JSON Structure
|
951
|
-
|
960
|
+
|
952
961
|
The REST adapter expects the JSON returned from your server to follow
|
953
962
|
these conventions.
|
954
|
-
|
963
|
+
|
955
964
|
### Object Root
|
956
|
-
|
965
|
+
|
957
966
|
The JSON payload should be an object that contains the record inside a
|
958
967
|
root property. For example, in response to a `GET` request for
|
959
968
|
`/posts/1`, the JSON should look like this:
|
960
|
-
|
969
|
+
|
961
970
|
```js
|
962
971
|
{
|
963
972
|
"post": {
|
@@ -967,10 +976,10 @@
|
|
967
976
|
}
|
968
977
|
}
|
969
978
|
```
|
970
|
-
|
979
|
+
|
971
980
|
Similarly, in response to a `GET` request for `/posts`, the JSON should
|
972
981
|
look like this:
|
973
|
-
|
982
|
+
|
974
983
|
```js
|
975
984
|
{
|
976
985
|
"posts": [
|
@@ -987,26 +996,26 @@
|
|
987
996
|
]
|
988
997
|
}
|
989
998
|
```
|
990
|
-
|
999
|
+
|
991
1000
|
### Conventional Names
|
992
|
-
|
1001
|
+
|
993
1002
|
Attribute names in your JSON payload should be the camelCased versions of
|
994
1003
|
the attributes in your Ember.js models.
|
995
|
-
|
1004
|
+
|
996
1005
|
For example, if you have a `Person` model:
|
997
|
-
|
1006
|
+
|
998
1007
|
```app/models/person.js
|
999
1008
|
import DS from 'ember-data';
|
1000
|
-
|
1009
|
+
|
1001
1010
|
export default DS.Model.extend({
|
1002
1011
|
firstName: DS.attr('string'),
|
1003
1012
|
lastName: DS.attr('string'),
|
1004
1013
|
occupation: DS.attr('string')
|
1005
1014
|
});
|
1006
1015
|
```
|
1007
|
-
|
1016
|
+
|
1008
1017
|
The JSON returned should look like this:
|
1009
|
-
|
1018
|
+
|
1010
1019
|
```js
|
1011
1020
|
{
|
1012
1021
|
"person": {
|
@@ -1017,45 +1026,45 @@
|
|
1017
1026
|
}
|
1018
1027
|
}
|
1019
1028
|
```
|
1020
|
-
|
1029
|
+
|
1021
1030
|
## Customization
|
1022
|
-
|
1031
|
+
|
1023
1032
|
### Endpoint path customization
|
1024
|
-
|
1033
|
+
|
1025
1034
|
Endpoint paths can be prefixed with a `namespace` by setting the namespace
|
1026
1035
|
property on the adapter:
|
1027
|
-
|
1036
|
+
|
1028
1037
|
```app/adapters/application.js
|
1029
1038
|
import DS from 'ember-data';
|
1030
|
-
|
1039
|
+
|
1031
1040
|
export default DS.RESTAdapter.extend({
|
1032
1041
|
namespace: 'api/1'
|
1033
1042
|
});
|
1034
1043
|
```
|
1035
1044
|
Requests for `App.Person` would now target `/api/1/people/1`.
|
1036
|
-
|
1045
|
+
|
1037
1046
|
### Host customization
|
1038
|
-
|
1047
|
+
|
1039
1048
|
An adapter can target other hosts by setting the `host` property.
|
1040
|
-
|
1049
|
+
|
1041
1050
|
```app/adapters/application.js
|
1042
1051
|
import DS from 'ember-data';
|
1043
|
-
|
1052
|
+
|
1044
1053
|
export default DS.RESTAdapter.extend({
|
1045
1054
|
host: 'https://api.example.com'
|
1046
1055
|
});
|
1047
1056
|
```
|
1048
|
-
|
1057
|
+
|
1049
1058
|
### Headers customization
|
1050
|
-
|
1059
|
+
|
1051
1060
|
Some APIs require HTTP headers, e.g. to provide an API key. Arbitrary
|
1052
1061
|
headers can be set as key/value pairs on the `RESTAdapter`'s `headers`
|
1053
1062
|
object and Ember Data will send them along with each ajax request.
|
1054
|
-
|
1055
|
-
|
1063
|
+
|
1064
|
+
|
1056
1065
|
```app/adapters/application.js
|
1057
1066
|
import DS from 'ember-data';
|
1058
|
-
|
1067
|
+
|
1059
1068
|
export default DS.RESTAdapter.extend({
|
1060
1069
|
headers: {
|
1061
1070
|
"API_KEY": "secret key",
|
@@ -1063,14 +1072,14 @@
|
|
1063
1072
|
}
|
1064
1073
|
});
|
1065
1074
|
```
|
1066
|
-
|
1075
|
+
|
1067
1076
|
`headers` can also be used as a computed property to support dynamic
|
1068
1077
|
headers. In the example below, the `session` object has been
|
1069
1078
|
injected into an adapter by Ember's container.
|
1070
|
-
|
1079
|
+
|
1071
1080
|
```app/adapters/application.js
|
1072
1081
|
import DS from 'ember-data';
|
1073
|
-
|
1082
|
+
|
1074
1083
|
export default DS.RESTAdapter.extend({
|
1075
1084
|
headers: function() {
|
1076
1085
|
return {
|
@@ -1080,17 +1089,17 @@
|
|
1080
1089
|
}.property("session.authToken")
|
1081
1090
|
});
|
1082
1091
|
```
|
1083
|
-
|
1092
|
+
|
1084
1093
|
In some cases, your dynamic headers may require data from some
|
1085
1094
|
object outside of Ember's observer system (for example
|
1086
1095
|
`document.cookie`). You can use the
|
1087
1096
|
[volatile](/api/classes/Ember.ComputedProperty.html#method_volatile)
|
1088
1097
|
function to set the property into a non-cached mode causing the headers to
|
1089
1098
|
be recomputed with every request.
|
1090
|
-
|
1099
|
+
|
1091
1100
|
```app/adapters/application.js
|
1092
1101
|
import DS from 'ember-data';
|
1093
|
-
|
1102
|
+
|
1094
1103
|
export default DS.RESTAdapter.extend({
|
1095
1104
|
headers: function() {
|
1096
1105
|
return {
|
@@ -1100,17 +1109,15 @@
|
|
1100
1109
|
}.property().volatile()
|
1101
1110
|
});
|
1102
1111
|
```
|
1103
|
-
|
1112
|
+
|
1104
1113
|
@class RESTAdapter
|
1105
1114
|
@constructor
|
1106
1115
|
@namespace DS
|
1107
1116
|
@extends DS.Adapter
|
1108
1117
|
@uses DS.BuildURLMixin
|
1109
1118
|
*/
|
1110
|
-
var ember$data$lib$adapters$rest$adapter$$
|
1111
|
-
|
1112
|
-
var ember$data$lib$adapters$rest$adapter$$forEach = Ember.ArrayPolyfills.forEach;var ember$data$lib$adapters$rest$adapter$$RestAdapter = ember$data$lib$system$adapter$$default.extend(ember$data$lib$adapters$build$url$mixin$$default, {
|
1113
|
-
defaultSerializer: '-rest',
|
1119
|
+
var ember$data$lib$adapters$rest$adapter$$RestAdapter = ember$data$lib$system$adapter$$default.extend(ember$data$lib$adapters$build$url$mixin$$default, {
|
1120
|
+
defaultSerializer: "-rest",
|
1114
1121
|
|
1115
1122
|
/**
|
1116
1123
|
By default, the RESTAdapter will send the query params sorted alphabetically to the
|
@@ -1252,8 +1259,11 @@
|
|
1252
1259
|
@deprecated Use [findRecord](#method_findRecord) instead
|
1253
1260
|
*/
|
1254
1261
|
find: function (store, type, id, snapshot) {
|
1255
|
-
Ember.deprecate(
|
1256
|
-
|
1262
|
+
Ember.deprecate("RestAdapter#find has been deprecated and renamed to `findRecord`.", false, {
|
1263
|
+
id: "ds.adapter.find-renamed-to-find-record",
|
1264
|
+
until: "2.0.0"
|
1265
|
+
});
|
1266
|
+
return this.ajax(this.buildURL(type.modelName, id, snapshot, "find"), "GET");
|
1257
1267
|
},
|
1258
1268
|
|
1259
1269
|
/**
|
@@ -1272,10 +1282,13 @@
|
|
1272
1282
|
findRecord: function (store, type, id, snapshot) {
|
1273
1283
|
var find = ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype.find;
|
1274
1284
|
if (find !== this.find) {
|
1275
|
-
Ember.deprecate(
|
1285
|
+
Ember.deprecate("RestAdapter#find has been deprecated and renamed to `findRecord`.", false, {
|
1286
|
+
id: "ds.adapter.find-renamed-to-find-record",
|
1287
|
+
until: "2.0.0"
|
1288
|
+
});
|
1276
1289
|
return this.find(store, type, id, snapshot);
|
1277
1290
|
}
|
1278
|
-
return this.ajax(this.buildURL(type.modelName, id, snapshot,
|
1291
|
+
return this.ajax(this.buildURL(type.modelName, id, snapshot, "findRecord"), "GET");
|
1279
1292
|
},
|
1280
1293
|
|
1281
1294
|
/**
|
@@ -1297,9 +1310,9 @@
|
|
1297
1310
|
query = { since: sinceToken };
|
1298
1311
|
}
|
1299
1312
|
|
1300
|
-
url = this.buildURL(type.modelName, null, null,
|
1313
|
+
url = this.buildURL(type.modelName, null, null, "findAll");
|
1301
1314
|
|
1302
|
-
return this.ajax(url,
|
1315
|
+
return this.ajax(url, "GET", { data: query });
|
1303
1316
|
},
|
1304
1317
|
|
1305
1318
|
/**
|
@@ -1318,14 +1331,17 @@
|
|
1318
1331
|
@deprecated Use [query](#method_query) instead
|
1319
1332
|
*/
|
1320
1333
|
findQuery: function (store, type, query) {
|
1321
|
-
Ember.deprecate(
|
1322
|
-
|
1334
|
+
Ember.deprecate("RestAdapter#findQuery has been deprecated and renamed to `query`.", false, {
|
1335
|
+
id: "ds.adapter.find-query-renamed-to-query",
|
1336
|
+
until: "2.0.0"
|
1337
|
+
});
|
1338
|
+
var url = this.buildURL(type.modelName, null, null, "findQuery", query);
|
1323
1339
|
|
1324
1340
|
if (this.sortQueryParams) {
|
1325
1341
|
query = this.sortQueryParams(query);
|
1326
1342
|
}
|
1327
1343
|
|
1328
|
-
return this.ajax(url,
|
1344
|
+
return this.ajax(url, "GET", { data: query });
|
1329
1345
|
},
|
1330
1346
|
|
1331
1347
|
/**
|
@@ -1345,17 +1361,45 @@
|
|
1345
1361
|
query: function (store, type, query) {
|
1346
1362
|
var findQuery = ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype.findQuery;
|
1347
1363
|
if (findQuery !== this.findQuery) {
|
1348
|
-
Ember.deprecate(
|
1364
|
+
Ember.deprecate("RestAdapter#findQuery has been deprecated and renamed to `query`.", false, {
|
1365
|
+
id: "ds.adapter.find-query-renamed-to-query",
|
1366
|
+
until: "2.0.0"
|
1367
|
+
});
|
1349
1368
|
return this.findQuery(store, type, query);
|
1350
1369
|
}
|
1351
1370
|
|
1352
|
-
var url = this.buildURL(type.modelName, null, null,
|
1371
|
+
var url = this.buildURL(type.modelName, null, null, "query", query);
|
1353
1372
|
|
1354
1373
|
if (this.sortQueryParams) {
|
1355
1374
|
query = this.sortQueryParams(query);
|
1356
1375
|
}
|
1357
1376
|
|
1358
|
-
return this.ajax(url,
|
1377
|
+
return this.ajax(url, "GET", { data: query });
|
1378
|
+
},
|
1379
|
+
|
1380
|
+
/**
|
1381
|
+
Called by the store in order to fetch a JSON object for
|
1382
|
+
the record that matches a particular query.
|
1383
|
+
The `queryRecord` method makes an Ajax (HTTP GET) request to a URL
|
1384
|
+
computed by `buildURL`, and returns a promise for the resulting
|
1385
|
+
payload.
|
1386
|
+
The `query` argument is a simple JavaScript object that will be passed directly
|
1387
|
+
to the server as parameters.
|
1388
|
+
@private
|
1389
|
+
@method queryRecord
|
1390
|
+
@param {DS.Store} store
|
1391
|
+
@param {DS.Model} type
|
1392
|
+
@param {Object} query
|
1393
|
+
@return {Promise} promise
|
1394
|
+
*/
|
1395
|
+
queryRecord: function (store, type, query) {
|
1396
|
+
var url = this.buildURL(type.modelName, null, null, "queryRecord", query);
|
1397
|
+
|
1398
|
+
if (this.sortQueryParams) {
|
1399
|
+
query = this.sortQueryParams(query);
|
1400
|
+
}
|
1401
|
+
|
1402
|
+
return this.ajax(url, "GET", { data: query });
|
1359
1403
|
},
|
1360
1404
|
|
1361
1405
|
/**
|
@@ -1385,8 +1429,8 @@
|
|
1385
1429
|
@return {Promise} promise
|
1386
1430
|
*/
|
1387
1431
|
findMany: function (store, type, ids, snapshots) {
|
1388
|
-
var url = this.buildURL(type.modelName, ids, snapshots,
|
1389
|
-
return this.ajax(url,
|
1432
|
+
var url = this.buildURL(type.modelName, ids, snapshots, "findMany");
|
1433
|
+
return this.ajax(url, "GET", { data: { ids: ids } });
|
1390
1434
|
},
|
1391
1435
|
|
1392
1436
|
/**
|
@@ -1415,9 +1459,9 @@
|
|
1415
1459
|
var id = snapshot.id;
|
1416
1460
|
var type = snapshot.modelName;
|
1417
1461
|
|
1418
|
-
url = this.urlPrefix(url, this.buildURL(type, id, null,
|
1462
|
+
url = this.urlPrefix(url, this.buildURL(type, id, null, "findHasMany"));
|
1419
1463
|
|
1420
|
-
return this.ajax(url,
|
1464
|
+
return this.ajax(url, "GET");
|
1421
1465
|
},
|
1422
1466
|
|
1423
1467
|
/**
|
@@ -1446,8 +1490,8 @@
|
|
1446
1490
|
var id = snapshot.id;
|
1447
1491
|
var type = snapshot.modelName;
|
1448
1492
|
|
1449
|
-
url = this.urlPrefix(url, this.buildURL(type, id, null,
|
1450
|
-
return this.ajax(url,
|
1493
|
+
url = this.urlPrefix(url, this.buildURL(type, id, null, "findBelongsTo"));
|
1494
|
+
return this.ajax(url, "GET");
|
1451
1495
|
},
|
1452
1496
|
|
1453
1497
|
/**
|
@@ -1466,7 +1510,7 @@
|
|
1466
1510
|
createRecord: function (store, type, snapshot) {
|
1467
1511
|
var data = {};
|
1468
1512
|
var serializer = store.serializerFor(type.modelName);
|
1469
|
-
var url = this.buildURL(type.modelName, null, snapshot,
|
1513
|
+
var url = this.buildURL(type.modelName, null, snapshot, "createRecord");
|
1470
1514
|
|
1471
1515
|
serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
|
1472
1516
|
|
@@ -1493,7 +1537,7 @@
|
|
1493
1537
|
serializer.serializeIntoHash(data, type, snapshot);
|
1494
1538
|
|
1495
1539
|
var id = snapshot.id;
|
1496
|
-
var url = this.buildURL(type.modelName, id, snapshot,
|
1540
|
+
var url = this.buildURL(type.modelName, id, snapshot, "updateRecord");
|
1497
1541
|
|
1498
1542
|
return this.ajax(url, "PUT", { data: data });
|
1499
1543
|
},
|
@@ -1510,24 +1554,24 @@
|
|
1510
1554
|
deleteRecord: function (store, type, snapshot) {
|
1511
1555
|
var id = snapshot.id;
|
1512
1556
|
|
1513
|
-
return this.ajax(this.buildURL(type.modelName, id, snapshot,
|
1557
|
+
return this.ajax(this.buildURL(type.modelName, id, snapshot, "deleteRecord"), "DELETE");
|
1514
1558
|
},
|
1515
1559
|
|
1516
1560
|
_stripIDFromURL: function (store, snapshot) {
|
1517
1561
|
var url = this.buildURL(snapshot.modelName, snapshot.id, snapshot);
|
1518
1562
|
|
1519
|
-
var expandedURL = url.split(
|
1563
|
+
var expandedURL = url.split("/");
|
1520
1564
|
//Case when the url is of the format ...something/:id
|
1521
1565
|
var lastSegment = expandedURL[expandedURL.length - 1];
|
1522
1566
|
var id = snapshot.id;
|
1523
1567
|
if (lastSegment === id) {
|
1524
1568
|
expandedURL[expandedURL.length - 1] = "";
|
1525
|
-
} else if (ember$data$lib$adapters$rest$adapter$$endsWith(lastSegment,
|
1569
|
+
} else if (ember$data$lib$adapters$rest$adapter$$endsWith(lastSegment, "?id=" + id)) {
|
1526
1570
|
//Case when the url is of the format ...something?id=:id
|
1527
1571
|
expandedURL[expandedURL.length - 1] = lastSegment.substring(0, lastSegment.length - id.length - 1);
|
1528
1572
|
}
|
1529
1573
|
|
1530
|
-
return expandedURL.join(
|
1574
|
+
return expandedURL.join("/");
|
1531
1575
|
},
|
1532
1576
|
|
1533
1577
|
// http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
|
@@ -1586,7 +1630,7 @@
|
|
1586
1630
|
|
1587
1631
|
var groupsArray = [];
|
1588
1632
|
groups.forEach(function (group, key) {
|
1589
|
-
var paramNameLength =
|
1633
|
+
var paramNameLength = "&ids%5B%5D=".length;
|
1590
1634
|
var splitGroups = splitGroupToFitInUrl(group, maxURLLength, paramNameLength);
|
1591
1635
|
|
1592
1636
|
ember$data$lib$adapters$rest$adapter$$forEach.call(splitGroups, function (splitGroup) {
|
@@ -1706,7 +1750,10 @@
|
|
1706
1750
|
var response = undefined;
|
1707
1751
|
|
1708
1752
|
if (adapter.ajaxSuccess) {
|
1709
|
-
Ember.deprecate("`ajaxSuccess` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead."
|
1753
|
+
Ember.deprecate("`ajaxSuccess` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.", false, {
|
1754
|
+
id: "ds.adapter.ajax-success-deprecated",
|
1755
|
+
until: "2.0.0"
|
1756
|
+
});
|
1710
1757
|
response = adapter.ajaxSuccess(jqXHR, payload);
|
1711
1758
|
}
|
1712
1759
|
|
@@ -1725,16 +1772,19 @@
|
|
1725
1772
|
var error = undefined;
|
1726
1773
|
|
1727
1774
|
if (adapter.ajaxError) {
|
1728
|
-
Ember.deprecate("`ajaxError` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead."
|
1775
|
+
Ember.deprecate("`ajaxError` has been deprecated. Use `isSuccess`, `isInvalid` or `handleResponse` instead.", false, {
|
1776
|
+
id: "ds.adapter.ajax-error-deprecated",
|
1777
|
+
until: "2.0.0"
|
1778
|
+
});
|
1729
1779
|
error = adapter.ajaxError(jqXHR, textStatus, errorThrown);
|
1730
1780
|
}
|
1731
1781
|
|
1732
1782
|
if (!(error instanceof Error)) {
|
1733
1783
|
if (errorThrown instanceof Error) {
|
1734
1784
|
error = errorThrown;
|
1735
|
-
} else if (textStatus ===
|
1785
|
+
} else if (textStatus === "timeout") {
|
1736
1786
|
error = new ember$data$lib$adapters$errors$$TimeoutError();
|
1737
|
-
} else if (textStatus ===
|
1787
|
+
} else if (textStatus === "abort") {
|
1738
1788
|
error = new ember$data$lib$adapters$errors$$AbortError();
|
1739
1789
|
} else {
|
1740
1790
|
error = adapter.handleResponse(jqXHR.status, ember$data$lib$adapters$rest$adapter$$parseResponseHeaders(jqXHR.getAllResponseHeaders()), adapter.parseErrorResponse(jqXHR.responseText) || errorThrown);
|
@@ -1745,7 +1795,7 @@
|
|
1745
1795
|
};
|
1746
1796
|
|
1747
1797
|
Ember.$.ajax(hash);
|
1748
|
-
},
|
1798
|
+
}, "DS: RESTAdapter#ajax " + type + " to " + url);
|
1749
1799
|
},
|
1750
1800
|
|
1751
1801
|
/**
|
@@ -1760,15 +1810,15 @@
|
|
1760
1810
|
var hash = options || {};
|
1761
1811
|
hash.url = url;
|
1762
1812
|
hash.type = type;
|
1763
|
-
hash.dataType =
|
1813
|
+
hash.dataType = "json";
|
1764
1814
|
hash.context = this;
|
1765
1815
|
|
1766
|
-
if (hash.data && type !==
|
1767
|
-
hash.contentType =
|
1816
|
+
if (hash.data && type !== "GET") {
|
1817
|
+
hash.contentType = "application/json; charset=utf-8";
|
1768
1818
|
hash.data = JSON.stringify(hash.data);
|
1769
1819
|
}
|
1770
1820
|
|
1771
|
-
var headers = ember$data$lib$adapters$rest$adapter$$get(this,
|
1821
|
+
var headers = ember$data$lib$adapters$rest$adapter$$get(this, "headers");
|
1772
1822
|
if (headers !== undefined) {
|
1773
1823
|
hash.beforeSend = function (xhr) {
|
1774
1824
|
ember$data$lib$adapters$rest$adapter$$forEach.call(ember$data$lib$system$object$polyfills$$keysFunc(headers), function (key) {
|
@@ -1805,7 +1855,7 @@
|
|
1805
1855
|
@return {Object} errors payload
|
1806
1856
|
*/
|
1807
1857
|
normalizeErrorResponse: function (status, headers, payload) {
|
1808
|
-
if (payload && typeof payload ===
|
1858
|
+
if (payload && typeof payload === "object" && payload.errors) {
|
1809
1859
|
return payload.errors;
|
1810
1860
|
} else {
|
1811
1861
|
return [{
|
@@ -1823,12 +1873,12 @@
|
|
1823
1873
|
return headers;
|
1824
1874
|
}
|
1825
1875
|
|
1826
|
-
var headerPairs = headerStr.split(
|
1876
|
+
var headerPairs = headerStr.split("\r\n");
|
1827
1877
|
for (var i = 0; i < headerPairs.length; i++) {
|
1828
1878
|
var headerPair = headerPairs[i];
|
1829
1879
|
// Can't use split() here because it does the wrong thing
|
1830
1880
|
// if the header value has the string ": " in it.
|
1831
|
-
var index = headerPair.indexOf(
|
1881
|
+
var index = headerPair.indexOf(": ");
|
1832
1882
|
if (index > 0) {
|
1833
1883
|
var key = headerPair.substring(0, index);
|
1834
1884
|
var val = headerPair.substring(index + 2);
|
@@ -1841,7 +1891,7 @@
|
|
1841
1891
|
|
1842
1892
|
//From http://stackoverflow.com/questions/280634/endswith-in-javascript
|
1843
1893
|
function ember$data$lib$adapters$rest$adapter$$endsWith(string, suffix) {
|
1844
|
-
if (typeof String.prototype.endsWith !==
|
1894
|
+
if (typeof String.prototype.endsWith !== "function") {
|
1845
1895
|
return string.indexOf(suffix, string.length - suffix.length) !== -1;
|
1846
1896
|
} else {
|
1847
1897
|
return string.endsWith(suffix);
|
@@ -1849,16 +1899,22 @@
|
|
1849
1899
|
}
|
1850
1900
|
|
1851
1901
|
if (Ember.platform.hasPropertyAccessors) {
|
1852
|
-
Ember.defineProperty(ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype,
|
1902
|
+
Ember.defineProperty(ember$data$lib$adapters$rest$adapter$$RestAdapter.prototype, "maxUrlLength", {
|
1853
1903
|
enumerable: false,
|
1854
1904
|
get: function () {
|
1855
|
-
Ember.deprecate(
|
1905
|
+
Ember.deprecate("maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.", false, {
|
1906
|
+
id: "ds.adapter.max-url-length-deprecated-case",
|
1907
|
+
until: "2.0.0"
|
1908
|
+
});
|
1856
1909
|
return this.maxURLLength;
|
1857
1910
|
},
|
1858
1911
|
|
1859
1912
|
set: function (value) {
|
1860
|
-
Ember.deprecate(
|
1861
|
-
|
1913
|
+
Ember.deprecate("maxUrlLength has been deprecated (wrong casing). You should use maxURLLength instead.", false, {
|
1914
|
+
id: "ds.adapter.max-url-length-deprecated-case",
|
1915
|
+
until: "2.0.0"
|
1916
|
+
});
|
1917
|
+
ember$data$lib$adapters$rest$adapter$$set(this, "maxURLLength", value);
|
1862
1918
|
}
|
1863
1919
|
});
|
1864
1920
|
}
|
@@ -1972,7 +2028,7 @@
|
|
1972
2028
|
}
|
1973
2029
|
|
1974
2030
|
if (!Object.create && !Object.create(null).hasOwnProperty) {
|
1975
|
-
throw new Error(
|
2031
|
+
throw new Error('This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg');
|
1976
2032
|
}
|
1977
2033
|
|
1978
2034
|
function ember$inflector$lib$lib$system$inflector$$makeDictionary() {
|
@@ -2108,12 +2164,12 @@
|
|
2108
2164
|
@param {Object} irregular
|
2109
2165
|
*/
|
2110
2166
|
inflect: function (word, typeRules, irregular) {
|
2111
|
-
var inflection, substitution, result, lowercase, wordSplit, firstPhrase, lastWord, isBlank, isCamelized, rule;
|
2167
|
+
var inflection, substitution, result, lowercase, wordSplit, firstPhrase, lastWord, isBlank, isCamelized, isUncountable, isIrregular, rule;
|
2112
2168
|
|
2113
2169
|
isBlank = !word || ember$inflector$lib$lib$system$inflector$$BLANK_REGEX.test(word);
|
2114
2170
|
|
2115
2171
|
isCamelized = ember$inflector$lib$lib$system$inflector$$CAMELIZED_REGEX.test(word);
|
2116
|
-
firstPhrase =
|
2172
|
+
firstPhrase = '';
|
2117
2173
|
|
2118
2174
|
if (isBlank) {
|
2119
2175
|
return word;
|
@@ -2121,28 +2177,25 @@
|
|
2121
2177
|
|
2122
2178
|
lowercase = word.toLowerCase();
|
2123
2179
|
wordSplit = ember$inflector$lib$lib$system$inflector$$LAST_WORD_DASHED_REGEX.exec(word) || ember$inflector$lib$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX.exec(word);
|
2124
|
-
|
2125
2180
|
if (wordSplit) {
|
2126
2181
|
firstPhrase = wordSplit[1];
|
2127
2182
|
lastWord = wordSplit[2].toLowerCase();
|
2128
2183
|
}
|
2129
2184
|
|
2130
|
-
|
2131
|
-
if (lowercase.match(rule + "$")) {
|
2132
|
-
return word;
|
2133
|
-
}
|
2134
|
-
}
|
2185
|
+
isUncountable = this.rules.uncountable[lowercase] || this.rules.uncountable[lastWord];
|
2135
2186
|
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2187
|
+
if (isUncountable) {
|
2188
|
+
return word;
|
2189
|
+
}
|
2139
2190
|
|
2140
|
-
|
2141
|
-
substitution = ember$inflector$lib$lib$system$inflector$$capitalize(substitution);
|
2142
|
-
rule = ember$inflector$lib$lib$system$inflector$$capitalize(rule);
|
2143
|
-
}
|
2191
|
+
isIrregular = irregular && (irregular[lowercase] || irregular[lastWord]);
|
2144
2192
|
|
2145
|
-
|
2193
|
+
if (isIrregular) {
|
2194
|
+
if (irregular[lowercase]) {
|
2195
|
+
return isIrregular;
|
2196
|
+
} else {
|
2197
|
+
isIrregular = isCamelized ? ember$inflector$lib$lib$system$inflector$$capitalize(isIrregular) : isIrregular;
|
2198
|
+
return firstPhrase + isIrregular;
|
2146
2199
|
}
|
2147
2200
|
}
|
2148
2201
|
|
@@ -2271,7 +2324,7 @@
|
|
2271
2324
|
if (count !== 1) {
|
2272
2325
|
word = ember$inflector$lib$lib$system$string$$pluralize(word);
|
2273
2326
|
}
|
2274
|
-
return count +
|
2327
|
+
return count + ' ' + word;
|
2275
2328
|
}
|
2276
2329
|
});
|
2277
2330
|
|
@@ -2302,16 +2355,18 @@
|
|
2302
2355
|
ember$lib$main$$default.String.singularize = ember$inflector$lib$lib$system$string$$singularize;
|
2303
2356
|
var ember$inflector$lib$main$$default = ember$inflector$lib$lib$system$inflector$$default;
|
2304
2357
|
|
2305
|
-
if (typeof define !==
|
2306
|
-
define(
|
2307
|
-
__exports__[
|
2358
|
+
if (typeof define !== "undefined" && define.amd) {
|
2359
|
+
define("ember-inflector", ["exports"], function (__exports__) {
|
2360
|
+
__exports__["default"] = ember$inflector$lib$lib$system$inflector$$default;
|
2308
2361
|
return ember$inflector$lib$lib$system$inflector$$default;
|
2309
2362
|
});
|
2310
|
-
} else if (typeof module !==
|
2311
|
-
module[
|
2363
|
+
} else if (typeof module !== "undefined" && module["exports"]) {
|
2364
|
+
module["exports"] = ember$inflector$lib$lib$system$inflector$$default;
|
2312
2365
|
}
|
2313
2366
|
|
2314
2367
|
var activemodel$adapter$lib$system$active$model$adapter$$_Ember$String = ember$lib$main$$default.String;
|
2368
|
+
var activemodel$adapter$lib$system$active$model$adapter$$decamelize = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.decamelize;
|
2369
|
+
var activemodel$adapter$lib$system$active$model$adapter$$underscore = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.underscore;
|
2315
2370
|
|
2316
2371
|
/**
|
2317
2372
|
@module ember-data
|
@@ -2408,8 +2463,6 @@
|
|
2408
2463
|
@extends DS.RESTAdapter
|
2409
2464
|
**/
|
2410
2465
|
|
2411
|
-
var activemodel$adapter$lib$system$active$model$adapter$$decamelize = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.decamelize;
|
2412
|
-
var activemodel$adapter$lib$system$active$model$adapter$$underscore = activemodel$adapter$lib$system$active$model$adapter$$_Ember$String.underscore;
|
2413
2466
|
var activemodel$adapter$lib$system$active$model$adapter$$ActiveModelAdapter = ember$data$lib$adapters$rest$adapter$$default.extend({
|
2414
2467
|
defaultSerializer: '-active-model',
|
2415
2468
|
/**
|
@@ -2654,7 +2707,7 @@
|
|
2654
2707
|
@type {String}
|
2655
2708
|
@default 'id'
|
2656
2709
|
*/
|
2657
|
-
primaryKey:
|
2710
|
+
primaryKey: "id",
|
2658
2711
|
|
2659
2712
|
/**
|
2660
2713
|
The `attrs` object can be used to declare a simple mapping between
|
@@ -2705,7 +2758,7 @@
|
|
2705
2758
|
@property attrs
|
2706
2759
|
@type {Object}
|
2707
2760
|
*/
|
2708
|
-
mergedProperties: [
|
2761
|
+
mergedProperties: ["attrs"],
|
2709
2762
|
|
2710
2763
|
/**
|
2711
2764
|
Given a subclass of `DS.Model` and a JSON object this method will
|
@@ -2761,25 +2814,25 @@
|
|
2761
2814
|
*/
|
2762
2815
|
normalizeResponse: function (store, primaryModelClass, payload, id, requestType) {
|
2763
2816
|
switch (requestType) {
|
2764
|
-
case
|
2817
|
+
case "findRecord":
|
2765
2818
|
return this.normalizeFindRecordResponse.apply(this, arguments);
|
2766
|
-
case
|
2819
|
+
case "queryRecord":
|
2767
2820
|
return this.normalizeQueryRecordResponse.apply(this, arguments);
|
2768
|
-
case
|
2821
|
+
case "findAll":
|
2769
2822
|
return this.normalizeFindAllResponse.apply(this, arguments);
|
2770
|
-
case
|
2823
|
+
case "findBelongsTo":
|
2771
2824
|
return this.normalizeFindBelongsToResponse.apply(this, arguments);
|
2772
|
-
case
|
2825
|
+
case "findHasMany":
|
2773
2826
|
return this.normalizeFindHasManyResponse.apply(this, arguments);
|
2774
|
-
case
|
2827
|
+
case "findMany":
|
2775
2828
|
return this.normalizeFindManyResponse.apply(this, arguments);
|
2776
|
-
case
|
2829
|
+
case "query":
|
2777
2830
|
return this.normalizeQueryResponse.apply(this, arguments);
|
2778
|
-
case
|
2831
|
+
case "createRecord":
|
2779
2832
|
return this.normalizeCreateRecordResponse.apply(this, arguments);
|
2780
|
-
case
|
2833
|
+
case "deleteRecord":
|
2781
2834
|
return this.normalizeDeleteRecordResponse.apply(this, arguments);
|
2782
|
-
case
|
2835
|
+
case "updateRecord":
|
2783
2836
|
return this.normalizeUpdateRecordResponse.apply(this, arguments);
|
2784
2837
|
}
|
2785
2838
|
},
|
@@ -2974,7 +3027,7 @@
|
|
2974
3027
|
|
2975
3028
|
var meta = this.extractMeta(store, primaryModelClass, payload);
|
2976
3029
|
if (meta) {
|
2977
|
-
Ember.assert(
|
3030
|
+
Ember.assert("The `meta` returned from `extractMeta` has to be an object, not \"" + Ember.typeOf(meta) + "\".", Ember.typeOf(meta) === "object");
|
2978
3031
|
documentHash.meta = meta;
|
2979
3032
|
}
|
2980
3033
|
|
@@ -3038,7 +3091,7 @@
|
|
3038
3091
|
@return {Object}
|
3039
3092
|
*/
|
3040
3093
|
normalize: function (typeClass, hash) {
|
3041
|
-
if (this.get(
|
3094
|
+
if (this.get("isNewSerializerAPI")) {
|
3042
3095
|
return ember$data$lib$serializers$json$serializer$$_newNormalize.apply(this, arguments);
|
3043
3096
|
}
|
3044
3097
|
|
@@ -3063,7 +3116,7 @@
|
|
3063
3116
|
@return {String}
|
3064
3117
|
*/
|
3065
3118
|
extractId: function (modelClass, resourceHash) {
|
3066
|
-
var primaryKey = ember$data$lib$serializers$json$serializer$$get(this,
|
3119
|
+
var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, "primaryKey");
|
3067
3120
|
var id = resourceHash[primaryKey];
|
3068
3121
|
return ember$data$lib$system$coerce$id$$default(id);
|
3069
3122
|
},
|
@@ -3081,7 +3134,7 @@
|
|
3081
3134
|
var attributes = {};
|
3082
3135
|
|
3083
3136
|
modelClass.eachAttribute(function (key) {
|
3084
|
-
attributeKey = this.keyForAttribute(key,
|
3137
|
+
attributeKey = this.keyForAttribute(key, "deserialize");
|
3085
3138
|
if (resourceHash.hasOwnProperty(attributeKey)) {
|
3086
3139
|
attributes[key] = resourceHash[attributeKey];
|
3087
3140
|
}
|
@@ -3107,7 +3160,7 @@
|
|
3107
3160
|
is polymorphic. It could however also be embedded resources that the
|
3108
3161
|
EmbeddedRecordsMixin has be able to process.
|
3109
3162
|
*/
|
3110
|
-
if (Ember.typeOf(relationshipHash) ===
|
3163
|
+
if (Ember.typeOf(relationshipHash) === "object") {
|
3111
3164
|
if (relationshipHash.id) {
|
3112
3165
|
relationshipHash.id = ember$data$lib$system$coerce$id$$default(relationshipHash.id);
|
3113
3166
|
}
|
@@ -3132,13 +3185,13 @@
|
|
3132
3185
|
|
3133
3186
|
modelClass.eachRelationship(function (key, relationshipMeta) {
|
3134
3187
|
var relationship = null;
|
3135
|
-
var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind,
|
3188
|
+
var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind, "deserialize");
|
3136
3189
|
if (resourceHash.hasOwnProperty(relationshipKey)) {
|
3137
3190
|
var data = null;
|
3138
3191
|
var relationshipHash = resourceHash[relationshipKey];
|
3139
|
-
if (relationshipMeta.kind ===
|
3192
|
+
if (relationshipMeta.kind === "belongsTo") {
|
3140
3193
|
data = this.extractRelationship(relationshipMeta.type, relationshipHash);
|
3141
|
-
} else if (relationshipMeta.kind ===
|
3194
|
+
} else if (relationshipMeta.kind === "hasMany") {
|
3142
3195
|
data = Ember.A(relationshipHash).map(function (item) {
|
3143
3196
|
return this.extractRelationship(relationshipMeta.type, item);
|
3144
3197
|
}, this);
|
@@ -3202,7 +3255,7 @@
|
|
3202
3255
|
|
3203
3256
|
if (this.keyForAttribute) {
|
3204
3257
|
typeClass.eachAttribute(function (key) {
|
3205
|
-
payloadKey = this.keyForAttribute(key,
|
3258
|
+
payloadKey = this.keyForAttribute(key, "deserialize");
|
3206
3259
|
if (key === payloadKey) {
|
3207
3260
|
return;
|
3208
3261
|
}
|
@@ -3225,7 +3278,7 @@
|
|
3225
3278
|
|
3226
3279
|
if (this.keyForRelationship) {
|
3227
3280
|
typeClass.eachRelationship(function (key, relationship) {
|
3228
|
-
payloadKey = this.keyForRelationship(key, relationship.kind,
|
3281
|
+
payloadKey = this.keyForRelationship(key, relationship.kind, "deserialize");
|
3229
3282
|
if (key === payloadKey) {
|
3230
3283
|
return;
|
3231
3284
|
}
|
@@ -3244,7 +3297,7 @@
|
|
3244
3297
|
@private
|
3245
3298
|
*/
|
3246
3299
|
normalizeUsingDeclaredMapping: function (typeClass, hash) {
|
3247
|
-
var attrs = ember$data$lib$serializers$json$serializer$$get(this,
|
3300
|
+
var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
|
3248
3301
|
var payloadKey, key;
|
3249
3302
|
|
3250
3303
|
if (attrs) {
|
@@ -3267,9 +3320,9 @@
|
|
3267
3320
|
@private
|
3268
3321
|
*/
|
3269
3322
|
normalizeId: function (hash) {
|
3270
|
-
var primaryKey = ember$data$lib$serializers$json$serializer$$get(this,
|
3323
|
+
var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, "primaryKey");
|
3271
3324
|
|
3272
|
-
if (primaryKey ===
|
3325
|
+
if (primaryKey === "id") {
|
3273
3326
|
return;
|
3274
3327
|
}
|
3275
3328
|
|
@@ -3297,7 +3350,7 @@
|
|
3297
3350
|
@return {String} key
|
3298
3351
|
*/
|
3299
3352
|
_getMappedKey: function (key) {
|
3300
|
-
var attrs = ember$data$lib$serializers$json$serializer$$get(this,
|
3353
|
+
var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
|
3301
3354
|
var mappedKey;
|
3302
3355
|
if (attrs && attrs[key]) {
|
3303
3356
|
mappedKey = attrs[key];
|
@@ -3306,7 +3359,7 @@
|
|
3306
3359
|
if (mappedKey.key) {
|
3307
3360
|
mappedKey = mappedKey.key;
|
3308
3361
|
}
|
3309
|
-
if (typeof mappedKey ===
|
3362
|
+
if (typeof mappedKey === "string") {
|
3310
3363
|
key = mappedKey;
|
3311
3364
|
}
|
3312
3365
|
}
|
@@ -3323,7 +3376,7 @@
|
|
3323
3376
|
@return {boolean} true if the key can be serialized
|
3324
3377
|
*/
|
3325
3378
|
_canSerialize: function (key) {
|
3326
|
-
var attrs = ember$data$lib$serializers$json$serializer$$get(this,
|
3379
|
+
var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
|
3327
3380
|
|
3328
3381
|
return !attrs || !attrs[key] || attrs[key].serialize !== false;
|
3329
3382
|
},
|
@@ -3338,7 +3391,7 @@
|
|
3338
3391
|
@return {boolean} true if the key must be serialized
|
3339
3392
|
*/
|
3340
3393
|
_mustSerialize: function (key) {
|
3341
|
-
var attrs = ember$data$lib$serializers$json$serializer$$get(this,
|
3394
|
+
var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
|
3342
3395
|
|
3343
3396
|
return attrs && attrs[key] && attrs[key].serialize === true;
|
3344
3397
|
},
|
@@ -3357,7 +3410,7 @@
|
|
3357
3410
|
if (this._mustSerialize(key)) {
|
3358
3411
|
return true;
|
3359
3412
|
}
|
3360
|
-
return this._canSerialize(key) && (relationshipType ===
|
3413
|
+
return this._canSerialize(key) && (relationshipType === "manyToNone" || relationshipType === "manyToMany");
|
3361
3414
|
},
|
3362
3415
|
|
3363
3416
|
// SERIALIZE
|
@@ -3481,7 +3534,7 @@
|
|
3481
3534
|
var id = snapshot.id;
|
3482
3535
|
|
3483
3536
|
if (id) {
|
3484
|
-
json[ember$data$lib$serializers$json$serializer$$get(this,
|
3537
|
+
json[ember$data$lib$serializers$json$serializer$$get(this, "primaryKey")] = id;
|
3485
3538
|
}
|
3486
3539
|
}
|
3487
3540
|
|
@@ -3490,9 +3543,9 @@
|
|
3490
3543
|
}, this);
|
3491
3544
|
|
3492
3545
|
snapshot.eachRelationship(function (key, relationship) {
|
3493
|
-
if (relationship.kind ===
|
3546
|
+
if (relationship.kind === "belongsTo") {
|
3494
3547
|
this.serializeBelongsTo(snapshot, json, relationship);
|
3495
|
-
} else if (relationship.kind ===
|
3548
|
+
} else if (relationship.kind === "hasMany") {
|
3496
3549
|
this.serializeHasMany(snapshot, json, relationship);
|
3497
3550
|
}
|
3498
3551
|
}, this);
|
@@ -3562,7 +3615,7 @@
|
|
3562
3615
|
var payloadKey = this._getMappedKey(key);
|
3563
3616
|
|
3564
3617
|
if (payloadKey === key && this.keyForAttribute) {
|
3565
|
-
payloadKey = this.keyForAttribute(key,
|
3618
|
+
payloadKey = this.keyForAttribute(key, "serialize");
|
3566
3619
|
}
|
3567
3620
|
|
3568
3621
|
json[payloadKey] = value;
|
@@ -3913,9 +3966,12 @@
|
|
3913
3966
|
@return {Object} json The deserialized payload
|
3914
3967
|
*/
|
3915
3968
|
extractSingle: function (store, typeClass, payload, id, requestType) {
|
3916
|
-
if (!this.get(
|
3917
|
-
this.set(
|
3918
|
-
Ember.deprecate(
|
3969
|
+
if (!this.get("didDeprecateNormalizePayload")) {
|
3970
|
+
this.set("didDeprecateNormalizePayload", true);
|
3971
|
+
Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$JSONSerializer.prototype.normalizePayload, {
|
3972
|
+
id: "ds.serializer.normalize-payload-deprecated",
|
3973
|
+
until: "2.0.0"
|
3974
|
+
});
|
3919
3975
|
}
|
3920
3976
|
var normalizedPayload = this.normalizePayload(payload);
|
3921
3977
|
return this.normalize(typeClass, normalizedPayload);
|
@@ -3944,9 +4000,12 @@
|
|
3944
4000
|
@return {Array} array An array of deserialized objects
|
3945
4001
|
*/
|
3946
4002
|
extractArray: function (store, typeClass, arrayPayload, id, requestType) {
|
3947
|
-
if (!this.get(
|
3948
|
-
this.set(
|
3949
|
-
Ember.deprecate(
|
4003
|
+
if (!this.get("didDeprecateNormalizePayload")) {
|
4004
|
+
this.set("didDeprecateNormalizePayload", true);
|
4005
|
+
Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$JSONSerializer.prototype.normalizePayload, {
|
4006
|
+
id: "ds.serializer.normalize-payload-deprecated",
|
4007
|
+
until: "2.0.0"
|
4008
|
+
});
|
3950
4009
|
}
|
3951
4010
|
var normalizedPayload = this.normalizePayload(arrayPayload);
|
3952
4011
|
var serializer = this;
|
@@ -3978,7 +4037,7 @@
|
|
3978
4037
|
@param {Object} payload
|
3979
4038
|
*/
|
3980
4039
|
extractMeta: function (store, typeClass, payload) {
|
3981
|
-
if (this.get(
|
4040
|
+
if (this.get("isNewSerializerAPI")) {
|
3982
4041
|
return ember$data$lib$serializers$json$serializer$$_newExtractMeta.apply(this, arguments);
|
3983
4042
|
}
|
3984
4043
|
|
@@ -4014,7 +4073,7 @@
|
|
4014
4073
|
@return {Object} json The deserialized errors
|
4015
4074
|
*/
|
4016
4075
|
extractErrors: function (store, typeClass, payload, id) {
|
4017
|
-
if (payload && typeof payload ===
|
4076
|
+
if (payload && typeof payload === "object" && payload.errors) {
|
4018
4077
|
payload = ember$data$lib$adapters$errors$$errorsArrayToHash(payload.errors);
|
4019
4078
|
this.normalizeErrors(typeClass, payload);
|
4020
4079
|
}
|
@@ -4088,7 +4147,7 @@
|
|
4088
4147
|
@return {DS.Transform} transform
|
4089
4148
|
*/
|
4090
4149
|
transformFor: function (attributeType, skipAssertion) {
|
4091
|
-
var transform = this.container.lookup(
|
4150
|
+
var transform = this.container.lookup("transform:" + attributeType);
|
4092
4151
|
Ember.assert("Unable to find transform for '" + attributeType + "'", skipAssertion || !!transform);
|
4093
4152
|
return transform;
|
4094
4153
|
}
|
@@ -4129,7 +4188,7 @@
|
|
4129
4188
|
@private
|
4130
4189
|
*/
|
4131
4190
|
function ember$data$lib$serializers$json$serializer$$_newExtractMeta(store, modelClass, payload) {
|
4132
|
-
if (payload && payload.hasOwnProperty(
|
4191
|
+
if (payload && payload.hasOwnProperty("meta")) {
|
4133
4192
|
var meta = payload.meta;
|
4134
4193
|
delete payload.meta;
|
4135
4194
|
return meta;
|
@@ -4267,97 +4326,13 @@
|
|
4267
4326
|
});
|
4268
4327
|
};
|
4269
4328
|
|
4270
|
-
/**
|
4271
|
-
@module ember-data
|
4272
|
-
*/
|
4273
|
-
|
4274
|
-
/**
|
4275
|
-
Holds validation errors for a given record organized by attribute names.
|
4276
|
-
|
4277
|
-
Every DS.Model has an `errors` property that is an instance of
|
4278
|
-
`DS.Errors`. This can be used to display validation error
|
4279
|
-
messages returned from the server when a `record.save()` rejects.
|
4280
|
-
This works automatically with `DS.ActiveModelAdapter`, but you
|
4281
|
-
can implement [ajaxError](/api/data/classes/DS.RESTAdapter.html#method_ajaxError)
|
4282
|
-
in other adapters as well.
|
4283
|
-
|
4284
|
-
For Example, if you had an `User` model that looked like this:
|
4285
|
-
|
4286
|
-
```app/models/user.js
|
4287
|
-
import DS from 'ember-data';
|
4288
|
-
|
4289
|
-
export default DS.Model.extend({
|
4290
|
-
username: attr('string'),
|
4291
|
-
email: attr('string')
|
4292
|
-
});
|
4293
|
-
```
|
4294
|
-
And you attempted to save a record that did not validate on the backend.
|
4295
|
-
|
4296
|
-
```javascript
|
4297
|
-
var user = store.createRecord('user', {
|
4298
|
-
username: 'tomster',
|
4299
|
-
email: 'invalidEmail'
|
4300
|
-
});
|
4301
|
-
user.save();
|
4302
|
-
```
|
4303
|
-
|
4304
|
-
Your backend data store might return a response that looks like
|
4305
|
-
this. This response will be used to populate the error object.
|
4306
|
-
|
4307
|
-
```javascript
|
4308
|
-
{
|
4309
|
-
"errors": {
|
4310
|
-
"username": ["This username is already taken!"],
|
4311
|
-
"email": ["Doesn't look like a valid email."]
|
4312
|
-
}
|
4313
|
-
}
|
4314
|
-
```
|
4315
|
-
|
4316
|
-
Errors can be displayed to the user by accessing their property name
|
4317
|
-
to get an array of all the error objects for that property. Each
|
4318
|
-
error object is a JavaScript object with two keys:
|
4319
|
-
|
4320
|
-
- `message` A string containing the error message from the backend
|
4321
|
-
- `attribute` The name of the property associated with this error message
|
4322
|
-
|
4323
|
-
```handlebars
|
4324
|
-
<label>Username: {{input value=username}} </label>
|
4325
|
-
{{#each model.errors.username as |error|}}
|
4326
|
-
<div class="error">
|
4327
|
-
{{error.message}}
|
4328
|
-
</div>
|
4329
|
-
{{/each}}
|
4330
|
-
|
4331
|
-
<label>Email: {{input value=email}} </label>
|
4332
|
-
{{#each model.errors.email as |error|}}
|
4333
|
-
<div class="error">
|
4334
|
-
{{error.message}}
|
4335
|
-
</div>
|
4336
|
-
{{/each}}
|
4337
|
-
```
|
4338
|
-
|
4339
|
-
You can also access the special `messages` property on the error
|
4340
|
-
object to get an array of all the error strings.
|
4341
|
-
|
4342
|
-
```handlebars
|
4343
|
-
{{#each model.errors.messages as |message|}}
|
4344
|
-
<div class="error">
|
4345
|
-
{{message}}
|
4346
|
-
</div>
|
4347
|
-
{{/each}}
|
4348
|
-
```
|
4349
|
-
|
4350
|
-
@class Errors
|
4351
|
-
@namespace DS
|
4352
|
-
@extends Ember.Object
|
4353
|
-
@uses Ember.Enumerable
|
4354
|
-
@uses Ember.Evented
|
4355
|
-
*/
|
4356
4329
|
var ember$data$lib$system$model$errors$$get = Ember.get;
|
4330
|
+
var ember$data$lib$system$model$errors$$set = Ember.set;
|
4357
4331
|
var ember$data$lib$system$model$errors$$isEmpty = Ember.isEmpty;
|
4358
4332
|
var ember$data$lib$system$model$errors$$map = Ember.ArrayPolyfills.map;
|
4333
|
+
var ember$data$lib$system$model$errors$$makeArray = Ember.makeArray;
|
4359
4334
|
|
4360
|
-
var ember$data$lib$system$model$errors$$default = Ember.
|
4335
|
+
var ember$data$lib$system$model$errors$$default = Ember.ArrayProxy.extend(Ember.Evented, {
|
4361
4336
|
/**
|
4362
4337
|
Register with target handler
|
4363
4338
|
@method registerHandlers
|
@@ -4439,21 +4414,12 @@
|
|
4439
4414
|
return errors;
|
4440
4415
|
},
|
4441
4416
|
|
4442
|
-
/**
|
4443
|
-
@method nextObject
|
4444
|
-
@private
|
4445
|
-
*/
|
4446
|
-
nextObject: function (index, previousObject, context) {
|
4447
|
-
return ember$data$lib$system$model$errors$$get(this, 'content').objectAt(index);
|
4448
|
-
},
|
4449
|
-
|
4450
4417
|
/**
|
4451
4418
|
Total number of errors.
|
4452
4419
|
@property length
|
4453
4420
|
@type {Number}
|
4454
4421
|
@readOnly
|
4455
4422
|
*/
|
4456
|
-
length: Ember.computed.oneWay('content.length').readOnly(),
|
4457
4423
|
|
4458
4424
|
/**
|
4459
4425
|
@property isEmpty
|
@@ -4479,11 +4445,10 @@
|
|
4479
4445
|
var wasEmpty = ember$data$lib$system$model$errors$$get(this, 'isEmpty');
|
4480
4446
|
|
4481
4447
|
messages = this._findOrCreateMessages(attribute, messages);
|
4482
|
-
|
4448
|
+
this.addObjects(messages);
|
4483
4449
|
ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName').get(attribute).addObjects(messages);
|
4484
4450
|
|
4485
4451
|
this.notifyPropertyChange(attribute);
|
4486
|
-
this.enumerableContentDidChange();
|
4487
4452
|
|
4488
4453
|
if (wasEmpty && !ember$data$lib$system$model$errors$$get(this, 'isEmpty')) {
|
4489
4454
|
this.trigger('becameInvalid');
|
@@ -4497,7 +4462,7 @@
|
|
4497
4462
|
_findOrCreateMessages: function (attribute, messages) {
|
4498
4463
|
var errors = this.errorsFor(attribute);
|
4499
4464
|
|
4500
|
-
return ember$data$lib$system$model$errors$$map.call(
|
4465
|
+
return ember$data$lib$system$model$errors$$map.call(ember$data$lib$system$model$errors$$makeArray(messages), function (message) {
|
4501
4466
|
return errors.findBy('message', message) || {
|
4502
4467
|
attribute: attribute,
|
4503
4468
|
message: message
|
@@ -4538,12 +4503,11 @@
|
|
4538
4503
|
return;
|
4539
4504
|
}
|
4540
4505
|
|
4541
|
-
var content =
|
4542
|
-
ember$data$lib$system$model$errors$$
|
4506
|
+
var content = this.rejectBy('attribute', attribute);
|
4507
|
+
ember$data$lib$system$model$errors$$set(this, 'content', content);
|
4543
4508
|
ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName')["delete"](attribute);
|
4544
4509
|
|
4545
4510
|
this.notifyPropertyChange(attribute);
|
4546
|
-
this.enumerableContentDidChange();
|
4547
4511
|
|
4548
4512
|
if (ember$data$lib$system$model$errors$$get(this, 'isEmpty')) {
|
4549
4513
|
this.trigger('becameValid');
|
@@ -4572,9 +4536,19 @@
|
|
4572
4536
|
return;
|
4573
4537
|
}
|
4574
4538
|
|
4575
|
-
ember$data$lib$system$model$errors$$get(this, '
|
4576
|
-
|
4577
|
-
|
4539
|
+
var errorsByAttributeName = ember$data$lib$system$model$errors$$get(this, 'errorsByAttributeName');
|
4540
|
+
var attributes = Ember.A();
|
4541
|
+
|
4542
|
+
errorsByAttributeName.forEach(function (_, attribute) {
|
4543
|
+
attributes.push(attribute);
|
4544
|
+
});
|
4545
|
+
|
4546
|
+
errorsByAttributeName.clear();
|
4547
|
+
attributes.forEach(function (attribute) {
|
4548
|
+
this.notifyPropertyChange(attribute);
|
4549
|
+
}, this);
|
4550
|
+
|
4551
|
+
this._super();
|
4578
4552
|
|
4579
4553
|
this.trigger('becameValid');
|
4580
4554
|
},
|
@@ -4603,6 +4577,63 @@
|
|
4603
4577
|
}
|
4604
4578
|
});
|
4605
4579
|
|
4580
|
+
var ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
|
4581
|
+
|
4582
|
+
try {
|
4583
|
+
ember$lib$main$$default.computed({
|
4584
|
+
set: function () {},
|
4585
|
+
get: function () {}
|
4586
|
+
});
|
4587
|
+
ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = true;
|
4588
|
+
} catch (e) {
|
4589
|
+
ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = false;
|
4590
|
+
}
|
4591
|
+
|
4592
|
+
var ember$new$computed$lib$utils$can$use$new$syntax$$default = ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
|
4593
|
+
var ember$new$computed$lib$main$$default = ember$new$computed$lib$main$$newComputed;
|
4594
|
+
|
4595
|
+
var ember$new$computed$lib$main$$computed = ember$lib$main$$default.computed;
|
4596
|
+
|
4597
|
+
function ember$new$computed$lib$main$$newComputed() {
|
4598
|
+
var polyfillArguments = [];
|
4599
|
+
var config = arguments[arguments.length - 1];
|
4600
|
+
|
4601
|
+
if (typeof config === 'function' || ember$new$computed$lib$utils$can$use$new$syntax$$default) {
|
4602
|
+
return ember$new$computed$lib$main$$computed.apply(undefined, arguments);
|
4603
|
+
}
|
4604
|
+
|
4605
|
+
for (var i = 0, l = arguments.length - 1; i < l; i++) {
|
4606
|
+
polyfillArguments.push(arguments[i]);
|
4607
|
+
}
|
4608
|
+
|
4609
|
+
var func;
|
4610
|
+
if (config.set) {
|
4611
|
+
func = function (key, value) {
|
4612
|
+
if (arguments.length > 1) {
|
4613
|
+
return config.set.call(this, key, value);
|
4614
|
+
} else {
|
4615
|
+
return config.get.call(this, key);
|
4616
|
+
}
|
4617
|
+
};
|
4618
|
+
} else {
|
4619
|
+
func = function (key) {
|
4620
|
+
return config.get.call(this, key);
|
4621
|
+
};
|
4622
|
+
}
|
4623
|
+
|
4624
|
+
polyfillArguments.push(func);
|
4625
|
+
|
4626
|
+
return ember$new$computed$lib$main$$computed.apply(undefined, polyfillArguments);
|
4627
|
+
}
|
4628
|
+
|
4629
|
+
var ember$new$computed$lib$main$$getKeys = Object.keys || ember$lib$main$$default.keys;
|
4630
|
+
var ember$new$computed$lib$main$$computedKeys = ember$new$computed$lib$main$$getKeys(ember$new$computed$lib$main$$computed);
|
4631
|
+
|
4632
|
+
for (var ember$new$computed$lib$main$$i = 0, ember$new$computed$lib$main$$l = ember$new$computed$lib$main$$computedKeys.length; ember$new$computed$lib$main$$i < ember$new$computed$lib$main$$l; ember$new$computed$lib$main$$i++) {
|
4633
|
+
ember$new$computed$lib$main$$newComputed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]] = ember$new$computed$lib$main$$computed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]];
|
4634
|
+
}
|
4635
|
+
var ember$data$lib$system$model$model$$errorDeprecationShown = false;
|
4636
|
+
|
4606
4637
|
/**
|
4607
4638
|
@module ember-data
|
4608
4639
|
*/
|
@@ -4610,6 +4641,8 @@
|
|
4610
4641
|
var ember$data$lib$system$model$model$$get = Ember.get;
|
4611
4642
|
var ember$data$lib$system$model$model$$forEach = Ember.ArrayPolyfills.forEach;
|
4612
4643
|
var ember$data$lib$system$model$model$$indexOf = Ember.ArrayPolyfills.indexOf;
|
4644
|
+
var ember$data$lib$system$model$model$$merge = Ember.merge;
|
4645
|
+
var ember$data$lib$system$model$model$$copy = Ember.copy;
|
4613
4646
|
|
4614
4647
|
function ember$data$lib$system$model$model$$intersection(array1, array2) {
|
4615
4648
|
var result = [];
|
@@ -4622,9 +4655,9 @@
|
|
4622
4655
|
return result;
|
4623
4656
|
}
|
4624
4657
|
|
4625
|
-
var ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS = [
|
4658
|
+
var ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS = ["currentState", "data", "store"];
|
4626
4659
|
|
4627
|
-
var ember$data$lib$system$model$model$$retrieveFromCurrentState = Ember.computed(
|
4660
|
+
var ember$data$lib$system$model$model$$retrieveFromCurrentState = Ember.computed("currentState", function (key) {
|
4628
4661
|
return ember$data$lib$system$model$model$$get(this._internalModel.currentState, key);
|
4629
4662
|
}).readOnly();
|
4630
4663
|
|
@@ -4709,10 +4742,29 @@
|
|
4709
4742
|
@readOnly
|
4710
4743
|
@deprecated
|
4711
4744
|
*/
|
4712
|
-
isDirty: Ember.computed(
|
4713
|
-
Ember.deprecate(
|
4714
|
-
|
4745
|
+
isDirty: Ember.computed("currentState.isDirty", function () {
|
4746
|
+
Ember.deprecate("DS.Model#isDirty has been deprecated please use hasDirtyAttributes instead", false, {
|
4747
|
+
id: "ds.model.is-dirty-deprecated",
|
4748
|
+
until: "2.0.0"
|
4749
|
+
});
|
4750
|
+
return this.get("currentState.isDirty");
|
4751
|
+
}),
|
4752
|
+
|
4753
|
+
/**
|
4754
|
+
@property error
|
4755
|
+
@type {Boolean}
|
4756
|
+
@deprecated
|
4757
|
+
*/
|
4758
|
+
error: ember$new$computed$lib$main$$default("adapterError", {
|
4759
|
+
get: function () {
|
4760
|
+
if (!ember$data$lib$system$model$model$$errorDeprecationShown) {
|
4761
|
+
Ember.deprecate("DS.Model#error has been deprecated please use adapterError instead");
|
4762
|
+
ember$data$lib$system$model$model$$errorDeprecationShown = true;
|
4763
|
+
}
|
4764
|
+
return Ember.get(this, "adapterError");
|
4765
|
+
}
|
4715
4766
|
}),
|
4767
|
+
|
4716
4768
|
/**
|
4717
4769
|
If this property is `true` the record is in the `dirty` state. The
|
4718
4770
|
record has local changes that have not yet been saved by the
|
@@ -4732,8 +4784,8 @@
|
|
4732
4784
|
@type {Boolean}
|
4733
4785
|
@readOnly
|
4734
4786
|
*/
|
4735
|
-
hasDirtyAttributes: Ember.computed(
|
4736
|
-
return this.get(
|
4787
|
+
hasDirtyAttributes: Ember.computed("currentState.isDirty", function () {
|
4788
|
+
return this.get("currentState.isDirty");
|
4737
4789
|
}),
|
4738
4790
|
/**
|
4739
4791
|
If this property is `true` the record is in the `saving` state. A
|
@@ -4935,9 +4987,9 @@
|
|
4935
4987
|
var errors = ember$data$lib$system$model$errors$$default.create();
|
4936
4988
|
|
4937
4989
|
errors.registerHandlers(this._internalModel, function () {
|
4938
|
-
this.send(
|
4990
|
+
this.send("becameInvalid");
|
4939
4991
|
}, function () {
|
4940
|
-
this.send(
|
4992
|
+
this.send("becameValid");
|
4941
4993
|
});
|
4942
4994
|
|
4943
4995
|
return errors;
|
@@ -4979,7 +5031,7 @@
|
|
4979
5031
|
*/
|
4980
5032
|
toJSON: function (options) {
|
4981
5033
|
// container is for lazy transform lookups
|
4982
|
-
var serializer = this.store.serializerFor(
|
5034
|
+
var serializer = this.store.serializerFor("-default");
|
4983
5035
|
var snapshot = this._internalModel.createSnapshot();
|
4984
5036
|
|
4985
5037
|
return serializer.serialize(snapshot, options);
|
@@ -5039,7 +5091,7 @@
|
|
5039
5091
|
@private
|
5040
5092
|
@type {Object}
|
5041
5093
|
*/
|
5042
|
-
data: Ember.computed.readOnly(
|
5094
|
+
data: Ember.computed.readOnly("_internalModel._data"),
|
5043
5095
|
|
5044
5096
|
//TODO Do we want to deprecate these?
|
5045
5097
|
/**
|
@@ -5161,8 +5213,10 @@
|
|
5161
5213
|
and value is an [oldProp, newProp] array.
|
5162
5214
|
*/
|
5163
5215
|
changedAttributes: function () {
|
5164
|
-
var oldData = ember$data$lib$system$model$model$$get(this._internalModel,
|
5165
|
-
var
|
5216
|
+
var oldData = ember$data$lib$system$model$model$$get(this._internalModel, "_data");
|
5217
|
+
var currentData = ember$data$lib$system$model$model$$get(this._internalModel, "_attributes");
|
5218
|
+
var inFlightData = ember$data$lib$system$model$model$$get(this._internalModel, "_inFlightAttributes");
|
5219
|
+
var newData = ember$data$lib$system$model$model$$merge(ember$data$lib$system$model$model$$copy(inFlightData), currentData);
|
5166
5220
|
var diffData = ember$data$lib$system$object$polyfills$$create(null);
|
5167
5221
|
|
5168
5222
|
var newDataKeys = ember$data$lib$system$object$polyfills$$keysFunc(newData);
|
@@ -5207,7 +5261,10 @@
|
|
5207
5261
|
@deprecated Use `rollbackAttributes()` instead
|
5208
5262
|
*/
|
5209
5263
|
rollback: function () {
|
5210
|
-
Ember.deprecate(
|
5264
|
+
Ember.deprecate("Using model.rollback() has been deprecated. Use model.rollbackAttributes() to discard any unsaved changes to a model.", false, {
|
5265
|
+
id: "ds.model.rollback-deprecated",
|
5266
|
+
until: "2.0.0"
|
5267
|
+
});
|
5211
5268
|
this.rollbackAttributes();
|
5212
5269
|
},
|
5213
5270
|
|
@@ -5237,7 +5294,7 @@
|
|
5237
5294
|
},
|
5238
5295
|
|
5239
5296
|
toStringExtension: function () {
|
5240
|
-
return ember$data$lib$system$model$model$$get(this,
|
5297
|
+
return ember$data$lib$system$model$model$$get(this, "id");
|
5241
5298
|
},
|
5242
5299
|
|
5243
5300
|
/**
|
@@ -5329,7 +5386,7 @@
|
|
5329
5386
|
// rely on the data property.
|
5330
5387
|
willMergeMixin: function (props) {
|
5331
5388
|
var constructor = this.constructor;
|
5332
|
-
Ember.assert(
|
5389
|
+
Ember.assert("`" + ember$data$lib$system$model$model$$intersection(ember$data$lib$system$object$polyfills$$keysFunc(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0] + "` is a reserved property name on DS.Model objects. Please choose a different property name for " + constructor.toString(), !ember$data$lib$system$model$model$$intersection(ember$data$lib$system$object$polyfills$$keysFunc(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0]);
|
5333
5390
|
},
|
5334
5391
|
|
5335
5392
|
attr: function () {
|
@@ -5428,7 +5485,10 @@
|
|
5428
5485
|
}
|
5429
5486
|
return normalizedResponse;
|
5430
5487
|
} else {
|
5431
|
-
Ember.deprecate('Your custom serializer uses the old version of the Serializer API, with `extract` hooks. Please upgrade your serializers to the new Serializer API using `normalizeResponse` hooks instead.'
|
5488
|
+
Ember.deprecate('Your custom serializer uses the old version of the Serializer API, with `extract` hooks. Please upgrade your serializers to the new Serializer API using `normalizeResponse` hooks instead.', false, {
|
5489
|
+
id: 'ds.serializer.extract-hooks-deprecated',
|
5490
|
+
until: '2.0.0'
|
5491
|
+
});
|
5432
5492
|
var serializerPayload = serializer.extract(store, modelClass, payload, id, requestType);
|
5433
5493
|
return ember$data$lib$system$store$serializer$response$$_normalizeSerializerPayload(modelClass, serializerPayload);
|
5434
5494
|
}
|
@@ -5508,7 +5568,7 @@
|
|
5508
5568
|
return value;
|
5509
5569
|
}
|
5510
5570
|
|
5511
|
-
Ember.assert(
|
5571
|
+
Ember.assert('A ' + relationshipMeta.parentType + ' record was pushed into the store with the value of ' + key + ' being ' + Ember.inspect(value) + ', but ' + key + ' is a belongsTo relationship so the value must not be an array. You should probably check your data payload or serializer.', !Ember.isArray(value));
|
5512
5572
|
return { id: '' + value, type: relationshipMeta.type };
|
5513
5573
|
};
|
5514
5574
|
|
@@ -5520,7 +5580,7 @@
|
|
5520
5580
|
}
|
5521
5581
|
} else if (relationshipMeta.kind === 'hasMany') {
|
5522
5582
|
//|| [] because the hasMany could be === null
|
5523
|
-
Ember.assert(
|
5583
|
+
Ember.assert('A ' + relationshipMeta.parentType + ' record was pushed into the store with the value of ' + key + ' being \'' + Ember.inspect(value) + '\', but ' + key + ' is a hasMany relationship so the value must be an array. You should probably check your data payload or serializer.', Ember.isArray(value) || value === null);
|
5524
5584
|
|
5525
5585
|
relationshipData = Ember.A(value || []);
|
5526
5586
|
|
@@ -5814,7 +5874,7 @@
|
|
5814
5874
|
@return {Object}
|
5815
5875
|
*/
|
5816
5876
|
normalize: function (typeClass, hash, prop) {
|
5817
|
-
if (this.get(
|
5877
|
+
if (this.get("isNewSerializerAPI")) {
|
5818
5878
|
ember$data$lib$serializers$rest$serializer$$_newNormalize.apply(this, arguments);
|
5819
5879
|
return this._super.apply(this, arguments);
|
5820
5880
|
}
|
@@ -5826,7 +5886,10 @@
|
|
5826
5886
|
this.normalizeUsingDeclaredMapping(typeClass, hash);
|
5827
5887
|
|
5828
5888
|
if (this.normalizeHash && this.normalizeHash[prop]) {
|
5829
|
-
Ember.deprecate(
|
5889
|
+
Ember.deprecate("`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.", false, {
|
5890
|
+
id: "ds.serializer.normalize-hash-deprecated",
|
5891
|
+
until: "2.0.0"
|
5892
|
+
});
|
5830
5893
|
this.normalizeHash[prop](hash);
|
5831
5894
|
}
|
5832
5895
|
|
@@ -5853,7 +5916,7 @@
|
|
5853
5916
|
var modelClass = store.modelFor(modelName);
|
5854
5917
|
var serializer = store.serializerFor(modelName);
|
5855
5918
|
|
5856
|
-
Ember.assert(this.toString() + " has opted into the new serializer API and expects the " + serializer.toString() + " it collaborates with to also support the new serializer API by setting its `isNewSerializerAPI` property to true.", ember$data$lib$serializers$rest$serializer$$get(serializer,
|
5919
|
+
Ember.assert(this.toString() + " has opted into the new serializer API and expects the " + serializer.toString() + " it collaborates with to also support the new serializer API by setting its `isNewSerializerAPI` property to true.", ember$data$lib$serializers$rest$serializer$$get(serializer, "isNewSerializerAPI"));
|
5857
5920
|
|
5858
5921
|
/*jshint loopfunc:true*/
|
5859
5922
|
ember$data$lib$serializers$rest$serializer$$forEach.call(arrayHash, function (hash) {
|
@@ -5892,7 +5955,7 @@
|
|
5892
5955
|
|
5893
5956
|
var meta = this.extractMeta(store, primaryModelClass, payload);
|
5894
5957
|
if (meta) {
|
5895
|
-
Ember.assert(
|
5958
|
+
Ember.assert("The `meta` returned from `extractMeta` has to be an object, not \"" + Ember.typeOf(meta) + "\".", Ember.typeOf(meta) === "object");
|
5896
5959
|
documentHash.meta = meta;
|
5897
5960
|
}
|
5898
5961
|
|
@@ -5920,14 +5983,16 @@
|
|
5920
5983
|
```
|
5921
5984
|
This forces `_users` to be added to `included` instead of `data`.
|
5922
5985
|
*/
|
5923
|
-
if (prop.charAt(0) ===
|
5986
|
+
if (prop.charAt(0) === "_") {
|
5924
5987
|
forcedSecondary = true;
|
5925
5988
|
modelName = prop.substr(1);
|
5926
5989
|
}
|
5927
5990
|
|
5928
5991
|
var typeName = this.modelNameFromPayloadKey(modelName);
|
5929
5992
|
if (!store.modelFactoryFor(typeName)) {
|
5930
|
-
Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false
|
5993
|
+
Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false, {
|
5994
|
+
id: "ds.serializer.model-for-key-missing"
|
5995
|
+
});
|
5931
5996
|
continue;
|
5932
5997
|
}
|
5933
5998
|
|
@@ -5947,7 +6012,7 @@
|
|
5947
6012
|
}
|
5948
6013
|
```
|
5949
6014
|
*/
|
5950
|
-
if (isPrimary && Ember.typeOf(value) !==
|
6015
|
+
if (isPrimary && Ember.typeOf(value) !== "array") {
|
5951
6016
|
var _normalize = this.normalize(primaryModelClass, value, prop);
|
5952
6017
|
|
5953
6018
|
var _data = _normalize.data;
|
@@ -6074,7 +6139,10 @@
|
|
6074
6139
|
@return {Object} the primary response to the original request
|
6075
6140
|
*/
|
6076
6141
|
extractSingle: function (store, primaryTypeClass, rawPayload, recordId) {
|
6077
|
-
Ember.deprecate(
|
6142
|
+
Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
|
6143
|
+
id: "ds.serializer.normalize-payload-deprecated",
|
6144
|
+
until: "2.0.0"
|
6145
|
+
});
|
6078
6146
|
var payload = this.normalizePayload(rawPayload);
|
6079
6147
|
var primaryRecord;
|
6080
6148
|
|
@@ -6082,7 +6150,9 @@
|
|
6082
6150
|
var modelName = this.modelNameFromPayloadKey(prop);
|
6083
6151
|
|
6084
6152
|
if (!store.modelFactoryFor(modelName)) {
|
6085
|
-
Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false
|
6153
|
+
Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
|
6154
|
+
id: "ds.serializer.model-for-key-missing"
|
6155
|
+
});
|
6086
6156
|
continue;
|
6087
6157
|
}
|
6088
6158
|
var isPrimary = this.isPrimaryType(store, modelName, primaryTypeClass);
|
@@ -6104,7 +6174,7 @@
|
|
6104
6174
|
var type = store.modelFor(typeName);
|
6105
6175
|
var typeSerializer = store.serializerFor(type.modelName);
|
6106
6176
|
|
6107
|
-
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this,
|
6177
|
+
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
|
6108
6178
|
|
6109
6179
|
hash = typeSerializer.normalize(type, hash, prop);
|
6110
6180
|
|
@@ -6214,7 +6284,10 @@
|
|
6214
6284
|
to the original query.
|
6215
6285
|
*/
|
6216
6286
|
extractArray: function (store, primaryTypeClass, rawPayload) {
|
6217
|
-
Ember.deprecate(
|
6287
|
+
Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
|
6288
|
+
id: "ds.serializer.normalize-payload-deprecated",
|
6289
|
+
until: "2.0.0"
|
6290
|
+
});
|
6218
6291
|
var payload = this.normalizePayload(rawPayload);
|
6219
6292
|
var primaryArray;
|
6220
6293
|
|
@@ -6222,20 +6295,22 @@
|
|
6222
6295
|
var modelName = prop;
|
6223
6296
|
var forcedSecondary = false;
|
6224
6297
|
|
6225
|
-
if (prop.charAt(0) ===
|
6298
|
+
if (prop.charAt(0) === "_") {
|
6226
6299
|
forcedSecondary = true;
|
6227
6300
|
modelName = prop.substr(1);
|
6228
6301
|
}
|
6229
6302
|
|
6230
6303
|
var typeName = this.modelNameFromPayloadKey(modelName);
|
6231
6304
|
if (!store.modelFactoryFor(typeName)) {
|
6232
|
-
Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false
|
6305
|
+
Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false, {
|
6306
|
+
id: "ds.serializer.model-for-key-missing"
|
6307
|
+
});
|
6233
6308
|
continue;
|
6234
6309
|
}
|
6235
6310
|
var type = store.modelFor(typeName);
|
6236
6311
|
var typeSerializer = store.serializerFor(type.modelName);
|
6237
6312
|
|
6238
|
-
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this,
|
6313
|
+
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
|
6239
6314
|
|
6240
6315
|
var isPrimary = !forcedSecondary && this.isPrimaryType(store, typeName, primaryTypeClass);
|
6241
6316
|
|
@@ -6288,24 +6363,29 @@
|
|
6288
6363
|
@param {Object} rawPayload
|
6289
6364
|
*/
|
6290
6365
|
pushPayload: function (store, rawPayload) {
|
6291
|
-
if (this.get(
|
6366
|
+
if (this.get("isNewSerializerAPI")) {
|
6292
6367
|
ember$data$lib$serializers$rest$serializer$$_newPushPayload.apply(this, arguments);
|
6293
6368
|
return;
|
6294
6369
|
}
|
6295
6370
|
|
6296
|
-
Ember.deprecate(
|
6371
|
+
Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
|
6372
|
+
id: "ds.serializer.normalize-payload-deprecated",
|
6373
|
+
until: "2.0.0"
|
6374
|
+
});
|
6297
6375
|
var payload = this.normalizePayload(rawPayload);
|
6298
6376
|
|
6299
6377
|
for (var prop in payload) {
|
6300
6378
|
var modelName = this.modelNameFromPayloadKey(prop);
|
6301
6379
|
if (!store.modelFactoryFor(modelName)) {
|
6302
|
-
Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false
|
6380
|
+
Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
|
6381
|
+
id: "ds.serializer.model-for-key-missing"
|
6382
|
+
});
|
6303
6383
|
continue;
|
6304
6384
|
}
|
6305
6385
|
var typeClass = store.modelFor(modelName);
|
6306
6386
|
var typeSerializer = store.serializerFor(modelName);
|
6307
6387
|
|
6308
|
-
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this,
|
6388
|
+
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
|
6309
6389
|
|
6310
6390
|
/*jshint loopfunc:true*/
|
6311
6391
|
var normalizedArray = ember$data$lib$serializers$rest$serializer$$map.call(Ember.makeArray(payload[prop]), function (hash) {
|
@@ -6560,7 +6640,10 @@
|
|
6560
6640
|
@deprecated
|
6561
6641
|
*/
|
6562
6642
|
typeForRoot: function (modelName) {
|
6563
|
-
Ember.deprecate("typeForRoot is deprecated. Use modelNameFromPayloadKey instead."
|
6643
|
+
Ember.deprecate("typeForRoot is deprecated. Use modelNameFromPayloadKey instead.", false, {
|
6644
|
+
id: "ds.serializer.type-for-root-deprecated",
|
6645
|
+
until: "2.0.0"
|
6646
|
+
});
|
6564
6647
|
return this.modelNameFromPayloadKey(modelName);
|
6565
6648
|
},
|
6566
6649
|
|
@@ -6588,7 +6671,7 @@
|
|
6588
6671
|
Ember.runInDebug(function () {
|
6589
6672
|
ember$data$lib$serializers$rest$serializer$$RESTSerializer.reopen({
|
6590
6673
|
warnMessageNoModelForKey: function (prop, typeKey) {
|
6591
|
-
return
|
6674
|
+
return "Encountered \"" + prop + "\" in payload, but no model was found for model name \"" + typeKey + "\" (resolved model name using " + this.constructor.toString() + ".modelNameFromPayloadKey(\"" + prop + "\"))";
|
6592
6675
|
}
|
6593
6676
|
});
|
6594
6677
|
});
|
@@ -6605,7 +6688,10 @@
|
|
6605
6688
|
*/
|
6606
6689
|
function ember$data$lib$serializers$rest$serializer$$_newNormalize(modelClass, resourceHash, prop) {
|
6607
6690
|
if (this.normalizeHash && this.normalizeHash[prop]) {
|
6608
|
-
Ember.deprecate(
|
6691
|
+
Ember.deprecate("`RESTSerializer.normalizeHash` has been deprecated. Please use `serializer.normalize` to modify the payload of single resources.", false, {
|
6692
|
+
id: "ds.serializer.normalize-hash-deprecated",
|
6693
|
+
until: "2.0.0"
|
6694
|
+
});
|
6609
6695
|
this.normalizeHash[prop](resourceHash);
|
6610
6696
|
}
|
6611
6697
|
}
|
@@ -6621,19 +6707,24 @@
|
|
6621
6707
|
included: []
|
6622
6708
|
};
|
6623
6709
|
|
6624
|
-
Ember.deprecate(
|
6710
|
+
Ember.deprecate("`serializer.normalizePayload` has been deprecated. Please use `serializer.normalizeResponse` with the new Serializer API to modify the payload.", this.normalizePayload === ember$data$lib$serializers$json$serializer$$default.prototype.normalizePayload, {
|
6711
|
+
id: "ds.serializer.normalize-payload-deprecated",
|
6712
|
+
until: "2.0.0"
|
6713
|
+
});
|
6625
6714
|
var payload = this.normalizePayload(rawPayload);
|
6626
6715
|
|
6627
6716
|
for (var prop in payload) {
|
6628
6717
|
var modelName = this.modelNameFromPayloadKey(prop);
|
6629
6718
|
if (!store.modelFactoryFor(modelName)) {
|
6630
|
-
Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false
|
6719
|
+
Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
|
6720
|
+
id: "ds.serializer.model-for-key-missing"
|
6721
|
+
});
|
6631
6722
|
continue;
|
6632
6723
|
}
|
6633
6724
|
var type = store.modelFor(modelName);
|
6634
6725
|
var typeSerializer = store.serializerFor(type.modelName);
|
6635
6726
|
|
6636
|
-
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this,
|
6727
|
+
Ember.assert(this.toString() + " is using the " + (ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") ? "new" : "old") + " serializer API and expects " + typeSerializer.toString() + " it collaborates with to do the same. Make sure to set `isNewSerializerAPI: true` in your custom serializers if you want to use the new Serializer API.", ember$data$lib$serializers$rest$serializer$$get(this, "isNewSerializerAPI") === ember$data$lib$serializers$rest$serializer$$get(typeSerializer, "isNewSerializerAPI"));
|
6637
6728
|
|
6638
6729
|
/*jshint loopfunc:true*/
|
6639
6730
|
ember$data$lib$serializers$rest$serializer$$forEach.call(Ember.makeArray(payload[prop]), function (hash) {
|
@@ -6659,6 +6750,11 @@
|
|
6659
6750
|
*/
|
6660
6751
|
|
6661
6752
|
var activemodel$adapter$lib$system$active$model$serializer$$_Ember$String = ember$lib$main$$default.String;
|
6753
|
+
var activemodel$adapter$lib$system$active$model$serializer$$singularize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.singularize;
|
6754
|
+
var activemodel$adapter$lib$system$active$model$serializer$$classify = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.classify;
|
6755
|
+
var activemodel$adapter$lib$system$active$model$serializer$$decamelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.decamelize;
|
6756
|
+
var activemodel$adapter$lib$system$active$model$serializer$$camelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.camelize;
|
6757
|
+
var activemodel$adapter$lib$system$active$model$serializer$$underscore = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.underscore;
|
6662
6758
|
|
6663
6759
|
/**
|
6664
6760
|
The ActiveModelSerializer is a subclass of the RESTSerializer designed to integrate
|
@@ -6747,11 +6843,6 @@
|
|
6747
6843
|
@namespace DS
|
6748
6844
|
@extends DS.RESTSerializer
|
6749
6845
|
*/
|
6750
|
-
var activemodel$adapter$lib$system$active$model$serializer$$singularize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.singularize;
|
6751
|
-
var activemodel$adapter$lib$system$active$model$serializer$$classify = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.classify;
|
6752
|
-
var activemodel$adapter$lib$system$active$model$serializer$$decamelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.decamelize;
|
6753
|
-
var activemodel$adapter$lib$system$active$model$serializer$$camelize = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.camelize;
|
6754
|
-
var activemodel$adapter$lib$system$active$model$serializer$$underscore = activemodel$adapter$lib$system$active$model$serializer$$_Ember$String.underscore;
|
6755
6846
|
var activemodel$adapter$lib$system$active$model$serializer$$ActiveModelSerializer = ember$data$lib$serializers$rest$serializer$$default.extend({
|
6756
6847
|
// SERIALIZE
|
6757
6848
|
|
@@ -6775,10 +6866,10 @@
|
|
6775
6866
|
*/
|
6776
6867
|
keyForRelationship: function (relationshipModelName, kind) {
|
6777
6868
|
var key = activemodel$adapter$lib$system$active$model$serializer$$decamelize(relationshipModelName);
|
6778
|
-
if (kind ===
|
6779
|
-
return key +
|
6780
|
-
} else if (kind ===
|
6781
|
-
return activemodel$adapter$lib$system$active$model$serializer$$singularize(key) +
|
6869
|
+
if (kind === 'belongsTo') {
|
6870
|
+
return key + '_id';
|
6871
|
+
} else if (kind === 'hasMany') {
|
6872
|
+
return activemodel$adapter$lib$system$active$model$serializer$$singularize(key) + '_ids';
|
6782
6873
|
} else {
|
6783
6874
|
return key;
|
6784
6875
|
}
|
@@ -6821,7 +6912,7 @@
|
|
6821
6912
|
serializePolymorphicType: function (snapshot, json, relationship) {
|
6822
6913
|
var key = relationship.key;
|
6823
6914
|
var belongsTo = snapshot.belongsTo(key);
|
6824
|
-
var jsonKey = activemodel$adapter$lib$system$active$model$serializer$$underscore(key +
|
6915
|
+
var jsonKey = activemodel$adapter$lib$system$active$model$serializer$$underscore(key + '_type');
|
6825
6916
|
|
6826
6917
|
if (ember$lib$main$$default.isNone(belongsTo)) {
|
6827
6918
|
json[jsonKey] = null;
|
@@ -6912,18 +7003,18 @@
|
|
6912
7003
|
typeClass.eachRelationship(function (key, relationship) {
|
6913
7004
|
var payloadKey, payload;
|
6914
7005
|
if (relationship.options.polymorphic) {
|
6915
|
-
payloadKey = this.keyForAttribute(key,
|
7006
|
+
payloadKey = this.keyForAttribute(key, 'deserialize');
|
6916
7007
|
payload = hash[payloadKey];
|
6917
7008
|
if (payload && payload.type) {
|
6918
7009
|
payload.type = this.modelNameFromPayloadKey(payload.type);
|
6919
|
-
} else if (payload && relationship.kind ===
|
7010
|
+
} else if (payload && relationship.kind === 'hasMany') {
|
6920
7011
|
for (var i = 0, len = payload.length; i < len; i++) {
|
6921
7012
|
var single = payload[i];
|
6922
7013
|
single.type = this.modelNameFromPayloadKey(single.type);
|
6923
7014
|
}
|
6924
7015
|
}
|
6925
7016
|
} else {
|
6926
|
-
payloadKey = this.keyForRelationship(key, relationship.kind,
|
7017
|
+
payloadKey = this.keyForRelationship(key, relationship.kind, 'deserialize');
|
6927
7018
|
if (!hash.hasOwnProperty(payloadKey)) {
|
6928
7019
|
return;
|
6929
7020
|
}
|
@@ -6941,7 +7032,7 @@
|
|
6941
7032
|
|
6942
7033
|
extractRelationships: function (modelClass, resourceHash) {
|
6943
7034
|
modelClass.eachRelationship(function (key, relationshipMeta) {
|
6944
|
-
var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind,
|
7035
|
+
var relationshipKey = this.keyForRelationship(key, relationshipMeta.kind, 'deserialize');
|
6945
7036
|
|
6946
7037
|
// prefer the format the AMS gem expects, e.g.:
|
6947
7038
|
// relationship: {id: id, type: type}
|
@@ -6980,23 +7071,23 @@
|
|
6980
7071
|
resourceHash[relationshipKey] = { id: id, type: type };
|
6981
7072
|
// otherwise hasMany
|
6982
7073
|
} else {
|
6983
|
-
|
7074
|
+
var hashes = resourceHash[polymorphicKey];
|
6984
7075
|
|
6985
|
-
|
6986
|
-
|
6987
|
-
|
7076
|
+
if (!hashes) {
|
7077
|
+
return;
|
7078
|
+
}
|
6988
7079
|
|
6989
|
-
|
6990
|
-
|
6991
|
-
|
6992
|
-
|
6993
|
-
|
6994
|
-
|
7080
|
+
// TODO: replace this with map when ActiveModelAdapter branches for Ember Data 2.0
|
7081
|
+
var array = [];
|
7082
|
+
for (var i = 0, _length = hashes.length; i < _length; i++) {
|
7083
|
+
var hash = hashes[i];
|
7084
|
+
var id = hash.id;
|
7085
|
+
var type = hash.type;
|
6995
7086
|
|
6996
|
-
|
6997
|
-
}
|
6998
|
-
resourceHash[relationshipKey] = array;
|
7087
|
+
array.push({ id: id, type: type });
|
6999
7088
|
}
|
7089
|
+
resourceHash[relationshipKey] = array;
|
7090
|
+
}
|
7000
7091
|
}
|
7001
7092
|
}
|
7002
7093
|
|
@@ -7027,7 +7118,10 @@
|
|
7027
7118
|
|
7028
7119
|
ember$data$lib$system$container$proxy$$ContainerProxy.prototype.registerDeprecation = function (deprecated, valid) {
|
7029
7120
|
var preLookupCallback = function () {
|
7030
|
-
Ember.deprecate(
|
7121
|
+
Ember.deprecate('You tried to look up \'' + deprecated + '\', but this has been deprecated in favor of \'' + valid + '\'.', false, {
|
7122
|
+
id: 'ds.store.deprecated-lookup',
|
7123
|
+
until: '2.0.0'
|
7124
|
+
});
|
7031
7125
|
};
|
7032
7126
|
|
7033
7127
|
return this.registerAlias(deprecated, valid, preLookupCallback);
|
@@ -7049,29 +7143,12 @@
|
|
7049
7143
|
var activemodel$adapter$lib$setup$container$$default = activemodel$adapter$lib$setup$container$$setupActiveModelAdapter;
|
7050
7144
|
function activemodel$adapter$lib$setup$container$$setupActiveModelAdapter(registry, application) {
|
7051
7145
|
var proxy = new ember$data$lib$system$container$proxy$$default(registry);
|
7052
|
-
proxy.registerDeprecations([{ deprecated:
|
7146
|
+
proxy.registerDeprecations([{ deprecated: "serializer:_ams", valid: "serializer:-active-model" }, { deprecated: "adapter:_ams", valid: "adapter:-active-model" }]);
|
7053
7147
|
|
7054
|
-
registry.register(
|
7055
|
-
registry.register(
|
7148
|
+
registry.register("serializer:-active-model", activemodel$adapter$lib$system$active$model$serializer$$default.extend({ isNewSerializerAPI: true }));
|
7149
|
+
registry.register("adapter:-active-model", activemodel$adapter$lib$system$active$model$adapter$$default);
|
7056
7150
|
}
|
7057
7151
|
|
7058
|
-
/**
|
7059
|
-
`DS.FixtureAdapter` is an adapter that loads records from memory.
|
7060
|
-
It's primarily used for development and testing. You can also use
|
7061
|
-
`DS.FixtureAdapter` while working on the API but is not ready to
|
7062
|
-
integrate yet. It is a fully functioning adapter. All CRUD methods
|
7063
|
-
are implemented. You can also implement query logic that a remote
|
7064
|
-
system would do. It's possible to develop your entire application
|
7065
|
-
with `DS.FixtureAdapter`.
|
7066
|
-
|
7067
|
-
For information on how to use the `FixtureAdapter` in your
|
7068
|
-
application please see the [FixtureAdapter
|
7069
|
-
guide](/guides/models/the-fixture-adapter/).
|
7070
|
-
|
7071
|
-
@class FixtureAdapter
|
7072
|
-
@namespace DS
|
7073
|
-
@extends DS.Adapter
|
7074
|
-
*/
|
7075
7152
|
/**
|
7076
7153
|
@module ember-data
|
7077
7154
|
*/
|
@@ -7121,9 +7198,9 @@
|
|
7121
7198
|
return fixtures.map(function (fixture) {
|
7122
7199
|
var fixtureIdType = typeof fixture.id;
|
7123
7200
|
if (fixtureIdType !== "number" && fixtureIdType !== "string") {
|
7124
|
-
throw new Error(ember$data$lib$adapters$fixture$adapter$$fmt(
|
7201
|
+
throw new Error(ember$data$lib$adapters$fixture$adapter$$fmt("the id property must be defined as a number or string for fixture %@", [fixture]));
|
7125
7202
|
}
|
7126
|
-
fixture.id = fixture.id +
|
7203
|
+
fixture.id = fixture.id + "";
|
7127
7204
|
return fixture;
|
7128
7205
|
});
|
7129
7206
|
}
|
@@ -7139,7 +7216,7 @@
|
|
7139
7216
|
@return {(Promise|Array)}
|
7140
7217
|
*/
|
7141
7218
|
queryFixtures: function (fixtures, query, typeClass) {
|
7142
|
-
Ember.assert(
|
7219
|
+
Ember.assert("Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store.");
|
7143
7220
|
},
|
7144
7221
|
|
7145
7222
|
/**
|
@@ -7194,7 +7271,7 @@
|
|
7194
7271
|
Ember.assert("Unable to find fixtures for model type " + typeClass.toString() + ". If you're defining your fixtures using `Model.FIXTURES = ...`, please change it to `Model.reopenClass({ FIXTURES: ... })`.", fixtures);
|
7195
7272
|
|
7196
7273
|
if (fixtures) {
|
7197
|
-
fixture = Ember.A(fixtures).findBy(
|
7274
|
+
fixture = Ember.A(fixtures).findBy("id", id);
|
7198
7275
|
}
|
7199
7276
|
|
7200
7277
|
if (fixture) {
|
@@ -7357,7 +7434,7 @@
|
|
7357
7434
|
*/
|
7358
7435
|
findFixtureById: function (fixtures, id) {
|
7359
7436
|
return Ember.A(fixtures).find(function (r) {
|
7360
|
-
if (
|
7437
|
+
if ("" + ember$data$lib$adapters$fixture$adapter$$get(r, "id") === "" + id) {
|
7361
7438
|
return true;
|
7362
7439
|
} else {
|
7363
7440
|
return false;
|
@@ -7376,14 +7453,14 @@
|
|
7376
7453
|
|
7377
7454
|
return new Ember.RSVP.Promise(function (resolve) {
|
7378
7455
|
var value = Ember.copy(callback.call(context), true);
|
7379
|
-
if (ember$data$lib$adapters$fixture$adapter$$get(adapter,
|
7456
|
+
if (ember$data$lib$adapters$fixture$adapter$$get(adapter, "simulateRemoteResponse")) {
|
7380
7457
|
// Schedule with setTimeout
|
7381
7458
|
Ember.run.later(function () {
|
7382
7459
|
resolve(value);
|
7383
|
-
}, ember$data$lib$adapters$fixture$adapter$$get(adapter,
|
7460
|
+
}, ember$data$lib$adapters$fixture$adapter$$get(adapter, "latency"));
|
7384
7461
|
} else {
|
7385
7462
|
// Asynchronous, but at the of the runloop with zero latency
|
7386
|
-
Ember.run.schedule(
|
7463
|
+
Ember.run.schedule("actions", null, function () {
|
7387
7464
|
resolve(value);
|
7388
7465
|
});
|
7389
7466
|
}
|
@@ -7465,7 +7542,7 @@
|
|
7465
7542
|
});
|
7466
7543
|
|
7467
7544
|
var ember$data$lib$core$$DS = Ember.Namespace.create({
|
7468
|
-
VERSION: '1.13.
|
7545
|
+
VERSION: '1.13.7'
|
7469
7546
|
});
|
7470
7547
|
|
7471
7548
|
if (Ember.libraries) {
|
@@ -7488,7 +7565,7 @@
|
|
7488
7565
|
}
|
7489
7566
|
|
7490
7567
|
function ember$data$lib$system$store$common$$_guard(promise, test) {
|
7491
|
-
var guarded = promise[
|
7568
|
+
var guarded = promise["finally"](function () {
|
7492
7569
|
if (!test()) {
|
7493
7570
|
guarded._subscribers.length = 0;
|
7494
7571
|
}
|
@@ -7509,7 +7586,10 @@
|
|
7509
7586
|
}
|
7510
7587
|
|
7511
7588
|
if (serializer === null || serializer === undefined) {
|
7512
|
-
Ember.deprecate('Ember Data 2.0 will no longer support adapters with a null serializer property. Please define `defaultSerializer: "-default"` your adapter and make sure the `serializer` property is not null.'
|
7589
|
+
Ember.deprecate('Ember Data 2.0 will no longer support adapters with a null serializer property. Please define `defaultSerializer: "-default"` your adapter and make sure the `serializer` property is not null.', false, {
|
7590
|
+
id: 'ds.adapter.null-serializer-property',
|
7591
|
+
until: '2.0.0'
|
7592
|
+
});
|
7513
7593
|
serializer = {
|
7514
7594
|
extract: function (store, type, payload) {
|
7515
7595
|
return payload;
|
@@ -7527,7 +7607,10 @@
|
|
7527
7607
|
var snapshot = internalModel.createSnapshot(options);
|
7528
7608
|
var promise;
|
7529
7609
|
if (!adapter.findRecord) {
|
7530
|
-
Ember.deprecate(
|
7610
|
+
Ember.deprecate("Adapter#find has been deprecated and renamed to `findRecord`.", false, {
|
7611
|
+
id: "ds.adapter.find-renamed-to-find-record",
|
7612
|
+
until: "2.0.0"
|
7613
|
+
});
|
7531
7614
|
promise = adapter.find(store, typeClass, id, snapshot);
|
7532
7615
|
} else {
|
7533
7616
|
promise = adapter.findRecord(store, typeClass, id, snapshot);
|
@@ -7541,7 +7624,7 @@
|
|
7541
7624
|
return promise.then(function (adapterPayload) {
|
7542
7625
|
Ember.assert("You made a request for a " + typeClass.typeClassKey + " with id " + id + ", but the adapter's response did not have any data", adapterPayload);
|
7543
7626
|
return store._adapterRun(function () {
|
7544
|
-
var requestType = ember$data$lib$system$store$finders$$get(serializer,
|
7627
|
+
var requestType = ember$data$lib$system$store$finders$$get(serializer, "isNewSerializerAPI") ? "findRecord" : "find";
|
7545
7628
|
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, id, requestType);
|
7546
7629
|
//TODO Optimize
|
7547
7630
|
var record = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
|
@@ -7558,13 +7641,13 @@
|
|
7558
7641
|
}
|
7559
7642
|
|
7560
7643
|
function ember$data$lib$system$store$finders$$_findMany(adapter, store, typeClass, ids, internalModels) {
|
7561
|
-
var snapshots = Ember.A(internalModels).invoke(
|
7644
|
+
var snapshots = Ember.A(internalModels).invoke("createSnapshot");
|
7562
7645
|
var promise = adapter.findMany(store, typeClass, ids, snapshots);
|
7563
7646
|
var serializer = ember$data$lib$system$store$serializers$$serializerForAdapter(store, adapter, typeClass.modelName);
|
7564
7647
|
var label = "DS: Handle Adapter#findMany of " + typeClass;
|
7565
7648
|
|
7566
7649
|
if (promise === undefined) {
|
7567
|
-
throw new Error(
|
7650
|
+
throw new Error("adapter.findMany returned undefined, this was very likely a mistake");
|
7568
7651
|
}
|
7569
7652
|
|
7570
7653
|
promise = ember$data$lib$system$store$finders$$Promise.cast(promise, label);
|
@@ -7572,7 +7655,7 @@
|
|
7572
7655
|
|
7573
7656
|
return promise.then(function (adapterPayload) {
|
7574
7657
|
return store._adapterRun(function () {
|
7575
|
-
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null,
|
7658
|
+
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findMany");
|
7576
7659
|
//TODO Optimize, no need to materialize here
|
7577
7660
|
var records = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
|
7578
7661
|
return ember$data$lib$system$store$finders$$map.call(records, function (record) {
|
@@ -7595,13 +7678,13 @@
|
|
7595
7678
|
|
7596
7679
|
return promise.then(function (adapterPayload) {
|
7597
7680
|
return store._adapterRun(function () {
|
7598
|
-
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null,
|
7681
|
+
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findHasMany");
|
7599
7682
|
//TODO Use a non record creating push
|
7600
7683
|
var records = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
|
7601
7684
|
var recordArray = ember$data$lib$system$store$finders$$map.call(records, function (record) {
|
7602
7685
|
return record._internalModel;
|
7603
7686
|
});
|
7604
|
-
if (ember$data$lib$system$store$finders$$get(serializer,
|
7687
|
+
if (ember$data$lib$system$store$finders$$get(serializer, "isNewSerializerAPI")) {
|
7605
7688
|
recordArray.meta = payload.meta;
|
7606
7689
|
}
|
7607
7690
|
return recordArray;
|
@@ -7622,7 +7705,7 @@
|
|
7622
7705
|
|
7623
7706
|
return promise.then(function (adapterPayload) {
|
7624
7707
|
return store._adapterRun(function () {
|
7625
|
-
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null,
|
7708
|
+
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findBelongsTo");
|
7626
7709
|
|
7627
7710
|
if (!payload.data) {
|
7628
7711
|
return null;
|
@@ -7648,7 +7731,7 @@
|
|
7648
7731
|
|
7649
7732
|
return promise.then(function (adapterPayload) {
|
7650
7733
|
store._adapterRun(function () {
|
7651
|
-
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null,
|
7734
|
+
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findAll");
|
7652
7735
|
//TODO Optimize
|
7653
7736
|
ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
|
7654
7737
|
});
|
@@ -7663,7 +7746,10 @@
|
|
7663
7746
|
var promise;
|
7664
7747
|
|
7665
7748
|
if (!adapter.query) {
|
7666
|
-
Ember.deprecate(
|
7749
|
+
Ember.deprecate("Adapter#findQuery has been deprecated and renamed to `query`.", false, {
|
7750
|
+
id: "ds.adapter.find-query-renamed-to-query",
|
7751
|
+
until: "2.0.0"
|
7752
|
+
});
|
7667
7753
|
promise = adapter.findQuery(store, typeClass, query, recordArray);
|
7668
7754
|
} else {
|
7669
7755
|
promise = adapter.query(store, typeClass, query, recordArray);
|
@@ -7678,7 +7764,7 @@
|
|
7678
7764
|
return promise.then(function (adapterPayload) {
|
7679
7765
|
var records;
|
7680
7766
|
store._adapterRun(function () {
|
7681
|
-
var requestType = ember$data$lib$system$store$finders$$get(serializer,
|
7767
|
+
var requestType = ember$data$lib$system$store$finders$$get(serializer, "isNewSerializerAPI") ? "query" : "findQuery";
|
7682
7768
|
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, requestType);
|
7683
7769
|
//TODO Optimize
|
7684
7770
|
records = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
|
@@ -7701,7 +7787,7 @@
|
|
7701
7787
|
return promise.then(function (adapterPayload) {
|
7702
7788
|
var record;
|
7703
7789
|
store._adapterRun(function () {
|
7704
|
-
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null,
|
7790
|
+
var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "queryRecord");
|
7705
7791
|
//TODO Optimize
|
7706
7792
|
record = ember$data$lib$system$store$serializer$response$$pushPayload(store, payload);
|
7707
7793
|
});
|
@@ -7710,14 +7796,51 @@
|
|
7710
7796
|
}, null, "DS: Extract payload of queryRecord " + typeClass);
|
7711
7797
|
}
|
7712
7798
|
function ember$data$lib$system$snapshot$record$array$$SnapshotRecordArray(recordArray, meta, adapterOptions) {
|
7799
|
+
/**
|
7800
|
+
An array of snapshots
|
7801
|
+
@private
|
7802
|
+
@property _snapshots
|
7803
|
+
@type {Array}
|
7804
|
+
*/
|
7713
7805
|
this._snapshots = null;
|
7806
|
+
/**
|
7807
|
+
An array of records
|
7808
|
+
@private
|
7809
|
+
@property _recordArray
|
7810
|
+
@type {Array}
|
7811
|
+
*/
|
7714
7812
|
this._recordArray = recordArray;
|
7813
|
+
/**
|
7814
|
+
Number of records in the array
|
7815
|
+
@property length
|
7816
|
+
@type {Number}
|
7817
|
+
*/
|
7715
7818
|
this.length = recordArray.get('length');
|
7819
|
+
/**
|
7820
|
+
The type of the underlying records for the snapshots in the array, as a DS.Model
|
7821
|
+
@property type
|
7822
|
+
@type {DS.Model}
|
7823
|
+
*/
|
7716
7824
|
this.type = recordArray.get('type');
|
7825
|
+
/**
|
7826
|
+
Meta object
|
7827
|
+
@property meta
|
7828
|
+
@type {Object}
|
7829
|
+
*/
|
7717
7830
|
this.meta = meta;
|
7831
|
+
/**
|
7832
|
+
A hash of adapter options
|
7833
|
+
@property adapterOptions
|
7834
|
+
@type {Object}
|
7835
|
+
*/
|
7718
7836
|
this.adapterOptions = adapterOptions;
|
7719
7837
|
}
|
7720
7838
|
|
7839
|
+
/**
|
7840
|
+
Get snapshots of the underlying record array
|
7841
|
+
@method snapshots
|
7842
|
+
@return {Array} Array of snapshots
|
7843
|
+
*/
|
7721
7844
|
ember$data$lib$system$snapshot$record$array$$SnapshotRecordArray.prototype.snapshots = function () {
|
7722
7845
|
if (this._snapshots) {
|
7723
7846
|
return this._snapshots;
|
@@ -7793,7 +7916,7 @@
|
|
7793
7916
|
@return {DS.Model} record
|
7794
7917
|
*/
|
7795
7918
|
objectAtContent: function (index) {
|
7796
|
-
var content = ember$data$lib$system$record$arrays$record$array$$get(this,
|
7919
|
+
var content = ember$data$lib$system$record$arrays$record$array$$get(this, "content");
|
7797
7920
|
var internalModel = content.objectAt(index);
|
7798
7921
|
return internalModel && internalModel.getRecord();
|
7799
7922
|
},
|
@@ -7811,12 +7934,12 @@
|
|
7811
7934
|
@method update
|
7812
7935
|
*/
|
7813
7936
|
update: function () {
|
7814
|
-
if (ember$data$lib$system$record$arrays$record$array$$get(this,
|
7937
|
+
if (ember$data$lib$system$record$arrays$record$array$$get(this, "isUpdating")) {
|
7815
7938
|
return;
|
7816
7939
|
}
|
7817
7940
|
|
7818
|
-
var store = ember$data$lib$system$record$arrays$record$array$$get(this,
|
7819
|
-
var modelName = ember$data$lib$system$record$arrays$record$array$$get(this,
|
7941
|
+
var store = ember$data$lib$system$record$arrays$record$array$$get(this, "store");
|
7942
|
+
var modelName = ember$data$lib$system$record$arrays$record$array$$get(this, "type.modelName");
|
7820
7943
|
|
7821
7944
|
return store.findAll(modelName, { reload: true });
|
7822
7945
|
},
|
@@ -7829,7 +7952,7 @@
|
|
7829
7952
|
@param {number} an optional index to insert at
|
7830
7953
|
*/
|
7831
7954
|
addInternalModel: function (internalModel, idx) {
|
7832
|
-
var content = ember$data$lib$system$record$arrays$record$array$$get(this,
|
7955
|
+
var content = ember$data$lib$system$record$arrays$record$array$$get(this, "content");
|
7833
7956
|
if (idx === undefined) {
|
7834
7957
|
content.addObject(internalModel);
|
7835
7958
|
} else if (!content.contains(internalModel)) {
|
@@ -7844,7 +7967,7 @@
|
|
7844
7967
|
@param {InternalModel} internalModel
|
7845
7968
|
*/
|
7846
7969
|
removeInternalModel: function (internalModel) {
|
7847
|
-
ember$data$lib$system$record$arrays$record$array$$get(this,
|
7970
|
+
ember$data$lib$system$record$arrays$record$array$$get(this, "content").removeObject(internalModel);
|
7848
7971
|
},
|
7849
7972
|
|
7850
7973
|
/**
|
@@ -7862,7 +7985,7 @@
|
|
7862
7985
|
*/
|
7863
7986
|
save: function () {
|
7864
7987
|
var recordArray = this;
|
7865
|
-
var promiseLabel = "DS: RecordArray#save " + ember$data$lib$system$record$arrays$record$array$$get(this,
|
7988
|
+
var promiseLabel = "DS: RecordArray#save " + ember$data$lib$system$record$arrays$record$array$$get(this, "type");
|
7866
7989
|
var promise = Ember.RSVP.all(this.invoke("save"), promiseLabel).then(function (array) {
|
7867
7990
|
return recordArray;
|
7868
7991
|
}, null, "DS: RecordArray#save return RecordArray");
|
@@ -7873,7 +7996,7 @@
|
|
7873
7996
|
_dissociateFromOwnRecords: function () {
|
7874
7997
|
var array = this;
|
7875
7998
|
|
7876
|
-
this.get(
|
7999
|
+
this.get("content").forEach(function (record) {
|
7877
8000
|
var recordArrays = record._recordArrays;
|
7878
8001
|
|
7879
8002
|
if (recordArrays) {
|
@@ -7887,20 +8010,20 @@
|
|
7887
8010
|
@private
|
7888
8011
|
*/
|
7889
8012
|
_unregisterFromManager: function () {
|
7890
|
-
var manager = ember$data$lib$system$record$arrays$record$array$$get(this,
|
8013
|
+
var manager = ember$data$lib$system$record$arrays$record$array$$get(this, "manager");
|
7891
8014
|
manager.unregisterRecordArray(this);
|
7892
8015
|
},
|
7893
8016
|
|
7894
8017
|
willDestroy: function () {
|
7895
8018
|
this._unregisterFromManager();
|
7896
8019
|
this._dissociateFromOwnRecords();
|
7897
|
-
ember$data$lib$system$record$arrays$record$array$$set(this,
|
8020
|
+
ember$data$lib$system$record$arrays$record$array$$set(this, "content", undefined);
|
7898
8021
|
this._super.apply(this, arguments);
|
7899
8022
|
},
|
7900
8023
|
|
7901
8024
|
createSnapshot: function (options) {
|
7902
8025
|
var adapterOptions = options && options.adapterOptions;
|
7903
|
-
var meta = this.get(
|
8026
|
+
var meta = this.get("meta");
|
7904
8027
|
return new ember$data$lib$system$snapshot$record$array$$default(this, meta, adapterOptions);
|
7905
8028
|
}
|
7906
8029
|
});
|
@@ -7937,7 +8060,7 @@
|
|
7937
8060
|
isLoaded: true,
|
7938
8061
|
|
7939
8062
|
replace: function () {
|
7940
|
-
var type = ember$data$lib$system$record$arrays$filtered$record$array$$get(this,
|
8063
|
+
var type = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "type").toString();
|
7941
8064
|
throw new Error("The result of a client-side filter (on " + type + ") is immutable.");
|
7942
8065
|
},
|
7943
8066
|
|
@@ -7946,13 +8069,13 @@
|
|
7946
8069
|
@private
|
7947
8070
|
*/
|
7948
8071
|
_updateFilter: function () {
|
7949
|
-
var manager = ember$data$lib$system$record$arrays$filtered$record$array$$get(this,
|
7950
|
-
manager.updateFilter(this, ember$data$lib$system$record$arrays$filtered$record$array$$get(this,
|
8072
|
+
var manager = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "manager");
|
8073
|
+
manager.updateFilter(this, ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "type"), ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "filterFunction"));
|
7951
8074
|
},
|
7952
8075
|
|
7953
|
-
updateFilter: Ember.observer(function () {
|
8076
|
+
updateFilter: Ember.observer("filterFunction", function () {
|
7954
8077
|
Ember.run.once(this, this._updateFilter);
|
7955
|
-
}
|
8078
|
+
})
|
7956
8079
|
});
|
7957
8080
|
|
7958
8081
|
var ember$data$lib$system$clone$null$$default = ember$data$lib$system$clone$null$$cloneNull;
|
@@ -7974,7 +8097,7 @@
|
|
7974
8097
|
query: null,
|
7975
8098
|
|
7976
8099
|
replace: function () {
|
7977
|
-
var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this,
|
8100
|
+
var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type").toString();
|
7978
8101
|
throw new Error("The result of a server query (on " + type + ") is immutable.");
|
7979
8102
|
},
|
7980
8103
|
|
@@ -7984,8 +8107,8 @@
|
|
7984
8107
|
@param {Array} data
|
7985
8108
|
*/
|
7986
8109
|
load: function (data) {
|
7987
|
-
var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this,
|
7988
|
-
var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this,
|
8110
|
+
var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "store");
|
8111
|
+
var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type");
|
7989
8112
|
var modelName = type.modelName;
|
7990
8113
|
var records = store.pushMany(modelName, data);
|
7991
8114
|
|
@@ -7998,13 +8121,13 @@
|
|
7998
8121
|
@private
|
7999
8122
|
*/
|
8000
8123
|
loadRecords: function (records) {
|
8001
|
-
var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this,
|
8002
|
-
var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this,
|
8124
|
+
var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "store");
|
8125
|
+
var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type");
|
8003
8126
|
var modelName = type.modelName;
|
8004
8127
|
var meta = store._metadataFor(modelName);
|
8005
8128
|
|
8006
8129
|
//TODO Optimize
|
8007
|
-
var internalModels = Ember.A(records).mapBy(
|
8130
|
+
var internalModels = Ember.A(records).mapBy("_internalModel");
|
8008
8131
|
this.setProperties({
|
8009
8132
|
content: Ember.A(internalModels),
|
8010
8133
|
isLoaded: true,
|
@@ -8016,7 +8139,7 @@
|
|
8016
8139
|
}, this);
|
8017
8140
|
|
8018
8141
|
// TODO: should triggering didLoad event be the last action of the runLoop?
|
8019
|
-
Ember.run.once(this,
|
8142
|
+
Ember.run.once(this, "trigger", "didLoad");
|
8020
8143
|
}
|
8021
8144
|
});
|
8022
8145
|
|
@@ -8088,7 +8211,7 @@
|
|
8088
8211
|
return;
|
8089
8212
|
}
|
8090
8213
|
|
8091
|
-
Ember.run.schedule(
|
8214
|
+
Ember.run.schedule("actions", this, this.updateRecordArrays);
|
8092
8215
|
},
|
8093
8216
|
|
8094
8217
|
recordArraysForRecord: function (record) {
|
@@ -8134,7 +8257,7 @@
|
|
8134
8257
|
var recordArrays = this.filteredRecordArrays.get(typeClass);
|
8135
8258
|
var filter;
|
8136
8259
|
ember$data$lib$system$record$array$manager$$forEach.call(recordArrays, function (array) {
|
8137
|
-
filter = ember$data$lib$system$record$array$manager$$get(array,
|
8260
|
+
filter = ember$data$lib$system$record$array$manager$$get(array, "filterFunction");
|
8138
8261
|
this.updateFilterRecordArray(array, filter, typeClass, record);
|
8139
8262
|
}, this);
|
8140
8263
|
},
|
@@ -8146,7 +8269,7 @@
|
|
8146
8269
|
var filter;
|
8147
8270
|
|
8148
8271
|
ember$data$lib$system$record$array$manager$$forEach.call(recordArrays, function (array) {
|
8149
|
-
filter = ember$data$lib$system$record$array$manager$$get(array,
|
8272
|
+
filter = ember$data$lib$system$record$array$manager$$get(array, "filterFunction");
|
8150
8273
|
this.updateFilterRecordArray(array, filter, typeClass, record);
|
8151
8274
|
}, this);
|
8152
8275
|
|
@@ -8327,11 +8450,11 @@
|
|
8327
8450
|
|
8328
8451
|
// unregister live record array
|
8329
8452
|
} else if (this.liveRecordArrays.has(typeClass)) {
|
8330
|
-
|
8331
|
-
|
8332
|
-
|
8333
|
-
}
|
8453
|
+
var liveRecordArrayForType = this.liveRecordArrayFor(typeClass);
|
8454
|
+
if (array === liveRecordArrayForType) {
|
8455
|
+
this.liveRecordArrays["delete"](typeClass);
|
8334
8456
|
}
|
8457
|
+
}
|
8335
8458
|
},
|
8336
8459
|
|
8337
8460
|
willDestroy: function () {
|
@@ -8413,7 +8536,10 @@
|
|
8413
8536
|
|
8414
8537
|
instanceFor: function (key) {
|
8415
8538
|
if (key === 'adapter:-rest') {
|
8416
|
-
ember$lib$main$$default.deprecate('You are currently using the default DS.RESTAdapter adapter. For Ember 2.0 the default adapter will be DS.JSONAPIAdapter. If you would like to continue using DS.RESTAdapter please create an application adapter that extends DS.RESTAdapter.'
|
8539
|
+
ember$lib$main$$default.deprecate('You are currently using the default DS.RESTAdapter adapter. For Ember 2.0 the default adapter will be DS.JSONAPIAdapter. If you would like to continue using DS.RESTAdapter please create an application adapter that extends DS.RESTAdapter.', false, {
|
8540
|
+
id: 'ds.adapter.default-adapter-changing-to-json-api',
|
8541
|
+
until: '2.0.0'
|
8542
|
+
});
|
8417
8543
|
}
|
8418
8544
|
|
8419
8545
|
var cache = this._cache;
|
@@ -8813,6 +8939,7 @@
|
|
8813
8939
|
|
8814
8940
|
rolledBack: function (internalModel) {
|
8815
8941
|
internalModel.clearErrorMessages();
|
8942
|
+
internalModel.transitionTo('loaded.saved');
|
8816
8943
|
internalModel.triggerLater('ready');
|
8817
8944
|
},
|
8818
8945
|
|
@@ -8899,7 +9026,7 @@
|
|
8899
9026
|
ember$data$lib$system$model$states$$createdState.uncommitted.propertyWasReset = Ember.K;
|
8900
9027
|
|
8901
9028
|
function ember$data$lib$system$model$states$$assertAgainstUnloadRecord(internalModel) {
|
8902
|
-
Ember.assert(
|
9029
|
+
Ember.assert('You can only unload a record which is not inFlight. `' + internalModel + '`', false);
|
8903
9030
|
}
|
8904
9031
|
|
8905
9032
|
ember$data$lib$system$model$states$$updatedState.inFlight.unloadRecord = ember$data$lib$system$model$states$$assertAgainstUnloadRecord;
|
@@ -9218,14 +9345,14 @@
|
|
9218
9345
|
continue;
|
9219
9346
|
}
|
9220
9347
|
if (typeof object[prop] === 'object') {
|
9221
|
-
object[prop] = ember$data$lib$system$model$states$$wireState(object[prop], object, name +
|
9348
|
+
object[prop] = ember$data$lib$system$model$states$$wireState(object[prop], object, name + '.' + prop);
|
9222
9349
|
}
|
9223
9350
|
}
|
9224
9351
|
|
9225
9352
|
return object;
|
9226
9353
|
}
|
9227
9354
|
|
9228
|
-
ember$data$lib$system$model$states$$RootState = ember$data$lib$system$model$states$$wireState(ember$data$lib$system$model$states$$RootState, null,
|
9355
|
+
ember$data$lib$system$model$states$$RootState = ember$data$lib$system$model$states$$wireState(ember$data$lib$system$model$states$$RootState, null, 'root');
|
9229
9356
|
|
9230
9357
|
var ember$data$lib$system$model$states$$default = ember$data$lib$system$model$states$$RootState;
|
9231
9358
|
|
@@ -9438,8 +9565,10 @@
|
|
9438
9565
|
},
|
9439
9566
|
|
9440
9567
|
updateLink: function (link) {
|
9441
|
-
Ember.warn(
|
9442
|
-
|
9568
|
+
Ember.warn('You have pushed a record of type \'' + this.record.type.modelName + '\' with \'' + this.key + '\' as a link, but the association is not an async relationship.', this.isAsync, {
|
9569
|
+
id: 'ds.store.push-link-for-sync-relationship'
|
9570
|
+
});
|
9571
|
+
Ember.assert('You have pushed a record of type \'' + this.record.type.modelName + '\' with \'' + this.key + '\' as a link, but the value of that link is not a string.', typeof link === 'string' || link === null);
|
9443
9572
|
if (link !== this.link) {
|
9444
9573
|
this.link = link;
|
9445
9574
|
this.linkPromise = null;
|
@@ -9674,10 +9803,10 @@
|
|
9674
9803
|
*/
|
9675
9804
|
save: function () {
|
9676
9805
|
var manyArray = this;
|
9677
|
-
var promiseLabel =
|
9678
|
-
var promise = Ember.RSVP.all(this.invoke(
|
9806
|
+
var promiseLabel = 'DS: ManyArray#save ' + ember$data$lib$system$many$array$$get(this, 'type');
|
9807
|
+
var promise = Ember.RSVP.all(this.invoke('save'), promiseLabel).then(function (array) {
|
9679
9808
|
return manyArray;
|
9680
|
-
}, null,
|
9809
|
+
}, null, 'DS: ManyArray#save return ManyArray');
|
9681
9810
|
|
9682
9811
|
return ember$data$lib$system$promise$proxies$$PromiseArray.create({ promise: promise });
|
9683
9812
|
},
|
@@ -9694,7 +9823,7 @@
|
|
9694
9823
|
var type = ember$data$lib$system$many$array$$get(this, 'type');
|
9695
9824
|
var record;
|
9696
9825
|
|
9697
|
-
Ember.assert(
|
9826
|
+
Ember.assert('You cannot add \'' + type.modelName + '\' records to this polymorphic relationship.', !ember$data$lib$system$many$array$$get(this, 'isPolymorphic'));
|
9698
9827
|
|
9699
9828
|
record = store.createRecord(type.modelName, hash);
|
9700
9829
|
this.pushObject(record);
|
@@ -9708,7 +9837,10 @@
|
|
9708
9837
|
@deprecated Use `addObject()` instead
|
9709
9838
|
*/
|
9710
9839
|
addRecord: function (record) {
|
9711
|
-
Ember.deprecate('Using manyArray.addRecord() has been deprecated. You should use manyArray.addObject() instead.'
|
9840
|
+
Ember.deprecate('Using manyArray.addRecord() has been deprecated. You should use manyArray.addObject() instead.', false, {
|
9841
|
+
id: 'ds.many-array.add-record-deprecated',
|
9842
|
+
until: '2.0.0'
|
9843
|
+
});
|
9712
9844
|
this.addObject(record);
|
9713
9845
|
},
|
9714
9846
|
|
@@ -9718,7 +9850,10 @@
|
|
9718
9850
|
@deprecated Use `removeObject()` instead
|
9719
9851
|
*/
|
9720
9852
|
removeRecord: function (record) {
|
9721
|
-
Ember.deprecate('Using manyArray.removeRecord() has been deprecated. You should use manyArray.removeObject() instead.'
|
9853
|
+
Ember.deprecate('Using manyArray.removeRecord() has been deprecated. You should use manyArray.removeObject() instead.', false, {
|
9854
|
+
id: 'ds.many-array.remove-record-deprecated',
|
9855
|
+
until: '2.0.0'
|
9856
|
+
});
|
9722
9857
|
this.removeObject(record);
|
9723
9858
|
}
|
9724
9859
|
});
|
@@ -9793,7 +9928,7 @@
|
|
9793
9928
|
ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype._super$updateMeta = ember$data$lib$system$relationships$state$relationship$$default.prototype.updateMeta;
|
9794
9929
|
ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype.updateMeta = function (meta) {
|
9795
9930
|
this._super$updateMeta(meta);
|
9796
|
-
this.manyArray.set(
|
9931
|
+
this.manyArray.set("meta", meta);
|
9797
9932
|
};
|
9798
9933
|
|
9799
9934
|
ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype._super$addCanonicalRecord = ember$data$lib$system$relationships$state$relationship$$default.prototype.addCanonicalRecord;
|
@@ -9866,7 +10001,7 @@
|
|
9866
10001
|
} else {
|
9867
10002
|
return this.store.scheduleFetchMany(this.manyArray.toArray()).then(function () {
|
9868
10003
|
//Goes away after the manyArray refactor
|
9869
|
-
self.manyArray.set(
|
10004
|
+
self.manyArray.set("isLoaded", true);
|
9870
10005
|
return self.manyArray;
|
9871
10006
|
});
|
9872
10007
|
}
|
@@ -9908,7 +10043,7 @@
|
|
9908
10043
|
var _this = this;
|
9909
10044
|
|
9910
10045
|
return this.store.findHasMany(this.record, this.link, this.relationshipMeta).then(function (records) {
|
9911
|
-
if (records.hasOwnProperty(
|
10046
|
+
if (records.hasOwnProperty("meta")) {
|
9912
10047
|
_this.updateMeta(records.meta);
|
9913
10048
|
}
|
9914
10049
|
_this.store._backburner.join(function () {
|
@@ -9925,7 +10060,7 @@
|
|
9925
10060
|
return rec._internalModel;
|
9926
10061
|
})).then(function () {
|
9927
10062
|
//Goes away after the manyArray refactor
|
9928
|
-
manyArray.set(
|
10063
|
+
manyArray.set("isLoaded", true);
|
9929
10064
|
return manyArray;
|
9930
10065
|
});
|
9931
10066
|
};
|
@@ -9950,11 +10085,11 @@
|
|
9950
10085
|
promise: promise
|
9951
10086
|
});
|
9952
10087
|
} else {
|
9953
|
-
Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)", this.manyArray.isEvery(
|
10088
|
+
Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)", this.manyArray.isEvery("isEmpty", false));
|
9954
10089
|
|
9955
10090
|
//TODO(Igor) WTF DO I DO HERE?
|
9956
|
-
if (!this.manyArray.get(
|
9957
|
-
this.manyArray.set(
|
10091
|
+
if (!this.manyArray.get("isDestroyed")) {
|
10092
|
+
this.manyArray.set("isLoaded", true);
|
9958
10093
|
}
|
9959
10094
|
return this.manyArray;
|
9960
10095
|
}
|
@@ -10048,7 +10183,7 @@
|
|
10048
10183
|
};
|
10049
10184
|
|
10050
10185
|
ember$data$lib$system$relationships$state$belongs$to$$BelongsToRelationship.prototype.setRecordPromise = function (newPromise) {
|
10051
|
-
var content = newPromise.get && newPromise.get(
|
10186
|
+
var content = newPromise.get && newPromise.get("content");
|
10052
10187
|
Ember.assert("You passed in a promise that did not originate from an EmberData relationship. You can only pass promises that come from a belongsTo or hasMany relationship to the get call.", content !== undefined);
|
10053
10188
|
this.setRecord(content ? content._internalModel : content);
|
10054
10189
|
};
|
@@ -10112,7 +10247,7 @@
|
|
10112
10247
|
return null;
|
10113
10248
|
}
|
10114
10249
|
var toReturn = this.inverseRecord.getRecord();
|
10115
|
-
Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", toReturn === null || !toReturn.get(
|
10250
|
+
Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", toReturn === null || !toReturn.get("isEmpty"));
|
10116
10251
|
return toReturn;
|
10117
10252
|
}
|
10118
10253
|
};
|
@@ -10129,7 +10264,7 @@
|
|
10129
10264
|
inverseKey = inverse.name;
|
10130
10265
|
}
|
10131
10266
|
|
10132
|
-
if (relationshipMeta.kind ===
|
10267
|
+
if (relationshipMeta.kind === "hasMany") {
|
10133
10268
|
return new ember$data$lib$system$relationships$state$has$many$$default(store, record, inverseKey, relationshipMeta);
|
10134
10269
|
} else {
|
10135
10270
|
return new ember$data$lib$system$relationships$state$belongs$to$$default(store, record, inverseKey, relationshipMeta);
|
@@ -10147,7 +10282,7 @@
|
|
10147
10282
|
|
10148
10283
|
ember$data$lib$system$relationships$state$create$$Relationships.prototype.get = function (key) {
|
10149
10284
|
var relationships = this.initializedRelationships;
|
10150
|
-
var relationshipsByName = ember$data$lib$system$relationships$state$create$$get(this.record.type,
|
10285
|
+
var relationshipsByName = ember$data$lib$system$relationships$state$create$$get(this.record.type, "relationshipsByName");
|
10151
10286
|
if (!relationships[key] && relationshipsByName.get(key)) {
|
10152
10287
|
relationships[key] = ember$data$lib$system$relationships$state$create$$createRelationshipFor(this.record, relationshipsByName.get(key), this.record.store);
|
10153
10288
|
}
|
@@ -10157,17 +10292,17 @@
|
|
10157
10292
|
var ember$data$lib$system$relationships$state$create$$default = ember$data$lib$system$relationships$state$create$$Relationships;
|
10158
10293
|
|
10159
10294
|
/**
|
10295
|
+
@module ember-data
|
10296
|
+
*/
|
10297
|
+
|
10298
|
+
var ember$data$lib$system$snapshot$$get = Ember.get;/**
|
10160
10299
|
@class Snapshot
|
10161
10300
|
@namespace DS
|
10162
10301
|
@private
|
10163
10302
|
@constructor
|
10164
10303
|
@param {DS.Model} internalModel The model to create a snapshot from
|
10165
10304
|
*/
|
10166
|
-
|
10167
|
-
@module ember-data
|
10168
|
-
*/
|
10169
|
-
|
10170
|
-
var ember$data$lib$system$snapshot$$get = Ember.get;function ember$data$lib$system$snapshot$$Snapshot(internalModel) {
|
10305
|
+
function ember$data$lib$system$snapshot$$Snapshot(internalModel) {
|
10171
10306
|
this._attributes = ember$data$lib$system$object$polyfills$$create(null);
|
10172
10307
|
this._belongsToRelationships = ember$data$lib$system$object$polyfills$$create(null);
|
10173
10308
|
this._belongsToIds = ember$data$lib$system$object$polyfills$$create(null);
|
@@ -10204,7 +10339,10 @@
|
|
10204
10339
|
// again.
|
10205
10340
|
if (callDeprecate) {
|
10206
10341
|
callDeprecate = false;
|
10207
|
-
Ember.deprecate('Usage of `snapshot.constructor` is deprecated, use `snapshot.type` instead.'
|
10342
|
+
Ember.deprecate('Usage of `snapshot.constructor` is deprecated, use `snapshot.type` instead.', false, {
|
10343
|
+
id: 'ds.snapshot.constructor-deprecator',
|
10344
|
+
until: '2.0.0'
|
10345
|
+
});
|
10208
10346
|
callDeprecate = true;
|
10209
10347
|
}
|
10210
10348
|
|
@@ -10274,7 +10412,7 @@
|
|
10274
10412
|
if (keyName in this._attributes) {
|
10275
10413
|
return this._attributes[keyName];
|
10276
10414
|
}
|
10277
|
-
throw new Ember.Error(
|
10415
|
+
throw new Ember.Error('Model \'' + Ember.inspect(this.record) + '\' has no attribute named \'' + keyName + '\' defined.');
|
10278
10416
|
},
|
10279
10417
|
|
10280
10418
|
/**
|
@@ -10356,7 +10494,7 @@
|
|
10356
10494
|
|
10357
10495
|
relationship = this._internalModel._relationships.get(keyName);
|
10358
10496
|
if (!(relationship && relationship.relationshipMeta.kind === 'belongsTo')) {
|
10359
|
-
throw new Ember.Error(
|
10497
|
+
throw new Ember.Error('Model \'' + Ember.inspect(this.record) + '\' has no belongsTo relationship named \'' + keyName + '\' defined.');
|
10360
10498
|
}
|
10361
10499
|
|
10362
10500
|
hasData = ember$data$lib$system$snapshot$$get(relationship, 'hasData');
|
@@ -10420,7 +10558,7 @@
|
|
10420
10558
|
|
10421
10559
|
relationship = this._internalModel._relationships.get(keyName);
|
10422
10560
|
if (!(relationship && relationship.relationshipMeta.kind === 'hasMany')) {
|
10423
|
-
throw new Ember.Error(
|
10561
|
+
throw new Ember.Error('Model \'' + Ember.inspect(this.record) + '\' has no hasMany relationship named \'' + keyName + '\' defined.');
|
10424
10562
|
}
|
10425
10563
|
|
10426
10564
|
hasData = ember$data$lib$system$snapshot$$get(relationship, 'hasData');
|
@@ -10489,7 +10627,10 @@
|
|
10489
10627
|
@deprecated Use [attr](#method_attr), [belongsTo](#method_belongsTo) or [hasMany](#method_hasMany) instead
|
10490
10628
|
*/
|
10491
10629
|
get: function (keyName) {
|
10492
|
-
Ember.deprecate('Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.'
|
10630
|
+
Ember.deprecate('Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.', false, {
|
10631
|
+
id: 'ds.snapshot.get-deprecated',
|
10632
|
+
until: '2.0.0'
|
10633
|
+
});
|
10493
10634
|
|
10494
10635
|
if (keyName === 'id') {
|
10495
10636
|
return this.id;
|
@@ -10535,7 +10676,10 @@
|
|
10535
10676
|
@private
|
10536
10677
|
*/
|
10537
10678
|
_createSnapshot: function () {
|
10538
|
-
Ember.deprecate(
|
10679
|
+
Ember.deprecate('You called _createSnapshot on what\'s already a DS.Snapshot. You shouldn\'t manually create snapshots in your adapter since the store passes snapshots to adapters by default.', false, {
|
10680
|
+
id: 'ds.snapshot.create-snapshot-on-snapshot',
|
10681
|
+
until: '2.0.0'
|
10682
|
+
});
|
10539
10683
|
return this;
|
10540
10684
|
}
|
10541
10685
|
};
|
@@ -10543,7 +10687,10 @@
|
|
10543
10687
|
Ember.defineProperty(ember$data$lib$system$snapshot$$Snapshot.prototype, 'typeKey', {
|
10544
10688
|
enumerable: false,
|
10545
10689
|
get: function () {
|
10546
|
-
Ember.deprecate('Snapshot.typeKey is deprecated. Use snapshot.modelName instead.'
|
10690
|
+
Ember.deprecate('Snapshot.typeKey is deprecated. Use snapshot.modelName instead.', false, {
|
10691
|
+
id: 'ds.snapshot.type-key-deprecated',
|
10692
|
+
until: '2.0.0'
|
10693
|
+
});
|
10547
10694
|
return this.modelName;
|
10548
10695
|
},
|
10549
10696
|
set: function () {
|
@@ -10563,7 +10710,7 @@
|
|
10563
10710
|
var ember$data$lib$system$model$internal$model$$_splitOnDotCache = ember$data$lib$system$object$polyfills$$create(null);
|
10564
10711
|
|
10565
10712
|
function ember$data$lib$system$model$internal$model$$splitOnDot(name) {
|
10566
|
-
return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split(
|
10713
|
+
return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split("."));
|
10567
10714
|
}
|
10568
10715
|
|
10569
10716
|
function ember$data$lib$system$model$internal$model$$extractPivotName(name) {
|
@@ -10634,15 +10781,15 @@
|
|
10634
10781
|
};
|
10635
10782
|
|
10636
10783
|
ember$data$lib$system$model$internal$model$$InternalModel.prototype = {
|
10637
|
-
isEmpty: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10638
|
-
isLoading: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10639
|
-
isLoaded: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10640
|
-
hasDirtyAttributes: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10641
|
-
isSaving: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10642
|
-
isDeleted: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10643
|
-
isNew: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10644
|
-
isValid: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10645
|
-
dirtyType: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState(
|
10784
|
+
isEmpty: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isEmpty"),
|
10785
|
+
isLoading: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isLoading"),
|
10786
|
+
isLoaded: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isLoaded"),
|
10787
|
+
hasDirtyAttributes: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("hasDirtyAttributes"),
|
10788
|
+
isSaving: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isSaving"),
|
10789
|
+
isDeleted: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isDeleted"),
|
10790
|
+
isNew: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isNew"),
|
10791
|
+
isValid: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isValid"),
|
10792
|
+
dirtyType: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("dirtyType"),
|
10646
10793
|
|
10647
10794
|
constructor: ember$data$lib$system$model$internal$model$$InternalModel,
|
10648
10795
|
materializeRecord: function () {
|
@@ -10654,7 +10801,7 @@
|
|
10654
10801
|
store: this.store,
|
10655
10802
|
container: this.container,
|
10656
10803
|
_internalModel: this,
|
10657
|
-
currentState: ember$data$lib$system$model$internal$model$$get(this,
|
10804
|
+
currentState: ember$data$lib$system$model$internal$model$$get(this, "currentState"),
|
10658
10805
|
isError: this.isError,
|
10659
10806
|
adapterError: this.error
|
10660
10807
|
});
|
@@ -10666,7 +10813,7 @@
|
|
10666
10813
|
},
|
10667
10814
|
|
10668
10815
|
deleteRecord: function () {
|
10669
|
-
this.send(
|
10816
|
+
this.send("deleteRecord");
|
10670
10817
|
},
|
10671
10818
|
|
10672
10819
|
save: function (options) {
|
@@ -10680,14 +10827,14 @@
|
|
10680
10827
|
startedReloading: function () {
|
10681
10828
|
this.isReloading = true;
|
10682
10829
|
if (this.record) {
|
10683
|
-
ember$data$lib$system$model$internal$model$$set(this.record,
|
10830
|
+
ember$data$lib$system$model$internal$model$$set(this.record, "isReloading", true);
|
10684
10831
|
}
|
10685
10832
|
},
|
10686
10833
|
|
10687
10834
|
finishedReloading: function () {
|
10688
10835
|
this.isReloading = false;
|
10689
10836
|
if (this.record) {
|
10690
|
-
ember$data$lib$system$model$internal$model$$set(this.record,
|
10837
|
+
ember$data$lib$system$model$internal$model$$set(this.record, "isReloading", false);
|
10691
10838
|
}
|
10692
10839
|
},
|
10693
10840
|
|
@@ -10696,7 +10843,7 @@
|
|
10696
10843
|
var record = this;
|
10697
10844
|
var promiseLabel = "DS: Model#reload of " + this;
|
10698
10845
|
return new ember$data$lib$system$model$internal$model$$Promise(function (resolve) {
|
10699
|
-
record.send(
|
10846
|
+
record.send("reloadRecord", resolve);
|
10700
10847
|
}, promiseLabel).then(function () {
|
10701
10848
|
record.didCleanError();
|
10702
10849
|
return record;
|
@@ -10717,7 +10864,7 @@
|
|
10717
10864
|
},
|
10718
10865
|
|
10719
10866
|
unloadRecord: function () {
|
10720
|
-
this.send(
|
10867
|
+
this.send("unloadRecord");
|
10721
10868
|
},
|
10722
10869
|
|
10723
10870
|
eachRelationship: function (callback, binding) {
|
@@ -10743,7 +10890,7 @@
|
|
10743
10890
|
},
|
10744
10891
|
|
10745
10892
|
becameReady: function () {
|
10746
|
-
Ember.run.schedule(
|
10893
|
+
Ember.run.schedule("actions", this.store.recordArrayManager, this.store.recordArrayManager.recordWasLoaded, this);
|
10747
10894
|
},
|
10748
10895
|
|
10749
10896
|
didInitalizeData: function () {
|
@@ -10776,7 +10923,7 @@
|
|
10776
10923
|
@param {Promise} promise
|
10777
10924
|
*/
|
10778
10925
|
loadingData: function (promise) {
|
10779
|
-
this.send(
|
10926
|
+
this.send("loadingData", promise);
|
10780
10927
|
},
|
10781
10928
|
|
10782
10929
|
/**
|
@@ -10784,7 +10931,7 @@
|
|
10784
10931
|
@private
|
10785
10932
|
*/
|
10786
10933
|
loadedData: function () {
|
10787
|
-
this.send(
|
10934
|
+
this.send("loadedData");
|
10788
10935
|
this.didInitalizeData();
|
10789
10936
|
},
|
10790
10937
|
|
@@ -10793,7 +10940,7 @@
|
|
10793
10940
|
@private
|
10794
10941
|
*/
|
10795
10942
|
notFound: function () {
|
10796
|
-
this.send(
|
10943
|
+
this.send("notFound");
|
10797
10944
|
},
|
10798
10945
|
|
10799
10946
|
/**
|
@@ -10801,7 +10948,7 @@
|
|
10801
10948
|
@private
|
10802
10949
|
*/
|
10803
10950
|
pushedData: function () {
|
10804
|
-
this.send(
|
10951
|
+
this.send("pushedData");
|
10805
10952
|
},
|
10806
10953
|
|
10807
10954
|
flushChangedAttributes: function () {
|
@@ -10814,7 +10961,7 @@
|
|
10814
10961
|
@private
|
10815
10962
|
*/
|
10816
10963
|
adapterWillCommit: function () {
|
10817
|
-
this.send(
|
10964
|
+
this.send("willCommit");
|
10818
10965
|
},
|
10819
10966
|
|
10820
10967
|
/**
|
@@ -10822,7 +10969,7 @@
|
|
10822
10969
|
@private
|
10823
10970
|
*/
|
10824
10971
|
adapterDidDirty: function () {
|
10825
|
-
this.send(
|
10972
|
+
this.send("becomeDirty");
|
10826
10973
|
this.updateRecordArraysLater();
|
10827
10974
|
},
|
10828
10975
|
|
@@ -10833,7 +10980,7 @@
|
|
10833
10980
|
@param {Object} context
|
10834
10981
|
*/
|
10835
10982
|
send: function (name, context) {
|
10836
|
-
var currentState = ember$data$lib$system$model$internal$model$$get(this,
|
10983
|
+
var currentState = ember$data$lib$system$model$internal$model$$get(this, "currentState");
|
10837
10984
|
|
10838
10985
|
if (!currentState[name]) {
|
10839
10986
|
this._unhandledEvent(currentState, name, context);
|
@@ -10871,7 +11018,7 @@
|
|
10871
11018
|
|
10872
11019
|
this._attributes = ember$data$lib$system$object$polyfills$$create(null);
|
10873
11020
|
|
10874
|
-
if (ember$data$lib$system$model$internal$model$$get(this,
|
11021
|
+
if (ember$data$lib$system$model$internal$model$$get(this, "isError")) {
|
10875
11022
|
this._inFlightAttributes = ember$data$lib$system$object$polyfills$$create(null);
|
10876
11023
|
this.didCleanError();
|
10877
11024
|
}
|
@@ -10893,7 +11040,7 @@
|
|
10893
11040
|
this._inFlightAttributes = ember$data$lib$system$object$polyfills$$create(null);
|
10894
11041
|
}
|
10895
11042
|
|
10896
|
-
this.send(
|
11043
|
+
this.send("rolledBack");
|
10897
11044
|
|
10898
11045
|
this.record._notifyProperties(dirtyKeys);
|
10899
11046
|
},
|
@@ -10907,7 +11054,7 @@
|
|
10907
11054
|
// always having direct reference to state objects
|
10908
11055
|
|
10909
11056
|
var pivotName = ember$data$lib$system$model$internal$model$$extractPivotName(name);
|
10910
|
-
var currentState = ember$data$lib$system$model$internal$model$$get(this,
|
11057
|
+
var currentState = ember$data$lib$system$model$internal$model$$get(this, "currentState");
|
10911
11058
|
var state = currentState;
|
10912
11059
|
|
10913
11060
|
do {
|
@@ -10937,10 +11084,10 @@
|
|
10937
11084
|
enters[i].enter(this);
|
10938
11085
|
}
|
10939
11086
|
|
10940
|
-
ember$data$lib$system$model$internal$model$$set(this,
|
11087
|
+
ember$data$lib$system$model$internal$model$$set(this, "currentState", state);
|
10941
11088
|
//TODO Consider whether this is the best approach for keeping these two in sync
|
10942
11089
|
if (this.record) {
|
10943
|
-
ember$data$lib$system$model$internal$model$$set(this.record,
|
11090
|
+
ember$data$lib$system$model$internal$model$$set(this.record, "currentState", state);
|
10944
11091
|
}
|
10945
11092
|
|
10946
11093
|
for (i = 0, l = setups.length; i < l; i++) {
|
@@ -10973,7 +11120,7 @@
|
|
10973
11120
|
if (this._deferredTriggers.push(args) !== 1) {
|
10974
11121
|
return;
|
10975
11122
|
}
|
10976
|
-
Ember.run.scheduleOnce(
|
11123
|
+
Ember.run.scheduleOnce("actions", this, "_triggerDeferredTriggers");
|
10977
11124
|
},
|
10978
11125
|
|
10979
11126
|
_triggerDeferredTriggers: function () {
|
@@ -11059,7 +11206,7 @@
|
|
11059
11206
|
_preloadRelationship: function (key, preloadValue) {
|
11060
11207
|
var relationshipMeta = this.type.metaForProperty(key);
|
11061
11208
|
var type = relationshipMeta.type;
|
11062
|
-
if (relationshipMeta.kind ===
|
11209
|
+
if (relationshipMeta.kind === "hasMany") {
|
11063
11210
|
this._preloadHasMany(key, preloadValue, type);
|
11064
11211
|
} else {
|
11065
11212
|
this._preloadBelongsTo(key, preloadValue, type);
|
@@ -11087,7 +11234,7 @@
|
|
11087
11234
|
},
|
11088
11235
|
|
11089
11236
|
_convertStringOrNumberIntoInternalModel: function (value, type) {
|
11090
|
-
if (typeof value ===
|
11237
|
+
if (typeof value === "string" || typeof value === "number") {
|
11091
11238
|
return this.store._internalModelForId(type, value);
|
11092
11239
|
}
|
11093
11240
|
if (value._internalModel) {
|
@@ -11108,7 +11255,7 @@
|
|
11108
11255
|
setId: function (id) {
|
11109
11256
|
this.id = id;
|
11110
11257
|
//TODO figure out whether maybe we should proxy
|
11111
|
-
ember$data$lib$system$model$internal$model$$set(this.record,
|
11258
|
+
ember$data$lib$system$model$internal$model$$set(this.record, "id", id);
|
11112
11259
|
},
|
11113
11260
|
|
11114
11261
|
didError: function (error) {
|
@@ -11155,7 +11302,7 @@
|
|
11155
11302
|
|
11156
11303
|
this._inFlightAttributes = ember$data$lib$system$object$polyfills$$create(null);
|
11157
11304
|
|
11158
|
-
this.send(
|
11305
|
+
this.send("didCommit");
|
11159
11306
|
this.updateRecordArraysLater();
|
11160
11307
|
|
11161
11308
|
if (!data) {
|
@@ -11175,22 +11322,22 @@
|
|
11175
11322
|
return;
|
11176
11323
|
}
|
11177
11324
|
this._updatingRecordArraysLater = true;
|
11178
|
-
Ember.run.schedule(
|
11325
|
+
Ember.run.schedule("actions", this, this.updateRecordArrays);
|
11179
11326
|
},
|
11180
11327
|
|
11181
11328
|
addErrorMessageToAttribute: function (attribute, message) {
|
11182
11329
|
var record = this.getRecord();
|
11183
|
-
ember$data$lib$system$model$internal$model$$get(record,
|
11330
|
+
ember$data$lib$system$model$internal$model$$get(record, "errors").add(attribute, message);
|
11184
11331
|
},
|
11185
11332
|
|
11186
11333
|
removeErrorMessageFromAttribute: function (attribute) {
|
11187
11334
|
var record = this.getRecord();
|
11188
|
-
ember$data$lib$system$model$internal$model$$get(record,
|
11335
|
+
ember$data$lib$system$model$internal$model$$get(record, "errors").remove(attribute);
|
11189
11336
|
},
|
11190
11337
|
|
11191
11338
|
clearErrorMessages: function () {
|
11192
11339
|
var record = this.getRecord();
|
11193
|
-
ember$data$lib$system$model$internal$model$$get(record,
|
11340
|
+
ember$data$lib$system$model$internal$model$$get(record, "errors").clear();
|
11194
11341
|
},
|
11195
11342
|
|
11196
11343
|
// FOR USE DURING COMMIT PROCESS
|
@@ -11216,7 +11363,7 @@
|
|
11216
11363
|
@private
|
11217
11364
|
*/
|
11218
11365
|
adapterDidError: function (error) {
|
11219
|
-
this.send(
|
11366
|
+
this.send("becameError");
|
11220
11367
|
this.didError(error);
|
11221
11368
|
this._saveWasRejected();
|
11222
11369
|
},
|
@@ -11306,15 +11453,15 @@
|
|
11306
11453
|
|
11307
11454
|
var ember$data$lib$system$model$internal$model$$default = ember$data$lib$system$model$internal$model$$InternalModel;
|
11308
11455
|
|
11309
|
-
var ember$data$lib$system$store$$Backburner = Ember._Backburner || Ember.Backburner || Ember.__loader.require(
|
11456
|
+
var ember$data$lib$system$store$$Backburner = Ember._Backburner || Ember.Backburner || Ember.__loader.require("backburner")["default"] || Ember.__loader.require("backburner")["Backburner"];
|
11310
11457
|
|
11311
11458
|
//Shim Backburner.join
|
11312
11459
|
if (!ember$data$lib$system$store$$Backburner.prototype.join) {
|
11313
11460
|
var ember$data$lib$system$store$$isString = function (suspect) {
|
11314
|
-
return typeof suspect ===
|
11461
|
+
return typeof suspect === "string";
|
11315
11462
|
};
|
11316
11463
|
|
11317
|
-
ember$data$lib$system$store$$Backburner.prototype.join = function ()
|
11464
|
+
ember$data$lib$system$store$$Backburner.prototype.join = function () {
|
11318
11465
|
var method, target;
|
11319
11466
|
|
11320
11467
|
if (this.currentInstance) {
|
@@ -11469,7 +11616,7 @@
|
|
11469
11616
|
@private
|
11470
11617
|
*/
|
11471
11618
|
init: function () {
|
11472
|
-
this._backburner = new ember$data$lib$system$store$$Backburner([
|
11619
|
+
this._backburner = new ember$data$lib$system$store$$Backburner(["normalizeRelationships", "syncRelationships", "finished"]);
|
11473
11620
|
// internal bookkeeping; not observable
|
11474
11621
|
this.typeMaps = {};
|
11475
11622
|
this.recordArrayManager = ember$data$lib$system$record$array$manager$$default.create({
|
@@ -11492,7 +11639,7 @@
|
|
11492
11639
|
@default DS.RESTAdapter
|
11493
11640
|
@type {(DS.Adapter|String)}
|
11494
11641
|
*/
|
11495
|
-
adapter:
|
11642
|
+
adapter: "-rest",
|
11496
11643
|
|
11497
11644
|
/**
|
11498
11645
|
Returns a JSON representation of the record using a custom
|
@@ -11522,12 +11669,12 @@
|
|
11522
11669
|
@private
|
11523
11670
|
@return DS.Adapter
|
11524
11671
|
*/
|
11525
|
-
defaultAdapter: Ember.computed(
|
11526
|
-
var adapter = ember$data$lib$system$store$$get(this,
|
11672
|
+
defaultAdapter: Ember.computed("adapter", function () {
|
11673
|
+
var adapter = ember$data$lib$system$store$$get(this, "adapter");
|
11527
11674
|
|
11528
|
-
Ember.assert(
|
11675
|
+
Ember.assert("You tried to set `adapter` property to an instance of `DS.Adapter`, where it should be a name", typeof adapter === "string");
|
11529
11676
|
|
11530
|
-
adapter = this.retrieveManagedInstance(
|
11677
|
+
adapter = this.retrieveManagedInstance("adapter", adapter);
|
11531
11678
|
|
11532
11679
|
return adapter;
|
11533
11680
|
}),
|
@@ -11560,7 +11707,7 @@
|
|
11560
11707
|
@return {DS.Model} record
|
11561
11708
|
*/
|
11562
11709
|
createRecord: function (modelName, inputProperties) {
|
11563
|
-
Ember.assert(
|
11710
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
11564
11711
|
var typeClass = this.modelFor(modelName);
|
11565
11712
|
var properties = ember$data$lib$system$store$$copy(inputProperties) || ember$data$lib$system$object$polyfills$$create(null);
|
11566
11713
|
|
@@ -11702,19 +11849,25 @@
|
|
11702
11849
|
find: function (modelName, id, preload) {
|
11703
11850
|
Ember.assert("You need to pass a type to the store's find method", arguments.length >= 1);
|
11704
11851
|
Ember.assert("You may not pass `" + id + "` as id to the store's find method", arguments.length === 1 || !Ember.isNone(id));
|
11705
|
-
Ember.assert(
|
11852
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
11706
11853
|
|
11707
11854
|
if (arguments.length === 1) {
|
11708
|
-
Ember.deprecate(
|
11855
|
+
Ember.deprecate("Using store.find(type) has been deprecated. Use store.findAll(type) to retrieve all records for a given type.", false, {
|
11856
|
+
id: "ds.store.find-with-type-deprecated",
|
11857
|
+
until: "2.0.0"
|
11858
|
+
});
|
11709
11859
|
return this.findAll(modelName);
|
11710
11860
|
}
|
11711
11861
|
|
11712
11862
|
// We are passed a query instead of an id.
|
11713
|
-
if (Ember.typeOf(id) ===
|
11714
|
-
Ember.deprecate(
|
11863
|
+
if (Ember.typeOf(id) === "object") {
|
11864
|
+
Ember.deprecate("Calling store.find() with a query object is deprecated. Use store.query() instead.", false, {
|
11865
|
+
id: "ds.store.find-with-type-deprecated",
|
11866
|
+
until: "2.0.0"
|
11867
|
+
});
|
11715
11868
|
return this.query(modelName, id);
|
11716
11869
|
}
|
11717
|
-
var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName),
|
11870
|
+
var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), "find");
|
11718
11871
|
return this.findRecord(modelName, ember$data$lib$system$coerce$id$$default(id), options);
|
11719
11872
|
},
|
11720
11873
|
|
@@ -11728,9 +11881,12 @@
|
|
11728
11881
|
@return {Promise} promise
|
11729
11882
|
*/
|
11730
11883
|
fetchById: function (modelName, id, preload) {
|
11731
|
-
Ember.assert(
|
11732
|
-
var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName),
|
11733
|
-
Ember.deprecate(
|
11884
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
11885
|
+
var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), "fetchById");
|
11886
|
+
Ember.deprecate("Using store.fetchById(type, id) has been deprecated. Use store.findRecord(type, id, { reload: true }) to reload a record for a given type.", false, {
|
11887
|
+
id: "ds.store.fetch-by-id-deprecated",
|
11888
|
+
until: "2.0.0"
|
11889
|
+
});
|
11734
11890
|
if (this.hasRecordForId(modelName, id)) {
|
11735
11891
|
return this.peekRecord(modelName, id).reload();
|
11736
11892
|
} else {
|
@@ -11747,7 +11903,10 @@
|
|
11747
11903
|
@return {Promise} promise
|
11748
11904
|
*/
|
11749
11905
|
fetchAll: function (modelName) {
|
11750
|
-
Ember.deprecate(
|
11906
|
+
Ember.deprecate("Using store.fetchAll(type) has been deprecated. Use store.findAll(type, { reload: true }) to retrieve all records for a given type.", false, {
|
11907
|
+
id: "ds.store.fetch-all-deprecated",
|
11908
|
+
until: "2.0.0"
|
11909
|
+
});
|
11751
11910
|
return this.findAll(modelName, { reload: true });
|
11752
11911
|
},
|
11753
11912
|
|
@@ -11760,8 +11919,11 @@
|
|
11760
11919
|
@deprecated Use [findRecord](#method_findRecord) instead
|
11761
11920
|
*/
|
11762
11921
|
fetch: function (modelName, id, preload) {
|
11763
|
-
Ember.assert(
|
11764
|
-
Ember.deprecate(
|
11922
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
11923
|
+
Ember.deprecate("Using store.fetch() has been deprecated. Use store.findRecord for fetching individual records or store.findAll for collections", false, {
|
11924
|
+
id: "ds.store.fetch-deprecated",
|
11925
|
+
until: "2.0.0"
|
11926
|
+
});
|
11765
11927
|
return this.findRecord(modelName, id, { reload: true, preload: preload });
|
11766
11928
|
},
|
11767
11929
|
|
@@ -11775,8 +11937,11 @@
|
|
11775
11937
|
@return {Promise} promise
|
11776
11938
|
*/
|
11777
11939
|
findById: function (modelName, id, preload) {
|
11778
|
-
Ember.deprecate(
|
11779
|
-
|
11940
|
+
Ember.deprecate("Using store.findById() has been deprecated. Use store.findRecord() to return a record for a given type and id combination.", false, {
|
11941
|
+
id: "ds.store.find-by-id-deprecated",
|
11942
|
+
until: "2.0.0"
|
11943
|
+
});
|
11944
|
+
var options = ember$data$lib$system$store$$deprecatePreload(preload, this.modelFor(modelName), "findById");
|
11780
11945
|
return this.findRecord(modelName, id, options);
|
11781
11946
|
},
|
11782
11947
|
|
@@ -11815,7 +11980,7 @@
|
|
11815
11980
|
@return {Promise} promise
|
11816
11981
|
*/
|
11817
11982
|
findRecord: function (modelName, id, options) {
|
11818
|
-
Ember.assert(
|
11983
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
11819
11984
|
var internalModel = this._internalModelForId(modelName, id);
|
11820
11985
|
options = options || {};
|
11821
11986
|
|
@@ -11825,7 +11990,7 @@
|
|
11825
11990
|
|
11826
11991
|
var fetchedInternalModel = this._findRecord(internalModel, options);
|
11827
11992
|
|
11828
|
-
return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel,
|
11993
|
+
return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, "id"));
|
11829
11994
|
},
|
11830
11995
|
|
11831
11996
|
_findRecord: function (internalModel, options) {
|
@@ -11861,7 +12026,7 @@
|
|
11861
12026
|
|
11862
12027
|
var fetchedInternalModel = this._findEmptyInternalModel(internalModel, options);
|
11863
12028
|
|
11864
|
-
return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel,
|
12029
|
+
return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, "id"));
|
11865
12030
|
},
|
11866
12031
|
|
11867
12032
|
_findEmptyInternalModel: function (internalModel, options) {
|
@@ -11887,7 +12052,7 @@
|
|
11887
12052
|
@return {Promise} promise
|
11888
12053
|
*/
|
11889
12054
|
findByIds: function (modelName, ids) {
|
11890
|
-
Ember.assert(
|
12055
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
11891
12056
|
var store = this;
|
11892
12057
|
|
11893
12058
|
return ember$data$lib$system$promise$proxies$$promiseArray(Ember.RSVP.all(ember$data$lib$system$store$$map.call(ids, function (id) {
|
@@ -11911,7 +12076,7 @@
|
|
11911
12076
|
var adapter = this.adapterFor(typeClass.modelName);
|
11912
12077
|
|
11913
12078
|
Ember.assert("You tried to find a record but you have no adapter (for " + typeClass + ")", adapter);
|
11914
|
-
Ember.assert("You tried to find a record but your adapter (for " + typeClass + ") does not implement 'findRecord'", typeof adapter.findRecord ===
|
12079
|
+
Ember.assert("You tried to find a record but your adapter (for " + typeClass + ") does not implement 'findRecord'", typeof adapter.findRecord === "function" || typeof adapter.find === "function");
|
11915
12080
|
|
11916
12081
|
var promise = ember$data$lib$system$store$finders$$_find(adapter, this, typeClass, id, internalModel, options);
|
11917
12082
|
return promise;
|
@@ -11931,7 +12096,7 @@
|
|
11931
12096
|
return internalModel._loadingPromise;
|
11932
12097
|
}
|
11933
12098
|
|
11934
|
-
var resolver = Ember.RSVP.defer(
|
12099
|
+
var resolver = Ember.RSVP.defer("Fetching " + typeClass + "with id: " + internalModel.id);
|
11935
12100
|
var pendingFetchItem = {
|
11936
12101
|
record: internalModel,
|
11937
12102
|
resolver: resolver,
|
@@ -11946,7 +12111,7 @@
|
|
11946
12111
|
} else {
|
11947
12112
|
this._pendingFetch.get(typeClass).push(pendingFetchItem);
|
11948
12113
|
}
|
11949
|
-
Ember.run.scheduleOnce(
|
12114
|
+
Ember.run.scheduleOnce("afterRender", this, this.flushAllPendingFetches);
|
11950
12115
|
|
11951
12116
|
return promise;
|
11952
12117
|
},
|
@@ -11964,7 +12129,7 @@
|
|
11964
12129
|
var store = this;
|
11965
12130
|
var adapter = store.adapterFor(typeClass.modelName);
|
11966
12131
|
var shouldCoalesce = !!adapter.findMany && adapter.coalesceFindRequests;
|
11967
|
-
var records = Ember.A(pendingFetchItems).mapBy(
|
12132
|
+
var records = Ember.A(pendingFetchItems).mapBy("record");
|
11968
12133
|
|
11969
12134
|
function _fetchRecord(recordResolverPair) {
|
11970
12135
|
recordResolverPair.resolver.resolve(store.fetchRecord(recordResolverPair.record, recordResolverPair.options)); // TODO adapter options
|
@@ -11972,7 +12137,7 @@
|
|
11972
12137
|
|
11973
12138
|
function resolveFoundRecords(records) {
|
11974
12139
|
ember$data$lib$system$store$$forEach.call(records, function (record) {
|
11975
|
-
var pair = Ember.A(pendingFetchItems).findBy(
|
12140
|
+
var pair = Ember.A(pendingFetchItems).findBy("record", record);
|
11976
12141
|
if (pair) {
|
11977
12142
|
var resolver = pair.resolver;
|
11978
12143
|
resolver.resolve(record);
|
@@ -11988,7 +12153,9 @@
|
|
11988
12153
|
return resolvedRecords.contains(record);
|
11989
12154
|
});
|
11990
12155
|
if (missingRecords.length) {
|
11991
|
-
Ember.warn(
|
12156
|
+
Ember.warn("Ember Data expected to find records with the following ids in the adapter response but they were missing: " + Ember.inspect(Ember.A(missingRecords).mapBy("id")), false, {
|
12157
|
+
id: "ds.store.missing-records-from-adapter"
|
12158
|
+
});
|
11992
12159
|
}
|
11993
12160
|
rejectRecords(missingRecords);
|
11994
12161
|
};
|
@@ -12002,7 +12169,7 @@
|
|
12002
12169
|
|
12003
12170
|
function rejectRecords(records, error) {
|
12004
12171
|
ember$data$lib$system$store$$forEach.call(records, function (record) {
|
12005
|
-
var pair = Ember.A(pendingFetchItems).findBy(
|
12172
|
+
var pair = Ember.A(pendingFetchItems).findBy("record", record);
|
12006
12173
|
if (pair) {
|
12007
12174
|
var resolver = pair.resolver;
|
12008
12175
|
resolver.reject(error);
|
@@ -12025,16 +12192,16 @@
|
|
12025
12192
|
// records from the grouped snapshots even though the _findMany() finder
|
12026
12193
|
// will once again convert the records to snapshots for adapter.findMany()
|
12027
12194
|
|
12028
|
-
var snapshots = Ember.A(records).invoke(
|
12195
|
+
var snapshots = Ember.A(records).invoke("createSnapshot");
|
12029
12196
|
var groups = adapter.groupRecordsForFindMany(this, snapshots);
|
12030
12197
|
ember$data$lib$system$store$$forEach.call(groups, function (groupOfSnapshots) {
|
12031
|
-
var groupOfRecords = Ember.A(groupOfSnapshots).mapBy(
|
12198
|
+
var groupOfRecords = Ember.A(groupOfSnapshots).mapBy("_internalModel");
|
12032
12199
|
var requestedRecords = Ember.A(groupOfRecords);
|
12033
|
-
var ids = requestedRecords.mapBy(
|
12200
|
+
var ids = requestedRecords.mapBy("id");
|
12034
12201
|
if (ids.length > 1) {
|
12035
12202
|
ember$data$lib$system$store$finders$$_findMany(adapter, store, typeClass, ids, requestedRecords).then(resolveFoundRecords).then(makeMissingRecordsRejector(requestedRecords)).then(null, makeRecordsRejector(requestedRecords));
|
12036
12203
|
} else if (ids.length === 1) {
|
12037
|
-
var pair = Ember.A(pendingFetchItems).findBy(
|
12204
|
+
var pair = Ember.A(pendingFetchItems).findBy("record", groupOfRecords[0]);
|
12038
12205
|
_fetchRecord(pair);
|
12039
12206
|
} else {
|
12040
12207
|
Ember.assert("You cannot return an empty array from adapter's method groupRecordsForFindMany", false);
|
@@ -12061,7 +12228,10 @@
|
|
12061
12228
|
@return {DS.Model|null} record
|
12062
12229
|
*/
|
12063
12230
|
getById: function (modelName, id) {
|
12064
|
-
Ember.deprecate(
|
12231
|
+
Ember.deprecate("Using store.getById() has been deprecated. Use store.peekRecord to get a record by a given type and ID without triggering a fetch.", false, {
|
12232
|
+
id: "ds.store.get-by-id-deprecated",
|
12233
|
+
until: "2.0.0"
|
12234
|
+
});
|
12065
12235
|
return this.peekRecord(modelName, id);
|
12066
12236
|
},
|
12067
12237
|
|
@@ -12081,7 +12251,7 @@
|
|
12081
12251
|
@return {DS.Model|null} record
|
12082
12252
|
*/
|
12083
12253
|
peekRecord: function (modelName, id) {
|
12084
|
-
Ember.assert(
|
12254
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12085
12255
|
if (this.hasRecordForId(modelName, id)) {
|
12086
12256
|
return this._internalModelForId(modelName, id).getRecord();
|
12087
12257
|
} else {
|
@@ -12106,7 +12276,7 @@
|
|
12106
12276
|
|
12107
12277
|
Ember.assert("You cannot reload a record without an ID", id);
|
12108
12278
|
Ember.assert("You tried to reload a record but you have no adapter (for " + modelName + ")", adapter);
|
12109
|
-
Ember.assert("You tried to reload a record but your adapter does not implement `findRecord`", typeof adapter.findRecord ===
|
12279
|
+
Ember.assert("You tried to reload a record but your adapter does not implement `findRecord`", typeof adapter.findRecord === "function" || typeof adapter.find === "function");
|
12110
12280
|
|
12111
12281
|
return this.scheduleFetch(internalModel);
|
12112
12282
|
},
|
@@ -12119,7 +12289,7 @@
|
|
12119
12289
|
@return {Boolean}
|
12120
12290
|
*/
|
12121
12291
|
hasRecordForId: function (modelName, inputId) {
|
12122
|
-
Ember.assert(
|
12292
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12123
12293
|
var typeClass = this.modelFor(modelName);
|
12124
12294
|
var id = ember$data$lib$system$coerce$id$$default(inputId);
|
12125
12295
|
var internalModel = this.typeMapFor(typeClass).idToRecord[id];
|
@@ -12136,7 +12306,7 @@
|
|
12136
12306
|
@return {DS.Model} record
|
12137
12307
|
*/
|
12138
12308
|
recordForId: function (modelName, id) {
|
12139
|
-
Ember.assert(
|
12309
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12140
12310
|
return this._internalModelForId(modelName, id).getRecord();
|
12141
12311
|
},
|
12142
12312
|
|
@@ -12185,7 +12355,7 @@
|
|
12185
12355
|
var adapter = this.adapterFor(owner.type.modelName);
|
12186
12356
|
|
12187
12357
|
Ember.assert("You tried to load a hasMany relationship but you have no adapter (for " + owner.type + ")", adapter);
|
12188
|
-
Ember.assert("You tried to load a hasMany relationship from a specified `link` in the original payload but your adapter does not implement `findHasMany`", typeof adapter.findHasMany ===
|
12358
|
+
Ember.assert("You tried to load a hasMany relationship from a specified `link` in the original payload but your adapter does not implement `findHasMany`", typeof adapter.findHasMany === "function");
|
12189
12359
|
|
12190
12360
|
return ember$data$lib$system$store$finders$$_findHasMany(adapter, this, owner, link, relationship);
|
12191
12361
|
},
|
@@ -12202,7 +12372,7 @@
|
|
12202
12372
|
var adapter = this.adapterFor(owner.type.modelName);
|
12203
12373
|
|
12204
12374
|
Ember.assert("You tried to load a belongsTo relationship but you have no adapter (for " + owner.type + ")", adapter);
|
12205
|
-
Ember.assert("You tried to load a belongsTo relationship from a specified `link` in the original payload but your adapter does not implement `findBelongsTo`", typeof adapter.findBelongsTo ===
|
12375
|
+
Ember.assert("You tried to load a belongsTo relationship from a specified `link` in the original payload but your adapter does not implement `findBelongsTo`", typeof adapter.findBelongsTo === "function");
|
12206
12376
|
|
12207
12377
|
return ember$data$lib$system$store$finders$$_findBelongsTo(adapter, this, owner, link, relationship);
|
12208
12378
|
},
|
@@ -12243,14 +12413,14 @@
|
|
12243
12413
|
@return {Promise} promise
|
12244
12414
|
*/
|
12245
12415
|
query: function (modelName, query) {
|
12246
|
-
Ember.assert(
|
12416
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12247
12417
|
var typeClass = this.modelFor(modelName);
|
12248
12418
|
var array = this.recordArrayManager.createAdapterPopulatedRecordArray(typeClass, query);
|
12249
12419
|
|
12250
12420
|
var adapter = this.adapterFor(modelName);
|
12251
12421
|
|
12252
12422
|
Ember.assert("You tried to load a query but you have no adapter (for " + typeClass + ")", adapter);
|
12253
|
-
Ember.assert("You tried to load a query but your adapter does not implement `query`", typeof adapter.query ===
|
12423
|
+
Ember.assert("You tried to load a query but your adapter does not implement `query`", typeof adapter.query === "function" || typeof adapter.findQuery === "function");
|
12254
12424
|
|
12255
12425
|
return ember$data$lib$system$promise$proxies$$promiseArray(ember$data$lib$system$store$finders$$_query(adapter, this, typeClass, query, array));
|
12256
12426
|
},
|
@@ -12271,13 +12441,13 @@
|
|
12271
12441
|
queryRecord: function (modelName, query) {
|
12272
12442
|
Ember.assert("You need to pass a type to the store's queryRecord method", modelName);
|
12273
12443
|
Ember.assert("You need to pass a query hash to the store's queryRecord method", query);
|
12274
|
-
Ember.assert(
|
12444
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12275
12445
|
|
12276
12446
|
var typeClass = this.modelFor(modelName);
|
12277
12447
|
var adapter = this.adapterFor(modelName);
|
12278
12448
|
|
12279
12449
|
Ember.assert("You tried to make a query but you have no adapter (for " + typeClass + ")", adapter);
|
12280
|
-
Ember.assert("You tried to make a query but your adapter does not implement `queryRecord`", typeof adapter.queryRecord ===
|
12450
|
+
Ember.assert("You tried to make a query but your adapter does not implement `queryRecord`", typeof adapter.queryRecord === "function");
|
12281
12451
|
|
12282
12452
|
return ember$data$lib$system$promise$proxies$$promiseObject(ember$data$lib$system$store$finders$$_queryRecord(adapter, this, typeClass, query));
|
12283
12453
|
},
|
@@ -12297,7 +12467,10 @@
|
|
12297
12467
|
@deprecated Use `store.query instead`
|
12298
12468
|
*/
|
12299
12469
|
findQuery: function (modelName, query) {
|
12300
|
-
Ember.deprecate(
|
12470
|
+
Ember.deprecate("store#findQuery is deprecated. You should use store#query instead.", false, {
|
12471
|
+
id: "ds.store.find-query-deprecated",
|
12472
|
+
until: "2.0.0"
|
12473
|
+
});
|
12301
12474
|
return this.query(modelName, query);
|
12302
12475
|
},
|
12303
12476
|
|
@@ -12321,7 +12494,7 @@
|
|
12321
12494
|
@return {DS.AdapterPopulatedRecordArray}
|
12322
12495
|
*/
|
12323
12496
|
findAll: function (modelName, options) {
|
12324
|
-
Ember.assert(
|
12497
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12325
12498
|
var typeClass = this.modelFor(modelName);
|
12326
12499
|
|
12327
12500
|
return this._fetchAll(typeClass, this.peekAll(modelName), options);
|
@@ -12339,10 +12512,10 @@
|
|
12339
12512
|
var adapter = this.adapterFor(typeClass.modelName);
|
12340
12513
|
var sinceToken = this.typeMapFor(typeClass).metadata.since;
|
12341
12514
|
|
12342
|
-
ember$data$lib$system$store$$set(array,
|
12515
|
+
ember$data$lib$system$store$$set(array, "isUpdating", true);
|
12343
12516
|
|
12344
12517
|
Ember.assert("You tried to load all records but you have no adapter (for " + typeClass + ")", adapter);
|
12345
|
-
Ember.assert("You tried to load all records but your adapter does not implement `findAll`", typeof adapter.findAll ===
|
12518
|
+
Ember.assert("You tried to load all records but your adapter does not implement `findAll`", typeof adapter.findAll === "function");
|
12346
12519
|
if (options.reload) {
|
12347
12520
|
return ember$data$lib$system$promise$proxies$$promiseArray(ember$data$lib$system$store$finders$$_findAll(adapter, this, typeClass, sinceToken, options));
|
12348
12521
|
}
|
@@ -12363,7 +12536,7 @@
|
|
12363
12536
|
*/
|
12364
12537
|
didUpdateAll: function (typeClass) {
|
12365
12538
|
var liveRecordArray = this.recordArrayManager.liveRecordArrayFor(typeClass);
|
12366
|
-
ember$data$lib$system$store$$set(liveRecordArray,
|
12539
|
+
ember$data$lib$system$store$$set(liveRecordArray, "isUpdating", false);
|
12367
12540
|
},
|
12368
12541
|
|
12369
12542
|
/**
|
@@ -12385,7 +12558,10 @@
|
|
12385
12558
|
@return {DS.RecordArray}
|
12386
12559
|
*/
|
12387
12560
|
all: function (modelName) {
|
12388
|
-
Ember.deprecate(
|
12561
|
+
Ember.deprecate("Using store.all() has been deprecated. Use store.peekAll() to get all records by a given type without triggering a fetch.", false, {
|
12562
|
+
id: "ds.store.all-renamed-deprecated",
|
12563
|
+
until: "2.0.0"
|
12564
|
+
});
|
12389
12565
|
return this.peekAll(modelName);
|
12390
12566
|
},
|
12391
12567
|
|
@@ -12408,7 +12584,7 @@
|
|
12408
12584
|
@return {DS.RecordArray}
|
12409
12585
|
*/
|
12410
12586
|
peekAll: function (modelName) {
|
12411
|
-
Ember.assert(
|
12587
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12412
12588
|
var typeClass = this.modelFor(modelName);
|
12413
12589
|
|
12414
12590
|
var liveRecordArray = this.recordArrayManager.liveRecordArrayFor(typeClass);
|
@@ -12428,7 +12604,7 @@
|
|
12428
12604
|
@param {String=} modelName
|
12429
12605
|
*/
|
12430
12606
|
unloadAll: function (modelName) {
|
12431
|
-
Ember.assert(
|
12607
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), !modelName || typeof modelName === "string");
|
12432
12608
|
if (arguments.length === 0) {
|
12433
12609
|
var typeMaps = this.typeMaps;
|
12434
12610
|
var keys = ember$data$lib$system$object$polyfills$$keysFunc(typeMaps);
|
@@ -12452,7 +12628,7 @@
|
|
12452
12628
|
}
|
12453
12629
|
|
12454
12630
|
function byType(entry) {
|
12455
|
-
return typeMaps[entry][
|
12631
|
+
return typeMaps[entry]["type"].modelName;
|
12456
12632
|
}
|
12457
12633
|
},
|
12458
12634
|
|
@@ -12499,11 +12675,13 @@
|
|
12499
12675
|
@return {DS.PromiseArray}
|
12500
12676
|
*/
|
12501
12677
|
filter: function (modelName, query, filter) {
|
12502
|
-
Ember.assert(
|
12678
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12503
12679
|
|
12504
12680
|
if (!Ember.ENV.ENABLE_DS_FILTER) {
|
12505
|
-
Ember.deprecate(
|
12506
|
-
url:
|
12681
|
+
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, {
|
12682
|
+
url: "https://github.com/ember-data/ember-data-filter",
|
12683
|
+
id: "ds.store.filter-deprecated",
|
12684
|
+
until: "2.0.0"
|
12507
12685
|
});
|
12508
12686
|
}
|
12509
12687
|
|
@@ -12551,7 +12729,7 @@
|
|
12551
12729
|
@return {boolean}
|
12552
12730
|
*/
|
12553
12731
|
recordIsLoaded: function (modelName, id) {
|
12554
|
-
Ember.assert(
|
12732
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12555
12733
|
return this.hasRecordForId(modelName, id);
|
12556
12734
|
},
|
12557
12735
|
|
@@ -12563,7 +12741,10 @@
|
|
12563
12741
|
@deprecated
|
12564
12742
|
*/
|
12565
12743
|
metadataFor: function (modelName) {
|
12566
|
-
Ember.deprecate("`store.metadataFor()` has been deprecated. You can use `.get('meta')` on relationships and arrays returned from `store.query()`."
|
12744
|
+
Ember.deprecate("`store.metadataFor()` has been deprecated. You can use `.get('meta')` on relationships and arrays returned from `store.query()`.", false, {
|
12745
|
+
id: "ds.store.metadata-for-deprecated",
|
12746
|
+
until: "2.0.0"
|
12747
|
+
});
|
12567
12748
|
return this._metadataFor(modelName);
|
12568
12749
|
},
|
12569
12750
|
|
@@ -12574,7 +12755,7 @@
|
|
12574
12755
|
@private
|
12575
12756
|
*/
|
12576
12757
|
_metadataFor: function (modelName) {
|
12577
|
-
Ember.assert(
|
12758
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12578
12759
|
var typeClass = this.modelFor(modelName);
|
12579
12760
|
return this.typeMapFor(typeClass).metadata;
|
12580
12761
|
},
|
@@ -12588,7 +12769,10 @@
|
|
12588
12769
|
@deprecated
|
12589
12770
|
*/
|
12590
12771
|
setMetadataFor: function (modelName, metadata) {
|
12591
|
-
Ember.deprecate("`store.setMetadataFor()` has been deprecated. Please return meta from your serializer's `extractMeta` hook."
|
12772
|
+
Ember.deprecate("`store.setMetadataFor()` has been deprecated. Please return meta from your serializer's `extractMeta` hook.", false, {
|
12773
|
+
id: "ds.store.set-metadata-for-deprecated",
|
12774
|
+
until: "2.0.0"
|
12775
|
+
});
|
12592
12776
|
this._setMetadataFor(modelName, metadata);
|
12593
12777
|
},
|
12594
12778
|
|
@@ -12599,7 +12783,7 @@
|
|
12599
12783
|
@private
|
12600
12784
|
*/
|
12601
12785
|
_setMetadataFor: function (modelName, metadata) {
|
12602
|
-
Ember.assert(
|
12786
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12603
12787
|
var typeClass = this.modelFor(modelName);
|
12604
12788
|
Ember.merge(this.typeMapFor(typeClass).metadata, metadata);
|
12605
12789
|
},
|
@@ -12644,7 +12828,7 @@
|
|
12644
12828
|
snapshot: snapshot,
|
12645
12829
|
resolver: resolver
|
12646
12830
|
});
|
12647
|
-
ember$data$lib$system$store$$once(this,
|
12831
|
+
ember$data$lib$system$store$$once(this, "flushPendingSave");
|
12648
12832
|
},
|
12649
12833
|
|
12650
12834
|
/**
|
@@ -12664,14 +12848,14 @@
|
|
12664
12848
|
var adapter = this.adapterFor(record.type.modelName);
|
12665
12849
|
var operation;
|
12666
12850
|
|
12667
|
-
if (ember$data$lib$system$store$$get(record,
|
12851
|
+
if (ember$data$lib$system$store$$get(record, "currentState.stateName") === "root.deleted.saved") {
|
12668
12852
|
return resolver.resolve();
|
12669
12853
|
} else if (record.isNew()) {
|
12670
|
-
operation =
|
12854
|
+
operation = "createRecord";
|
12671
12855
|
} else if (record.isDeleted()) {
|
12672
|
-
operation =
|
12856
|
+
operation = "deleteRecord";
|
12673
12857
|
} else {
|
12674
|
-
operation =
|
12858
|
+
operation = "updateRecord";
|
12675
12859
|
}
|
12676
12860
|
|
12677
12861
|
resolver.resolve(ember$data$lib$system$store$$_commit(adapter, this, operation, snapshot));
|
@@ -12696,7 +12880,7 @@
|
|
12696
12880
|
}
|
12697
12881
|
if (data) {
|
12698
12882
|
// normalize relationship IDs into records
|
12699
|
-
this._backburner.schedule(
|
12883
|
+
this._backburner.schedule("normalizeRelationships", this, "_setupRelationships", internalModel, internalModel.type, data);
|
12700
12884
|
this.updateId(internalModel, data);
|
12701
12885
|
}
|
12702
12886
|
|
@@ -12759,7 +12943,7 @@
|
|
12759
12943
|
@return {Object} typeMap
|
12760
12944
|
*/
|
12761
12945
|
typeMapFor: function (typeClass) {
|
12762
|
-
var typeMaps = ember$data$lib$system$store$$get(this,
|
12946
|
+
var typeMaps = ember$data$lib$system$store$$get(this, "typeMaps");
|
12763
12947
|
var guid = Ember.guidFor(typeClass);
|
12764
12948
|
var typeMap = typeMaps[guid];
|
12765
12949
|
|
@@ -12820,10 +13004,10 @@
|
|
12820
13004
|
_modelForMixin: function (modelName) {
|
12821
13005
|
var normalizedModelName = ember$data$lib$system$normalize$model$name$$default(modelName);
|
12822
13006
|
var registry = this.container._registry ? this.container._registry : this.container;
|
12823
|
-
var mixin = registry.resolve(
|
13007
|
+
var mixin = registry.resolve("mixin:" + normalizedModelName);
|
12824
13008
|
if (mixin) {
|
12825
13009
|
//Cache the class as a model
|
12826
|
-
registry.register(
|
13010
|
+
registry.register("model:" + normalizedModelName, DS.Model.extend(mixin));
|
12827
13011
|
}
|
12828
13012
|
var factory = this.modelFactoryFor(normalizedModelName);
|
12829
13013
|
if (factory) {
|
@@ -12843,7 +13027,7 @@
|
|
12843
13027
|
@return {DS.Model}
|
12844
13028
|
*/
|
12845
13029
|
modelFor: function (modelName) {
|
12846
|
-
Ember.assert(
|
13030
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12847
13031
|
|
12848
13032
|
var factory = this.modelFactoryFor(modelName);
|
12849
13033
|
if (!factory) {
|
@@ -12856,12 +13040,15 @@
|
|
12856
13040
|
factory.modelName = factory.modelName || ember$data$lib$system$normalize$model$name$$default(modelName);
|
12857
13041
|
|
12858
13042
|
// deprecate typeKey
|
12859
|
-
if (!(
|
12860
|
-
Ember.defineProperty(factory,
|
13043
|
+
if (!("typeKey" in factory)) {
|
13044
|
+
Ember.defineProperty(factory, "typeKey", {
|
12861
13045
|
enumerable: true,
|
12862
13046
|
configurable: false,
|
12863
13047
|
get: function () {
|
12864
|
-
Ember.deprecate(
|
13048
|
+
Ember.deprecate("Usage of `typeKey` has been deprecated and will be removed in Ember Data 2.0. It has been replaced by `modelName` on the model class.", false, {
|
13049
|
+
id: "ds.model.type-key-replace-by-model-name",
|
13050
|
+
until: "2.0.0"
|
13051
|
+
});
|
12865
13052
|
var typeKey = this.modelName;
|
12866
13053
|
if (typeKey) {
|
12867
13054
|
typeKey = Ember.String.camelize(this.modelName);
|
@@ -12869,7 +13056,7 @@
|
|
12869
13056
|
return typeKey;
|
12870
13057
|
},
|
12871
13058
|
set: function () {
|
12872
|
-
Ember.assert(
|
13059
|
+
Ember.assert("Setting typeKey is not supported. In addition, typeKey has also been deprecated in favor of modelName. Setting modelName is also not supported.");
|
12873
13060
|
}
|
12874
13061
|
});
|
12875
13062
|
}
|
@@ -12878,9 +13065,9 @@
|
|
12878
13065
|
},
|
12879
13066
|
|
12880
13067
|
modelFactoryFor: function (modelName) {
|
12881
|
-
Ember.assert(
|
13068
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
12882
13069
|
var normalizedKey = ember$data$lib$system$normalize$model$name$$default(modelName);
|
12883
|
-
return this.container.lookupFactory(
|
13070
|
+
return this.container.lookupFactory("model:" + normalizedKey);
|
12884
13071
|
},
|
12885
13072
|
|
12886
13073
|
/**
|
@@ -12943,15 +13130,18 @@
|
|
12943
13130
|
|
12944
13131
|
var data, modelName;
|
12945
13132
|
|
12946
|
-
if (Ember.typeOf(modelNameArg) ===
|
13133
|
+
if (Ember.typeOf(modelNameArg) === "object" && Ember.typeOf(dataArg) === "undefined") {
|
12947
13134
|
data = modelNameArg;
|
12948
13135
|
} else {
|
12949
|
-
Ember.deprecate(
|
12950
|
-
|
12951
|
-
|
13136
|
+
Ember.deprecate("store.push(type, data) has been deprecated. Please provide a JSON-API document object as the first and only argument to store.push.", false, {
|
13137
|
+
id: "ds.store.push-with-type-and-data-deprecated",
|
13138
|
+
until: "2.0.0"
|
13139
|
+
});
|
13140
|
+
Ember.assert("Expected an object as `data` in a call to `push` for " + modelNameArg + " , but was " + Ember.typeOf(dataArg), Ember.typeOf(dataArg) === "object");
|
13141
|
+
Ember.assert("You must include an `id` for " + modelNameArg + " in an object passed to `push`", dataArg.id != null && dataArg.id !== "");
|
12952
13142
|
data = ember$data$lib$system$store$serializer$response$$_normalizeSerializerPayload(this.modelFor(modelNameArg), dataArg);
|
12953
13143
|
modelName = modelNameArg;
|
12954
|
-
Ember.assert(
|
13144
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string" || typeof data === "undefined");
|
12955
13145
|
}
|
12956
13146
|
|
12957
13147
|
if (data.included) {
|
@@ -12960,7 +13150,7 @@
|
|
12960
13150
|
});
|
12961
13151
|
}
|
12962
13152
|
|
12963
|
-
if (Ember.typeOf(data.data) ===
|
13153
|
+
if (Ember.typeOf(data.data) === "array") {
|
12964
13154
|
var internalModels = ember$data$lib$system$store$$map.call(data.data, function (recordData) {
|
12965
13155
|
return _this._pushInternalModel(recordData);
|
12966
13156
|
});
|
@@ -12980,8 +13170,8 @@
|
|
12980
13170
|
|
12981
13171
|
_pushInternalModel: function (data) {
|
12982
13172
|
var modelName = data.type;
|
12983
|
-
Ember.assert("Expected an object as 'data' in a call to 'push' for " + modelName + ", but was " + Ember.typeOf(data), Ember.typeOf(data) ===
|
12984
|
-
Ember.assert("You must include an 'id' for " + modelName + " in an object passed to 'push'", data.id != null && data.id !==
|
13173
|
+
Ember.assert("Expected an object as 'data' in a call to 'push' for " + modelName + ", but was " + Ember.typeOf(data), Ember.typeOf(data) === "object");
|
13174
|
+
Ember.assert("You must include an 'id' for " + modelName + " in an object passed to 'push'", data.id != null && data.id !== "");
|
12985
13175
|
Ember.assert("You tried to push data with a type '" + modelName + "' but no model could be found with that name.", this._hasModelFor(modelName));
|
12986
13176
|
|
12987
13177
|
var type = this.modelFor(modelName);
|
@@ -12992,10 +13182,10 @@
|
|
12992
13182
|
|
12993
13183
|
if (Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS) {
|
12994
13184
|
Ember.warn("The payload for '" + type.modelName + "' contains these unknown keys: " + Ember.inspect(filter.call(ember$data$lib$system$object$polyfills$$keysFunc(data), function (key) {
|
12995
|
-
return !(key ===
|
13185
|
+
return !(key === "id" || key === "links" || ember$data$lib$system$store$$get(type, "fields").has(key) || key.match(/Type$/));
|
12996
13186
|
})) + ". Make sure they've been defined in your model.", filter.call(ember$data$lib$system$object$polyfills$$keysFunc(data), function (key) {
|
12997
|
-
return !(key ===
|
12998
|
-
}).length === 0);
|
13187
|
+
return !(key === "id" || key === "links" || ember$data$lib$system$store$$get(type, "fields").has(key) || key.match(/Type$/));
|
13188
|
+
}).length === 0, { id: "ds.store.unknown-keys-in-payload" });
|
12999
13189
|
}
|
13000
13190
|
|
13001
13191
|
// Actually load the record into the store.
|
@@ -13004,7 +13194,7 @@
|
|
13004
13194
|
var store = this;
|
13005
13195
|
|
13006
13196
|
this._backburner.join(function () {
|
13007
|
-
store._backburner.schedule(
|
13197
|
+
store._backburner.schedule("normalizeRelationships", store, "_setupRelationships", internalModel, type, data);
|
13008
13198
|
});
|
13009
13199
|
|
13010
13200
|
return internalModel;
|
@@ -13075,10 +13265,10 @@
|
|
13075
13265
|
if (!inputPayload) {
|
13076
13266
|
payload = modelName;
|
13077
13267
|
serializer = ember$data$lib$system$store$$defaultSerializer(this);
|
13078
|
-
Ember.assert("You cannot use `store#pushPayload` without a modelName unless your default serializer defines `pushPayload`", typeof serializer.pushPayload ===
|
13268
|
+
Ember.assert("You cannot use `store#pushPayload` without a modelName unless your default serializer defines `pushPayload`", typeof serializer.pushPayload === "function");
|
13079
13269
|
} else {
|
13080
13270
|
payload = inputPayload;
|
13081
|
-
Ember.assert(
|
13271
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
13082
13272
|
serializer = this.serializerFor(modelName);
|
13083
13273
|
}
|
13084
13274
|
var store = this;
|
@@ -13104,7 +13294,7 @@
|
|
13104
13294
|
@return {Object} The normalized payload
|
13105
13295
|
*/
|
13106
13296
|
normalize: function (modelName, payload) {
|
13107
|
-
Ember.assert(
|
13297
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
13108
13298
|
var serializer = this.serializerFor(modelName);
|
13109
13299
|
var model = this.modelFor(modelName);
|
13110
13300
|
return serializer.normalize(model, payload);
|
@@ -13118,8 +13308,11 @@
|
|
13118
13308
|
@deprecated Use [push](#method_push) instead
|
13119
13309
|
*/
|
13120
13310
|
update: function (modelName, data) {
|
13121
|
-
Ember.assert(
|
13122
|
-
Ember.deprecate(
|
13311
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
13312
|
+
Ember.deprecate("Using store.update() has been deprecated since store.push() now handles partial updates. You should use store.push() instead.", false, {
|
13313
|
+
id: "ds.store.update-deprecated",
|
13314
|
+
until: "2.0.0"
|
13315
|
+
});
|
13123
13316
|
return this.push(modelName, data);
|
13124
13317
|
},
|
13125
13318
|
|
@@ -13133,8 +13326,11 @@
|
|
13133
13326
|
@return {Array}
|
13134
13327
|
*/
|
13135
13328
|
pushMany: function (modelName, datas) {
|
13136
|
-
Ember.assert(
|
13137
|
-
Ember.deprecate(
|
13329
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
13330
|
+
Ember.deprecate("Using store.pushMany() has been deprecated since store.push() now handles multiple items. You should use store.push() instead.", false, {
|
13331
|
+
id: "ds.store.push-many-deprecated",
|
13332
|
+
until: "2.0.0"
|
13333
|
+
});
|
13138
13334
|
var length = datas.length;
|
13139
13335
|
var result = new Array(length);
|
13140
13336
|
|
@@ -13152,8 +13348,11 @@
|
|
13152
13348
|
@deprecated Use [setMetadataFor](#method_setMetadataFor) instead
|
13153
13349
|
*/
|
13154
13350
|
metaForType: function (modelName, metadata) {
|
13155
|
-
Ember.assert(
|
13156
|
-
Ember.deprecate(
|
13351
|
+
Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
|
13352
|
+
Ember.deprecate("Using store.metaForType() has been deprecated. Use store.setMetadataFor() to set metadata for a specific type.", false, {
|
13353
|
+
id: "ds.store.meta-for-type-deprecated",
|
13354
|
+
until: "2.0.0"
|
13355
|
+
});
|
13157
13356
|
this.setMetadataFor(modelName, metadata);
|
13158
13357
|
},
|
13159
13358
|
|
@@ -13171,8 +13370,8 @@
|
|
13171
13370
|
var typeMap = this.typeMapFor(type);
|
13172
13371
|
var idToRecord = typeMap.idToRecord;
|
13173
13372
|
|
13174
|
-
Ember.assert(
|
13175
|
-
Ember.assert("`" + Ember.inspect(type) + "` does not appear to be an ember-data model", typeof type._create ===
|
13373
|
+
Ember.assert("The id " + id + " has already been used with another record of type " + type.toString() + ".", !id || !idToRecord[id]);
|
13374
|
+
Ember.assert("`" + Ember.inspect(type) + "` does not appear to be an ember-data model", typeof type._create === "function");
|
13176
13375
|
|
13177
13376
|
// lookupFactory should really return an object that creates
|
13178
13377
|
// instances with the injections applied
|
@@ -13205,7 +13404,10 @@
|
|
13205
13404
|
@deprecated Use [unloadRecord](#method_unloadRecord) instead
|
13206
13405
|
*/
|
13207
13406
|
dematerializeRecord: function (record) {
|
13208
|
-
Ember.deprecate(
|
13407
|
+
Ember.deprecate("Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead.", false, {
|
13408
|
+
id: "ds.store.dematerialize-record-deprecated",
|
13409
|
+
until: "2.0.0"
|
13410
|
+
});
|
13209
13411
|
this._dematerializeRecord(record);
|
13210
13412
|
},
|
13211
13413
|
|
@@ -13252,12 +13454,11 @@
|
|
13252
13454
|
adapterFor: function (modelOrClass) {
|
13253
13455
|
var modelName;
|
13254
13456
|
|
13255
|
-
|
13256
|
-
|
13257
|
-
if (typeof modelOrClass !== 'string') {
|
13258
|
-
modelName = modelOrClass.modelName;
|
13259
|
-
} else {
|
13457
|
+
if (typeof modelOrClass === "string") {
|
13260
13458
|
modelName = modelOrClass;
|
13459
|
+
} else {
|
13460
|
+
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" });
|
13461
|
+
modelName = modelOrClass.modelName;
|
13261
13462
|
}
|
13262
13463
|
|
13263
13464
|
return this.lookupAdapter(modelName);
|
@@ -13291,14 +13492,14 @@
|
|
13291
13492
|
serializerFor: function (modelOrClass) {
|
13292
13493
|
var modelName;
|
13293
13494
|
|
13294
|
-
|
13295
|
-
if (typeof modelOrClass !== 'string') {
|
13296
|
-
modelName = modelOrClass.modelName;
|
13297
|
-
} else {
|
13495
|
+
if (typeof modelOrClass === "string") {
|
13298
13496
|
modelName = modelOrClass;
|
13497
|
+
} else {
|
13498
|
+
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" });
|
13499
|
+
modelName = modelOrClass.modelName;
|
13299
13500
|
}
|
13300
13501
|
|
13301
|
-
var fallbacks = [
|
13502
|
+
var fallbacks = ["application", this.adapterFor(modelName).get("defaultSerializer"), "-default"];
|
13302
13503
|
|
13303
13504
|
var serializer = this.lookupSerializer(modelName, fallbacks);
|
13304
13505
|
return serializer;
|
@@ -13321,21 +13522,21 @@
|
|
13321
13522
|
var normalizedModelName = ember$data$lib$system$normalize$model$name$$default(modelName);
|
13322
13523
|
|
13323
13524
|
var instance = this._instanceCache.get(type, normalizedModelName, fallbacks);
|
13324
|
-
ember$data$lib$system$store$$set(instance,
|
13525
|
+
ember$data$lib$system$store$$set(instance, "store", this);
|
13325
13526
|
return instance;
|
13326
13527
|
},
|
13327
13528
|
|
13328
13529
|
lookupAdapter: function (name) {
|
13329
|
-
return this.retrieveManagedInstance(
|
13530
|
+
return this.retrieveManagedInstance("adapter", name, this.get("_adapterFallbacks"));
|
13330
13531
|
},
|
13331
13532
|
|
13332
|
-
_adapterFallbacks: Ember.computed(
|
13333
|
-
var adapter = this.get(
|
13334
|
-
return [
|
13533
|
+
_adapterFallbacks: Ember.computed("adapter", function () {
|
13534
|
+
var adapter = this.get("adapter");
|
13535
|
+
return ["application", adapter, "-rest"];
|
13335
13536
|
}),
|
13336
13537
|
|
13337
13538
|
lookupSerializer: function (name, fallbacks) {
|
13338
|
-
return this.retrieveManagedInstance(
|
13539
|
+
return this.retrieveManagedInstance("serializer", name, fallbacks);
|
13339
13540
|
},
|
13340
13541
|
|
13341
13542
|
willDestroy: function () {
|
@@ -13360,9 +13561,9 @@
|
|
13360
13561
|
var value;
|
13361
13562
|
if (data.relationships[key] && data.relationships[key].data) {
|
13362
13563
|
value = data.relationships[key].data;
|
13363
|
-
if (kind ===
|
13564
|
+
if (kind === "belongsTo") {
|
13364
13565
|
data.relationships[key].data = ember$data$lib$system$store$$deserializeRecordId(store, key, relationship, value);
|
13365
|
-
} else if (kind ===
|
13566
|
+
} else if (kind === "hasMany") {
|
13366
13567
|
data.relationships[key].data = ember$data$lib$system$store$$deserializeRecordIds(store, key, relationship, value);
|
13367
13568
|
}
|
13368
13569
|
}
|
@@ -13396,7 +13597,7 @@
|
|
13396
13597
|
// Delegation to the adapter and promise management
|
13397
13598
|
|
13398
13599
|
function ember$data$lib$system$store$$defaultSerializer(store) {
|
13399
|
-
return store.serializerFor(
|
13600
|
+
return store.serializerFor("application");
|
13400
13601
|
}
|
13401
13602
|
|
13402
13603
|
function ember$data$lib$system$store$$_commit(adapter, store, operation, snapshot) {
|
@@ -13465,10 +13666,10 @@
|
|
13465
13666
|
var value = data.relationships[key].data;
|
13466
13667
|
|
13467
13668
|
if (value !== undefined) {
|
13468
|
-
if (kind ===
|
13669
|
+
if (kind === "belongsTo") {
|
13469
13670
|
relationship = record._relationships.get(key);
|
13470
13671
|
relationship.setCanonicalRecord(value);
|
13471
|
-
} else if (kind ===
|
13672
|
+
} else if (kind === "hasMany") {
|
13472
13673
|
relationship = record._relationships.get(key);
|
13473
13674
|
relationship.updateRecordsFromAdapter(value);
|
13474
13675
|
}
|
@@ -13479,7 +13680,7 @@
|
|
13479
13680
|
function ember$data$lib$system$store$$deprecatePreload(preloadOrOptions, type, methodName) {
|
13480
13681
|
if (preloadOrOptions) {
|
13481
13682
|
var modelProperties = [];
|
13482
|
-
var fields = Ember.get(type,
|
13683
|
+
var fields = Ember.get(type, "fields");
|
13483
13684
|
fields.forEach(function (fieldType, key) {
|
13484
13685
|
modelProperties.push(key);
|
13485
13686
|
});
|
@@ -13487,14 +13688,17 @@
|
|
13487
13688
|
var preloadDetected = false;
|
13488
13689
|
for (var i = 0, _length = modelProperties.length; i < _length; i++) {
|
13489
13690
|
var key = modelProperties[i];
|
13490
|
-
if (typeof preloadOrOptions[key] !==
|
13691
|
+
if (typeof preloadOrOptions[key] !== "undefined") {
|
13491
13692
|
preloadDetected = true;
|
13492
13693
|
break;
|
13493
13694
|
}
|
13494
13695
|
}
|
13495
13696
|
|
13496
13697
|
if (preloadDetected) {
|
13497
|
-
Ember.deprecate("Passing a preload argument to `store." + methodName + "` is deprecated. Please move it to the preload key on the " + methodName + " `options` argument."
|
13698
|
+
Ember.deprecate("Passing a preload argument to `store." + methodName + "` is deprecated. Please move it to the preload key on the " + methodName + " `options` argument.", false, {
|
13699
|
+
id: "ds.store.preload-outside-options",
|
13700
|
+
until: "2.0.0"
|
13701
|
+
});
|
13498
13702
|
var preload = preloadOrOptions;
|
13499
13703
|
return {
|
13500
13704
|
preload: preload
|
@@ -13717,7 +13921,22 @@
|
|
13717
13921
|
},
|
13718
13922
|
|
13719
13923
|
/**
|
13720
|
-
|
13924
|
+
`keyForAttribute` can be used to define rules for how to convert an
|
13925
|
+
attribute name in your model to a key in your JSON.
|
13926
|
+
By default `JSONAPISerializer` follows the format used on the examples of
|
13927
|
+
http://jsonapi.org/format and uses dashes as the word separator in the JSON
|
13928
|
+
attribute keys.
|
13929
|
+
This behaviour can be easily customized by extending this method.
|
13930
|
+
Example
|
13931
|
+
```app/serializers/application.js
|
13932
|
+
import DS from 'ember-data';
|
13933
|
+
export default DS.JSONAPISerializer.extend({
|
13934
|
+
keyForAttribute: function(attr, method) {
|
13935
|
+
return Ember.String.dasherize(attr).toUpperCase();
|
13936
|
+
}
|
13937
|
+
});
|
13938
|
+
```
|
13939
|
+
@method keyForAttribute
|
13721
13940
|
@param {String} key
|
13722
13941
|
@param {String} method
|
13723
13942
|
@return {String} normalized key
|
@@ -13727,6 +13946,21 @@
|
|
13727
13946
|
},
|
13728
13947
|
|
13729
13948
|
/**
|
13949
|
+
`keyForRelationship` can be used to define a custom key when
|
13950
|
+
serializing and deserializing relationship properties.
|
13951
|
+
By default `JSONAPISerializer` follows the format used on the examples of
|
13952
|
+
http://jsonapi.org/format and uses dashes as word separators in
|
13953
|
+
relationship properties.
|
13954
|
+
This behaviour can be easily customized by extending this method.
|
13955
|
+
Example
|
13956
|
+
```app/serializers/post.js
|
13957
|
+
import DS from 'ember-data';
|
13958
|
+
export default DS.JSONAPISerializer.extend({
|
13959
|
+
keyForRelationship: function(key, relationship, method) {
|
13960
|
+
return Ember.String.underscore(key);
|
13961
|
+
}
|
13962
|
+
});
|
13963
|
+
```
|
13730
13964
|
@method keyForRelationship
|
13731
13965
|
@param {String} key
|
13732
13966
|
@param {String} typeClass
|
@@ -13856,44 +14090,50 @@
|
|
13856
14090
|
@param {Object} [application] an application namespace
|
13857
14091
|
*/
|
13858
14092
|
function ember$data$lib$initializers$store$$initializeStore(registry, application) {
|
13859
|
-
Ember.deprecate(
|
14093
|
+
Ember.deprecate("Specifying a custom Store for Ember Data on your global namespace as `App.Store` " + "has been deprecated. Please use `App.ApplicationStore` instead.", !(application && application.Store), { id: "ds.initializer.specifying-custom-store-on-global-namespace-deprecated", until: "2.0.0" });
|
13860
14094
|
|
13861
|
-
registry.optionsForType(
|
13862
|
-
registry.optionsForType(
|
14095
|
+
registry.optionsForType("serializer", { singleton: false });
|
14096
|
+
registry.optionsForType("adapter", { singleton: false });
|
13863
14097
|
|
13864
14098
|
// allow older names to be looked up
|
13865
14099
|
var proxy = new ember$data$lib$system$container$proxy$$default(registry);
|
13866
|
-
proxy.registerDeprecations([{ deprecated:
|
14100
|
+
proxy.registerDeprecations([{ deprecated: "serializer:_default", valid: "serializer:-default" }, { deprecated: "serializer:_rest", valid: "serializer:-rest" }, { deprecated: "adapter:_rest", valid: "adapter:-rest" }]);
|
13867
14101
|
|
13868
14102
|
// new go forward paths
|
13869
|
-
registry.register(
|
13870
|
-
registry.register(
|
13871
|
-
registry.register(
|
14103
|
+
registry.register("serializer:-default", ember$data$lib$serializers$json$serializer$$default.extend({ isNewSerializerAPI: true }));
|
14104
|
+
registry.register("serializer:-rest", ember$data$lib$serializers$rest$serializer$$default.extend({ isNewSerializerAPI: true }));
|
14105
|
+
registry.register("adapter:-rest", ember$data$lib$adapters$rest$adapter$$default);
|
13872
14106
|
|
13873
|
-
registry.register(
|
13874
|
-
registry.register(
|
14107
|
+
registry.register("adapter:-json-api", ember$data$lib$adapters$json$api$adapter$$default);
|
14108
|
+
registry.register("serializer:-json-api", ember$data$lib$serializers$json$api$serializer$$default);
|
13875
14109
|
|
13876
14110
|
var store;
|
13877
|
-
if (registry.has(
|
13878
|
-
Ember.deprecate(
|
13879
|
-
|
14111
|
+
if (registry.has("store:main")) {
|
14112
|
+
Ember.deprecate("Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`", false, {
|
14113
|
+
id: "ds.initializer.custom-store-as-store-main-deprecated",
|
14114
|
+
until: "2.0.0"
|
14115
|
+
});
|
14116
|
+
store = registry.lookup("store:main");
|
13880
14117
|
} else {
|
13881
14118
|
var storeMainProxy = new ember$data$lib$system$container$proxy$$default(registry);
|
13882
|
-
storeMainProxy.registerDeprecations([{ deprecated:
|
14119
|
+
storeMainProxy.registerDeprecations([{ deprecated: "store:main", valid: "service:store" }]);
|
13883
14120
|
}
|
13884
14121
|
|
13885
|
-
if (registry.has(
|
13886
|
-
Ember.deprecate(
|
13887
|
-
|
14122
|
+
if (registry.has("store:application")) {
|
14123
|
+
Ember.deprecate("Registering a custom store as `store:main` or defining a store in app/store.js has been deprecated. Please move you store to `service:store` or define your custom store in `app/services/store.js`", false, {
|
14124
|
+
id: "ds.initializer.custom-store-as-store-main-deprecated",
|
14125
|
+
until: "2.0.0"
|
14126
|
+
});
|
14127
|
+
store = registry.lookup("store:application");
|
13888
14128
|
} else {
|
13889
14129
|
var storeApplicationProxy = new ember$data$lib$system$container$proxy$$default(registry);
|
13890
|
-
storeApplicationProxy.registerDeprecations([{ deprecated:
|
14130
|
+
storeApplicationProxy.registerDeprecations([{ deprecated: "store:application", valid: "service:store" }]);
|
13891
14131
|
}
|
13892
14132
|
|
13893
14133
|
if (store) {
|
13894
|
-
registry.register(
|
13895
|
-
} else if (!registry.has(
|
13896
|
-
registry.register(
|
14134
|
+
registry.register("service:store", store, { instantiate: false });
|
14135
|
+
} else if (!registry.has("service:store")) {
|
14136
|
+
registry.register("service:store", application && application.Store || ember$data$lib$system$store$$default);
|
13897
14137
|
}
|
13898
14138
|
}
|
13899
14139
|
|
@@ -13984,9 +14224,9 @@
|
|
13984
14224
|
deserialize: function (serialized) {
|
13985
14225
|
var type = typeof serialized;
|
13986
14226
|
|
13987
|
-
if (type ===
|
14227
|
+
if (type === 'string') {
|
13988
14228
|
return new Date(Ember.Date.parse(serialized));
|
13989
|
-
} else if (type ===
|
14229
|
+
} else if (type === 'number') {
|
13990
14230
|
return new Date(serialized);
|
13991
14231
|
} else if (serialized === null || serialized === undefined) {
|
13992
14232
|
// if the value is null return null
|
@@ -14065,61 +14305,6 @@
|
|
14065
14305
|
registry.injection('route', 'store', 'service:store');
|
14066
14306
|
registry.injection('data-adapter', 'store', 'service:store');
|
14067
14307
|
}
|
14068
|
-
var ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
|
14069
|
-
|
14070
|
-
try {
|
14071
|
-
ember$lib$main$$default.computed({
|
14072
|
-
set: function () {},
|
14073
|
-
get: function () {}
|
14074
|
-
});
|
14075
|
-
ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = true;
|
14076
|
-
} catch (e) {
|
14077
|
-
ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter = false;
|
14078
|
-
}
|
14079
|
-
|
14080
|
-
var ember$new$computed$lib$utils$can$use$new$syntax$$default = ember$new$computed$lib$utils$can$use$new$syntax$$supportsSetterGetter;
|
14081
|
-
var ember$new$computed$lib$main$$default = ember$new$computed$lib$main$$newComputed;
|
14082
|
-
|
14083
|
-
var ember$new$computed$lib$main$$computed = ember$lib$main$$default.computed;
|
14084
|
-
|
14085
|
-
function ember$new$computed$lib$main$$newComputed() {
|
14086
|
-
var polyfillArguments = [];
|
14087
|
-
var config = arguments[arguments.length - 1];
|
14088
|
-
|
14089
|
-
if (typeof config === 'function' || ember$new$computed$lib$utils$can$use$new$syntax$$default) {
|
14090
|
-
return ember$new$computed$lib$main$$computed.apply(undefined, arguments);
|
14091
|
-
}
|
14092
|
-
|
14093
|
-
for (var i = 0, l = arguments.length - 1; i < l; i++) {
|
14094
|
-
polyfillArguments.push(arguments[i]);
|
14095
|
-
}
|
14096
|
-
|
14097
|
-
var func;
|
14098
|
-
if (config.set) {
|
14099
|
-
func = function (key, value) {
|
14100
|
-
if (arguments.length > 1) {
|
14101
|
-
return config.set.call(this, key, value);
|
14102
|
-
} else {
|
14103
|
-
return config.get.call(this, key);
|
14104
|
-
}
|
14105
|
-
};
|
14106
|
-
} else {
|
14107
|
-
func = function (key) {
|
14108
|
-
return config.get.call(this, key);
|
14109
|
-
};
|
14110
|
-
}
|
14111
|
-
|
14112
|
-
polyfillArguments.push(func);
|
14113
|
-
|
14114
|
-
return ember$new$computed$lib$main$$computed.apply(undefined, polyfillArguments);
|
14115
|
-
}
|
14116
|
-
|
14117
|
-
var ember$new$computed$lib$main$$getKeys = Object.keys || ember$lib$main$$default.keys;
|
14118
|
-
var ember$new$computed$lib$main$$computedKeys = ember$new$computed$lib$main$$getKeys(ember$new$computed$lib$main$$computed);
|
14119
|
-
|
14120
|
-
for (var ember$new$computed$lib$main$$i = 0, ember$new$computed$lib$main$$l = ember$new$computed$lib$main$$computedKeys.length; ember$new$computed$lib$main$$i < ember$new$computed$lib$main$$l; ember$new$computed$lib$main$$i++) {
|
14121
|
-
ember$new$computed$lib$main$$newComputed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]] = ember$new$computed$lib$main$$computed[ember$new$computed$lib$main$$computedKeys[ember$new$computed$lib$main$$i]];
|
14122
|
-
}
|
14123
14308
|
var ember$data$lib$system$model$attributes$$default = ember$data$lib$system$model$attributes$$attr;
|
14124
14309
|
|
14125
14310
|
/**
|
@@ -14168,7 +14353,7 @@
|
|
14168
14353
|
|
14169
14354
|
this.eachComputedProperty(function (name, meta) {
|
14170
14355
|
if (meta.isAttribute) {
|
14171
|
-
Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.toString(), name !==
|
14356
|
+
Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.toString(), name !== "id");
|
14172
14357
|
|
14173
14358
|
meta.name = name;
|
14174
14359
|
map.set(name, meta);
|
@@ -14254,7 +14439,7 @@
|
|
14254
14439
|
@static
|
14255
14440
|
*/
|
14256
14441
|
eachAttribute: function (callback, binding) {
|
14257
|
-
ember$data$lib$system$model$attributes$$get(this,
|
14442
|
+
ember$data$lib$system$model$attributes$$get(this, "attributes").forEach(function (meta, name) {
|
14258
14443
|
callback.call(binding, name, meta);
|
14259
14444
|
}, binding);
|
14260
14445
|
},
|
@@ -14294,7 +14479,7 @@
|
|
14294
14479
|
@static
|
14295
14480
|
*/
|
14296
14481
|
eachTransformedAttribute: function (callback, binding) {
|
14297
|
-
ember$data$lib$system$model$attributes$$get(this,
|
14482
|
+
ember$data$lib$system$model$attributes$$get(this, "transformedAttributes").forEach(function (type, name) {
|
14298
14483
|
callback.call(binding, name, type);
|
14299
14484
|
});
|
14300
14485
|
}
|
@@ -14379,7 +14564,7 @@
|
|
14379
14564
|
@return {Attribute}
|
14380
14565
|
*/
|
14381
14566
|
function ember$data$lib$system$model$attributes$$attr(type, options) {
|
14382
|
-
if (typeof type ===
|
14567
|
+
if (typeof type === "object") {
|
14383
14568
|
options = type;
|
14384
14569
|
type = undefined;
|
14385
14570
|
} else {
|
@@ -14402,7 +14587,7 @@
|
|
14402
14587
|
}
|
14403
14588
|
},
|
14404
14589
|
set: function (key, value) {
|
14405
|
-
Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.constructor.toString(), key !==
|
14590
|
+
Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.constructor.toString(), key !== "id");
|
14406
14591
|
var internalModel = this._internalModel;
|
14407
14592
|
var oldValue = ember$data$lib$system$model$attributes$$getValue(internalModel, key);
|
14408
14593
|
|
@@ -14411,7 +14596,7 @@
|
|
14411
14596
|
// the 'didSetProperty' handler if it is no different from the original value
|
14412
14597
|
internalModel._attributes[key] = value;
|
14413
14598
|
|
14414
|
-
this._internalModel.send(
|
14599
|
+
this._internalModel.send("didSetProperty", {
|
14415
14600
|
name: key,
|
14416
14601
|
oldValue: oldValue,
|
14417
14602
|
originalValue: internalModel._data[key],
|
@@ -14428,15 +14613,6 @@
|
|
14428
14613
|
var ember$data$lib$system$debug$debug$adapter$$capitalize = Ember.String.capitalize;
|
14429
14614
|
var ember$data$lib$system$debug$debug$adapter$$underscore = Ember.String.underscore;
|
14430
14615
|
var ember$data$lib$system$debug$debug$adapter$$_Ember = Ember;
|
14431
|
-
|
14432
|
-
/**
|
14433
|
-
Extend `Ember.DataAdapter` with ED specific code.
|
14434
|
-
|
14435
|
-
@class DebugAdapter
|
14436
|
-
@namespace DS
|
14437
|
-
@extends Ember.DataAdapter
|
14438
|
-
@private
|
14439
|
-
*/
|
14440
14616
|
var ember$data$lib$system$debug$debug$adapter$$assert = ember$data$lib$system$debug$debug$adapter$$_Ember.assert;
|
14441
14617
|
|
14442
14618
|
var ember$data$lib$system$debug$debug$adapter$$default = Ember.DataAdapter.extend({
|
@@ -14476,7 +14652,7 @@
|
|
14476
14652
|
}
|
14477
14653
|
}
|
14478
14654
|
}
|
14479
|
-
ember$data$lib$system$debug$debug$adapter$$assert(
|
14655
|
+
ember$data$lib$system$debug$debug$adapter$$assert('Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support', !!modelName);
|
14480
14656
|
return this.get('store').peekAll(modelName);
|
14481
14657
|
},
|
14482
14658
|
|
@@ -14565,7 +14741,7 @@
|
|
14565
14741
|
@param {Ember.Registry} registry
|
14566
14742
|
*/
|
14567
14743
|
function ember$data$lib$initializers$data$adapter$$initializeDebugAdapter(registry) {
|
14568
|
-
registry.register(
|
14744
|
+
registry.register("data-adapter:main", ember$data$lib$system$debug$debug$adapter$$default);
|
14569
14745
|
}
|
14570
14746
|
var ember$data$lib$instance$initializers$initialize$store$service$$default = ember$data$lib$instance$initializers$initialize$store$service$$initializeStoreService;
|
14571
14747
|
/**
|
@@ -14659,51 +14835,51 @@
|
|
14659
14835
|
Ember.onLoad('Ember.Application', function (Application) {
|
14660
14836
|
|
14661
14837
|
Application.initializer({
|
14662
|
-
name:
|
14838
|
+
name: 'ember-data',
|
14663
14839
|
initialize: ember$data$lib$setup$container$$initializeInjects
|
14664
14840
|
});
|
14665
14841
|
|
14666
14842
|
if (Application.instanceInitializer) {
|
14667
14843
|
Application.instanceInitializer({
|
14668
|
-
name:
|
14844
|
+
name: 'ember-data',
|
14669
14845
|
initialize: ember$data$lib$instance$initializers$initialize$store$service$$default
|
14670
14846
|
});
|
14671
14847
|
} else {
|
14672
14848
|
Application.initializer({
|
14673
|
-
name:
|
14674
|
-
after:
|
14849
|
+
name: 'ember-data-store-service',
|
14850
|
+
after: 'ember-data',
|
14675
14851
|
initialize: ember$data$lib$instance$initializers$initialize$store$service$$default
|
14676
14852
|
});
|
14677
14853
|
}
|
14678
14854
|
|
14679
14855
|
// Deprecated initializers to satisfy old code that depended on them
|
14680
14856
|
Application.initializer({
|
14681
|
-
name:
|
14682
|
-
after:
|
14857
|
+
name: 'store',
|
14858
|
+
after: 'ember-data',
|
14683
14859
|
initialize: ember$data$lib$ember$initializer$$K
|
14684
14860
|
});
|
14685
14861
|
|
14686
14862
|
Application.initializer({
|
14687
|
-
name:
|
14688
|
-
before:
|
14863
|
+
name: 'activeModelAdapter',
|
14864
|
+
before: 'store',
|
14689
14865
|
initialize: ember$data$lib$ember$initializer$$K
|
14690
14866
|
});
|
14691
14867
|
|
14692
14868
|
Application.initializer({
|
14693
|
-
name:
|
14694
|
-
before:
|
14869
|
+
name: 'transforms',
|
14870
|
+
before: 'store',
|
14695
14871
|
initialize: ember$data$lib$ember$initializer$$K
|
14696
14872
|
});
|
14697
14873
|
|
14698
14874
|
Application.initializer({
|
14699
|
-
name:
|
14700
|
-
before:
|
14875
|
+
name: 'data-adapter',
|
14876
|
+
before: 'store',
|
14701
14877
|
initialize: ember$data$lib$ember$initializer$$K
|
14702
14878
|
});
|
14703
14879
|
|
14704
14880
|
Application.initializer({
|
14705
|
-
name:
|
14706
|
-
before:
|
14881
|
+
name: 'injectStore',
|
14882
|
+
before: 'store',
|
14707
14883
|
initialize: ember$data$lib$ember$initializer$$K
|
14708
14884
|
});
|
14709
14885
|
});
|
@@ -15106,7 +15282,7 @@
|
|
15106
15282
|
key = this.keyForAttribute(attr, 'serialize');
|
15107
15283
|
hasMany = snapshot.hasMany(attr);
|
15108
15284
|
|
15109
|
-
Ember.warn(
|
15285
|
+
Ember.warn('The embedded relationship \'' + key + '\' is undefined for \'' + snapshot.modelName + '\' with id \'' + snapshot.id + '\'. Please include it in your original payload.', Ember.typeOf(hasMany) !== 'undefined', { id: 'ds.serializer.embedded-relationship-undefined' });
|
15110
15286
|
|
15111
15287
|
json[key] = Ember.A(hasMany).map(function (embeddedSnapshot) {
|
15112
15288
|
var embeddedJson = embeddedSnapshot.record.serialize({ includeId: true });
|
@@ -15199,14 +15375,14 @@
|
|
15199
15375
|
typeClass.eachRelationship(function (key, relationship) {
|
15200
15376
|
if (serializer.hasDeserializeRecordsOption(key)) {
|
15201
15377
|
var embeddedTypeClass = store.modelFor(relationship.type);
|
15202
|
-
if (relationship.kind ===
|
15378
|
+
if (relationship.kind === 'hasMany') {
|
15203
15379
|
if (relationship.options.polymorphic) {
|
15204
15380
|
this._extractEmbeddedHasManyPolymorphic(store, key, partial);
|
15205
15381
|
} else {
|
15206
15382
|
this._extractEmbeddedHasMany(store, key, embeddedTypeClass, partial);
|
15207
15383
|
}
|
15208
15384
|
}
|
15209
|
-
if (relationship.kind ===
|
15385
|
+
if (relationship.kind === 'belongsTo') {
|
15210
15386
|
if (relationship.options.polymorphic) {
|
15211
15387
|
this._extractEmbeddedBelongsToPolymorphic(store, key, partial);
|
15212
15388
|
} else {
|
@@ -15359,10 +15535,10 @@
|
|
15359
15535
|
|
15360
15536
|
typeClass.eachRelationship(function (key, relationship) {
|
15361
15537
|
if (serializer.hasDeserializeRecordsOption(key)) {
|
15362
|
-
if (relationship.kind ===
|
15538
|
+
if (relationship.kind === 'hasMany') {
|
15363
15539
|
_this2._extractEmbeddedHasMany(store, key, partial, relationship);
|
15364
15540
|
}
|
15365
|
-
if (relationship.kind ===
|
15541
|
+
if (relationship.kind === 'belongsTo') {
|
15366
15542
|
_this2._extractEmbeddedBelongsTo(store, key, partial, relationship);
|
15367
15543
|
}
|
15368
15544
|
}
|
@@ -15506,7 +15682,7 @@
|
|
15506
15682
|
*/
|
15507
15683
|
function ember$data$lib$system$relationships$belongs$to$$belongsTo(modelName, options) {
|
15508
15684
|
var opts, userEnteredModelName;
|
15509
|
-
if (typeof modelName ===
|
15685
|
+
if (typeof modelName === "object") {
|
15510
15686
|
opts = modelName;
|
15511
15687
|
userEnteredModelName = undefined;
|
15512
15688
|
} else {
|
@@ -15514,16 +15690,16 @@
|
|
15514
15690
|
userEnteredModelName = modelName;
|
15515
15691
|
}
|
15516
15692
|
|
15517
|
-
if (typeof userEnteredModelName ===
|
15693
|
+
if (typeof userEnteredModelName === "string") {
|
15518
15694
|
userEnteredModelName = ember$data$lib$system$normalize$model$name$$default(userEnteredModelName);
|
15519
15695
|
}
|
15520
15696
|
|
15521
|
-
Ember.assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + Ember.inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName ===
|
15697
|
+
Ember.assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + Ember.inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName === "string" || typeof userEnteredModelName === "undefined");
|
15522
15698
|
|
15523
15699
|
opts = opts || {};
|
15524
15700
|
|
15525
15701
|
var shouldWarnAsync = false;
|
15526
|
-
if (typeof opts.async ===
|
15702
|
+
if (typeof opts.async === "undefined") {
|
15527
15703
|
shouldWarnAsync = true;
|
15528
15704
|
}
|
15529
15705
|
|
@@ -15531,18 +15707,30 @@
|
|
15531
15707
|
type: userEnteredModelName,
|
15532
15708
|
isRelationship: true,
|
15533
15709
|
options: opts,
|
15534
|
-
kind:
|
15710
|
+
kind: "belongsTo",
|
15535
15711
|
key: null,
|
15536
15712
|
shouldWarnAsync: shouldWarnAsync
|
15537
15713
|
};
|
15538
15714
|
|
15539
15715
|
return ember$new$computed$lib$main$$default({
|
15540
15716
|
get: function (key) {
|
15541
|
-
|
15542
|
-
|
15717
|
+
if (opts.hasOwnProperty("serialize")) {
|
15718
|
+
Ember.warn("You provided a serialize option on the \"" + key + "\" property in the \"" + this._internalModel.modelName + "\" class, this belongs in the serializer. See DS.Serializer and it's implementations http://emberjs.com/api/data/classes/DS.Serializer.html", false, {
|
15719
|
+
id: "ds.model.serialize-option-in-belongs-to"
|
15720
|
+
});
|
15721
|
+
}
|
15722
|
+
|
15723
|
+
if (opts.hasOwnProperty("embedded")) {
|
15724
|
+
Ember.warn("You provided an embedded option on the \"" + key + "\" property in the \"" + this._internalModel.modelName + "\" class, this belongs in the serializer. See DS.EmbeddedRecordsMixin http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html", false, {
|
15725
|
+
id: "ds.model.embedded-option-in-belongs-to"
|
15726
|
+
});
|
15727
|
+
}
|
15543
15728
|
|
15544
15729
|
if (meta.shouldWarnAsync) {
|
15545
|
-
Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.belongsTo('" + modelName + "', { async: false })` if you wish for a relationship remain synchronous."
|
15730
|
+
Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.belongsTo('" + modelName + "', { async: false })` if you wish for a relationship remain synchronous.", false, {
|
15731
|
+
id: "ds.model.relationship-changing-to-asynchrounous-by-default",
|
15732
|
+
until: "2.0.0"
|
15733
|
+
});
|
15546
15734
|
meta.shouldWarnAsycn = false;
|
15547
15735
|
}
|
15548
15736
|
|
@@ -15684,21 +15872,21 @@
|
|
15684
15872
|
@return {Ember.computed} relationship
|
15685
15873
|
*/
|
15686
15874
|
function ember$data$lib$system$relationships$has$many$$hasMany(type, options) {
|
15687
|
-
if (typeof type ===
|
15875
|
+
if (typeof type === "object") {
|
15688
15876
|
options = type;
|
15689
15877
|
type = undefined;
|
15690
15878
|
}
|
15691
15879
|
|
15692
|
-
Ember.assert("The first argument to DS.hasMany must be a string representing a model type key, not an instance of " + Ember.inspect(type) + ". E.g., to define a relation to the Comment model, use DS.hasMany('comment')", typeof type ===
|
15880
|
+
Ember.assert("The first argument to DS.hasMany must be a string representing a model type key, not an instance of " + Ember.inspect(type) + ". E.g., to define a relation to the Comment model, use DS.hasMany('comment')", typeof type === "string" || typeof type === "undefined");
|
15693
15881
|
|
15694
15882
|
options = options || {};
|
15695
15883
|
|
15696
15884
|
var shouldWarnAsync = false;
|
15697
|
-
if (typeof options.async ===
|
15885
|
+
if (typeof options.async === "undefined") {
|
15698
15886
|
shouldWarnAsync = true;
|
15699
15887
|
}
|
15700
15888
|
|
15701
|
-
if (typeof type ===
|
15889
|
+
if (typeof type === "string") {
|
15702
15890
|
type = ember$data$lib$system$normalize$model$name$$default(type);
|
15703
15891
|
}
|
15704
15892
|
|
@@ -15710,7 +15898,7 @@
|
|
15710
15898
|
type: type,
|
15711
15899
|
isRelationship: true,
|
15712
15900
|
options: options,
|
15713
|
-
kind:
|
15901
|
+
kind: "hasMany",
|
15714
15902
|
key: null,
|
15715
15903
|
shouldWarnAsync: shouldWarnAsync
|
15716
15904
|
};
|
@@ -15718,7 +15906,10 @@
|
|
15718
15906
|
return ember$new$computed$lib$main$$default({
|
15719
15907
|
get: function (key) {
|
15720
15908
|
if (meta.shouldWarnAsync) {
|
15721
|
-
Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.hasMany('" + type + "', { async: false })` if you wish for a relationship remain synchronous."
|
15909
|
+
Ember.deprecate("In Ember Data 2.0, relationships will be asynchronous by default. You must set `" + key + ": DS.hasMany('" + type + "', { async: false })` if you wish for a relationship remain synchronous.", false, {
|
15910
|
+
id: "ds.model.relationship-changing-to-asynchrounous-by-default",
|
15911
|
+
until: "2.0.0"
|
15912
|
+
});
|
15722
15913
|
meta.shouldWarnAsync = false;
|
15723
15914
|
}
|
15724
15915
|
var relationship = this._internalModel._relationships.get(key);
|
@@ -15728,7 +15919,7 @@
|
|
15728
15919
|
var relationship = this._internalModel._relationships.get(key);
|
15729
15920
|
relationship.clear();
|
15730
15921
|
Ember.assert("You must pass an array of records to set a hasMany relationship", Ember.isArray(records));
|
15731
|
-
relationship.addRecords(Ember.A(records).mapBy(
|
15922
|
+
relationship.addRecords(Ember.A(records).mapBy("_internalModel"));
|
15732
15923
|
return relationship.getRecords();
|
15733
15924
|
}
|
15734
15925
|
}).meta(meta);
|
@@ -15932,7 +16123,7 @@
|
|
15932
16123
|
@return {DS.Model} the type of the relationship, or undefined
|
15933
16124
|
*/
|
15934
16125
|
typeForRelationship: function (name, store) {
|
15935
|
-
var relationship = ember$data$lib$system$relationships$ext$$get(this,
|
16126
|
+
var relationship = ember$data$lib$system$relationships$ext$$get(this, "relationshipsByName").get(name);
|
15936
16127
|
return relationship && store.modelFor(relationship.type);
|
15937
16128
|
},
|
15938
16129
|
|
@@ -15963,7 +16154,7 @@
|
|
15963
16154
|
@return {Object} the inverse relationship, or null
|
15964
16155
|
*/
|
15965
16156
|
inverseFor: function (name, store) {
|
15966
|
-
var inverseMap = ember$data$lib$system$relationships$ext$$get(this,
|
16157
|
+
var inverseMap = ember$data$lib$system$relationships$ext$$get(this, "inverseMap");
|
15967
16158
|
if (inverseMap[name]) {
|
15968
16159
|
return inverseMap[name];
|
15969
16160
|
} else {
|
@@ -15990,18 +16181,22 @@
|
|
15990
16181
|
|
15991
16182
|
var inverseName, inverseKind, inverse;
|
15992
16183
|
|
15993
|
-
Ember.warn("Detected a reflexive relationship by the name of '" + name + "' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.", options.inverse || propertyMeta.type !== propertyMeta.parentType.modelName);
|
15994
|
-
|
15995
16184
|
//If inverse is specified manually, return the inverse
|
15996
16185
|
if (options.inverse) {
|
15997
16186
|
inverseName = options.inverse;
|
15998
|
-
inverse = Ember.get(inverseType,
|
16187
|
+
inverse = Ember.get(inverseType, "relationshipsByName").get(inverseName);
|
15999
16188
|
|
16000
16189
|
Ember.assert("We found no inverse relationships by the name of '" + inverseName + "' on the '" + inverseType.modelName + "' model. This is most likely due to a missing attribute on your model definition.", !Ember.isNone(inverse));
|
16001
16190
|
|
16002
16191
|
inverseKind = inverse.kind;
|
16003
16192
|
} else {
|
16004
16193
|
//No inverse was specified manually, we need to use a heuristic to guess one
|
16194
|
+
if (propertyMeta.type === propertyMeta.parentType.modelName) {
|
16195
|
+
Ember.warn("Detected a reflexive relationship by the name of '" + name + "' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.", false, {
|
16196
|
+
id: "ds.model.reflexive-relationship-without-inverse"
|
16197
|
+
});
|
16198
|
+
}
|
16199
|
+
|
16005
16200
|
var possibleRelationships = findPossibleInverses(this, inverseType);
|
16006
16201
|
|
16007
16202
|
if (possibleRelationships.length === 0) {
|
@@ -16028,7 +16223,7 @@
|
|
16028
16223
|
function findPossibleInverses(type, inverseType, relationshipsSoFar) {
|
16029
16224
|
var possibleRelationships = relationshipsSoFar || [];
|
16030
16225
|
|
16031
|
-
var relationshipMap = ember$data$lib$system$relationships$ext$$get(inverseType,
|
16226
|
+
var relationshipMap = ember$data$lib$system$relationships$ext$$get(inverseType, "relationships");
|
16032
16227
|
if (!relationshipMap) {
|
16033
16228
|
return possibleRelationships;
|
16034
16229
|
}
|
@@ -16236,7 +16431,7 @@
|
|
16236
16431
|
if (meta.isRelationship) {
|
16237
16432
|
map.set(name, meta.kind);
|
16238
16433
|
} else if (meta.isAttribute) {
|
16239
|
-
map.set(name,
|
16434
|
+
map.set(name, "attribute");
|
16240
16435
|
}
|
16241
16436
|
});
|
16242
16437
|
|
@@ -16253,7 +16448,7 @@
|
|
16253
16448
|
@param {any} binding the value to which the callback's `this` should be bound
|
16254
16449
|
*/
|
16255
16450
|
eachRelationship: function (callback, binding) {
|
16256
|
-
ember$data$lib$system$relationships$ext$$get(this,
|
16451
|
+
ember$data$lib$system$relationships$ext$$get(this, "relationshipsByName").forEach(function (relationship, name) {
|
16257
16452
|
callback.call(binding, name, relationship);
|
16258
16453
|
});
|
16259
16454
|
},
|
@@ -16269,7 +16464,7 @@
|
|
16269
16464
|
@param {any} binding the value to which the callback's `this` should be bound
|
16270
16465
|
*/
|
16271
16466
|
eachRelatedType: function (callback, binding) {
|
16272
|
-
ember$data$lib$system$relationships$ext$$get(this,
|
16467
|
+
ember$data$lib$system$relationships$ext$$get(this, "relatedTypes").forEach(function (type) {
|
16273
16468
|
callback.call(binding, type);
|
16274
16469
|
});
|
16275
16470
|
},
|
@@ -16281,16 +16476,16 @@
|
|
16281
16476
|
var key, otherKind;
|
16282
16477
|
|
16283
16478
|
if (!inverse) {
|
16284
|
-
return knownKind ===
|
16479
|
+
return knownKind === "belongsTo" ? "oneToNone" : "manyToNone";
|
16285
16480
|
}
|
16286
16481
|
|
16287
16482
|
key = inverse.name;
|
16288
16483
|
otherKind = inverse.kind;
|
16289
16484
|
|
16290
|
-
if (otherKind ===
|
16291
|
-
return knownKind ===
|
16485
|
+
if (otherKind === "belongsTo") {
|
16486
|
+
return knownKind === "belongsTo" ? "oneToOne" : "manyToOne";
|
16292
16487
|
} else {
|
16293
|
-
return knownKind ===
|
16488
|
+
return knownKind === "belongsTo" ? "oneToMany" : "manyToMany";
|
16294
16489
|
}
|
16295
16490
|
}
|
16296
16491
|
|
@@ -16341,7 +16536,7 @@
|
|
16341
16536
|
},
|
16342
16537
|
|
16343
16538
|
relationshipFor: function (name) {
|
16344
|
-
return ember$data$lib$system$relationships$ext$$get(this.constructor,
|
16539
|
+
return ember$data$lib$system$relationships$ext$$get(this.constructor, "relationshipsByName").get(name);
|
16345
16540
|
},
|
16346
16541
|
|
16347
16542
|
inverseFor: function (key) {
|
@@ -16419,11 +16614,13 @@
|
|
16419
16614
|
var ember$data$lib$main$$_ActiveModelSerializer = activemodel$adapter$lib$system$active$model$serializer$$default;
|
16420
16615
|
|
16421
16616
|
if (Ember.platform.hasPropertyAccessors) {
|
16422
|
-
Ember.defineProperty(ember$data$lib$core$$default,
|
16617
|
+
Ember.defineProperty(ember$data$lib$core$$default, "ActiveModelAdapter", {
|
16423
16618
|
get: function () {
|
16424
16619
|
if (ember$data$lib$main$$_ActiveModelSerializer === activemodel$adapter$lib$system$active$model$adapter$$default) {
|
16425
|
-
Ember.deprecate(
|
16426
|
-
url:
|
16620
|
+
Ember.deprecate("The ActiveModelAdapter has been moved into a plugin. It will not be bundled with Ember Data in 2.0", false, {
|
16621
|
+
url: "https://github.com/ember-data/active-model-adapter",
|
16622
|
+
id: "ds.adapter.active-model-adapter-deprecated",
|
16623
|
+
until: "2.0.0"
|
16427
16624
|
});
|
16428
16625
|
}
|
16429
16626
|
return ember$data$lib$main$$_ActiveModelAdapter;
|
@@ -16432,11 +16629,13 @@
|
|
16432
16629
|
ember$data$lib$main$$_ActiveModelAdapter = ActiveModelAdapter;
|
16433
16630
|
}
|
16434
16631
|
});
|
16435
|
-
Ember.defineProperty(ember$data$lib$core$$default,
|
16632
|
+
Ember.defineProperty(ember$data$lib$core$$default, "ActiveModelSerializer", {
|
16436
16633
|
get: function () {
|
16437
16634
|
if (ember$data$lib$main$$_ActiveModelSerializer === activemodel$adapter$lib$system$active$model$serializer$$default) {
|
16438
|
-
Ember.deprecate(
|
16439
|
-
url:
|
16635
|
+
Ember.deprecate("The ActiveModelSerializer has been moved into a plugin. It will not be bundled with Ember Data in 2.0", false, {
|
16636
|
+
url: "https://github.com/ember-data/active-model-adapter",
|
16637
|
+
id: "ds.serializer.active-model-serializer-deprecated",
|
16638
|
+
until: "2.0.0"
|
16440
16639
|
});
|
16441
16640
|
}
|
16442
16641
|
return ember$data$lib$main$$_ActiveModelSerializer;
|
@@ -16460,7 +16659,7 @@
|
|
16460
16659
|
|
16461
16660
|
ember$data$lib$core$$default._setupContainer = ember$data$lib$setup$container$$default;
|
16462
16661
|
|
16463
|
-
Ember.defineProperty(ember$data$lib$core$$default,
|
16662
|
+
Ember.defineProperty(ember$data$lib$core$$default, "normalizeModelName", {
|
16464
16663
|
enumerable: true,
|
16465
16664
|
writable: false,
|
16466
16665
|
configurable: false,
|
@@ -16470,10 +16669,13 @@
|
|
16470
16669
|
var ember$data$lib$main$$_FixtureAdapter = ember$data$lib$adapters$fixture$adapter$$default;
|
16471
16670
|
|
16472
16671
|
if (Ember.platform.hasPropertyAccessors) {
|
16473
|
-
Ember.defineProperty(ember$data$lib$core$$default,
|
16672
|
+
Ember.defineProperty(ember$data$lib$core$$default, "FixtureAdapter", {
|
16474
16673
|
get: function () {
|
16475
16674
|
if (ember$data$lib$main$$_FixtureAdapter === ember$data$lib$adapters$fixture$adapter$$default) {
|
16476
|
-
Ember.deprecate(
|
16675
|
+
Ember.deprecate("DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master", false, {
|
16676
|
+
id: "ds.adapter.fixture-adapter-deprecated",
|
16677
|
+
until: "2.0.0"
|
16678
|
+
});
|
16477
16679
|
}
|
16478
16680
|
return ember$data$lib$main$$_FixtureAdapter;
|
16479
16681
|
},
|