ember-data-source 2.17.1 → 2.18.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/dist/globals/ember-data.js +193 -341
- data/dist/globals/ember-data.min.js +6 -6
- data/dist/globals/ember-data.prod.js +192 -338
- data/package.json +4 -3
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f82d81c672e79c8ec32b3d83a251842236724c6b
|
4
|
+
data.tar.gz: 19cd427812c5efd2379bbfc2219abdf7f9b4c7b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1bb0fad5eae6a410f0811317b2526a18a544451b83b4f051d3945ed306c33e0d1560f0249dc7c4febadeffd5a59fae3e1b193ba848544733ffacc8a9da0d15a
|
7
|
+
data.tar.gz: 83bafeed0b4b68641b535ed3e79e722a83c3707a98b0e695dda16e1ef18e0f206b4c4f2bf8ccfd26d34ce283348baf7968f7a18e7a66e018c487cb542e848a82
|
data/dist/globals/ember-data.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* @copyright Copyright 2011-2017 Tilde Inc. and contributors.
|
7
7
|
* Portions Copyright 2011 LivingSocial Inc.
|
8
8
|
* @license Licensed under MIT license (see license.js)
|
9
|
-
* @version 2.
|
9
|
+
* @version 2.18.0-beta.1
|
10
10
|
*/
|
11
11
|
|
12
12
|
var loader, define, requireModule, require, requirejs;
|
@@ -498,7 +498,7 @@ define('ember-data/-private/adapters/build-url-mixin', ['exports', 'ember-inflec
|
|
498
498
|
import DS from 'ember-data';
|
499
499
|
export default DS.JSONAPIAdapter.extend({
|
500
500
|
urlForFindRecord(id, modelName, snapshot) {
|
501
|
-
let baseUrl = this.buildURL();
|
501
|
+
let baseUrl = this.buildURL(modelName, id, snapshot);
|
502
502
|
return `${baseUrl}/users/${snapshot.adapterOptions.user_id}/playlists/${id}`;
|
503
503
|
}
|
504
504
|
});
|
@@ -1665,7 +1665,7 @@ define('ember-data/-private/system/debug/debug-adapter', ['exports', 'ember-data
|
|
1665
1665
|
var containerKey = modelClass._debugContainerKey;
|
1666
1666
|
if (containerKey) {
|
1667
1667
|
var match = containerKey.match(/model:(.*)/);
|
1668
|
-
if (match) {
|
1668
|
+
if (match !== null) {
|
1669
1669
|
modelName = match[1];
|
1670
1670
|
}
|
1671
1671
|
}
|
@@ -4802,10 +4802,6 @@ define('ember-data/-private/system/model/model', ['exports', 'ember-data/-privat
|
|
4802
4802
|
// the computed property.
|
4803
4803
|
var meta = value.meta();
|
4804
4804
|
|
4805
|
-
/*
|
4806
|
-
This is buggy because if the parent has never been looked up
|
4807
|
-
via `modelFor` it will not have `modelName` set.
|
4808
|
-
*/
|
4809
4805
|
meta.parentType = proto.constructor;
|
4810
4806
|
}
|
4811
4807
|
}
|
@@ -7618,7 +7614,7 @@ define('ember-data/-private/system/relationship-meta', ['exports', 'ember-inflec
|
|
7618
7614
|
}
|
7619
7615
|
|
7620
7616
|
function relationshipFromMeta(meta) {
|
7621
|
-
|
7617
|
+
var result = {
|
7622
7618
|
key: meta.key,
|
7623
7619
|
kind: meta.kind,
|
7624
7620
|
type: typeForRelationshipMeta(meta),
|
@@ -7627,6 +7623,12 @@ define('ember-data/-private/system/relationship-meta', ['exports', 'ember-inflec
|
|
7627
7623
|
parentType: meta.parentType,
|
7628
7624
|
isRelationship: true
|
7629
7625
|
};
|
7626
|
+
|
7627
|
+
if (false) {
|
7628
|
+
result.parentType = meta.parentType;
|
7629
|
+
}
|
7630
|
+
|
7631
|
+
return result;
|
7630
7632
|
}
|
7631
7633
|
});
|
7632
7634
|
define('ember-data/-private/system/relationships/belongs-to', ['exports', 'ember-data/-private/system/normalize-model-name'], function (exports, _normalizeModelName) {
|
@@ -8036,7 +8038,7 @@ define('ember-data/-private/system/relationships/relationship-payloads-manager',
|
|
8036
8038
|
}
|
8037
8039
|
}
|
8038
8040
|
|
8039
|
-
var
|
8041
|
+
var _get = Ember.get;
|
8040
8042
|
|
8041
8043
|
var RelationshipPayloadsManager = function () {
|
8042
8044
|
function RelationshipPayloadsManager(store) {
|
@@ -8045,7 +8047,6 @@ define('ember-data/-private/system/relationships/relationship-payloads-manager',
|
|
8045
8047
|
this._store = store;
|
8046
8048
|
// cache of `RelationshipPayload`s
|
8047
8049
|
this._cache = Object.create(null);
|
8048
|
-
this._inverseLookupCache = new _relationshipPayloads.TypeCache();
|
8049
8050
|
}
|
8050
8051
|
|
8051
8052
|
/**
|
@@ -8066,7 +8067,9 @@ define('ember-data/-private/system/relationships/relationship-payloads-manager',
|
|
8066
8067
|
|
8067
8068
|
|
8068
8069
|
RelationshipPayloadsManager.prototype.get = function get(modelName, id, relationshipName) {
|
8069
|
-
var
|
8070
|
+
var modelClass = this._store._modelFor(modelName);
|
8071
|
+
var relationshipsByName = _get(modelClass, 'relationshipsByName');
|
8072
|
+
var relationshipPayloads = this._getRelationshipPayloads(modelName, relationshipName, modelClass, relationshipsByName, false);
|
8070
8073
|
return relationshipPayloads && relationshipPayloads.get(modelName, id, relationshipName);
|
8071
8074
|
};
|
8072
8075
|
|
@@ -8077,8 +8080,10 @@ define('ember-data/-private/system/relationships/relationship-payloads-manager',
|
|
8077
8080
|
return;
|
8078
8081
|
}
|
8079
8082
|
|
8083
|
+
var modelClass = this._store._modelFor(modelName);
|
8084
|
+
var relationshipsByName = _get(modelClass, 'relationshipsByName');
|
8080
8085
|
Object.keys(relationshipsData).forEach(function (key) {
|
8081
|
-
var relationshipPayloads = _this._getRelationshipPayloads(modelName, key, true);
|
8086
|
+
var relationshipPayloads = _this._getRelationshipPayloads(modelName, key, modelClass, relationshipsByName, true);
|
8082
8087
|
if (relationshipPayloads) {
|
8083
8088
|
relationshipPayloads.push(modelName, id, key, relationshipsData[key]);
|
8084
8089
|
}
|
@@ -8089,153 +8094,51 @@ define('ember-data/-private/system/relationships/relationship-payloads-manager',
|
|
8089
8094
|
var _this2 = this;
|
8090
8095
|
|
8091
8096
|
var modelClass = this._store._modelFor(modelName);
|
8092
|
-
var relationshipsByName =
|
8097
|
+
var relationshipsByName = _get(modelClass, 'relationshipsByName');
|
8093
8098
|
relationshipsByName.forEach(function (_, relationshipName) {
|
8094
|
-
var relationshipPayloads = _this2._getRelationshipPayloads(modelName, relationshipName, false);
|
8099
|
+
var relationshipPayloads = _this2._getRelationshipPayloads(modelName, relationshipName, modelClass, relationshipsByName, false);
|
8095
8100
|
if (relationshipPayloads) {
|
8096
8101
|
relationshipPayloads.unload(modelName, id, relationshipName);
|
8097
8102
|
}
|
8098
8103
|
});
|
8099
8104
|
};
|
8100
8105
|
|
8101
|
-
RelationshipPayloadsManager.prototype._getRelationshipPayloads = function _getRelationshipPayloads(modelName, relationshipName, init) {
|
8102
|
-
|
8103
|
-
|
8104
|
-
if (relInfo === null) {
|
8106
|
+
RelationshipPayloadsManager.prototype._getRelationshipPayloads = function _getRelationshipPayloads(modelName, relationshipName, modelClass, relationshipsByName, init) {
|
8107
|
+
if (!relationshipsByName.has(relationshipName)) {
|
8105
8108
|
return;
|
8106
8109
|
}
|
8107
8110
|
|
8108
|
-
var
|
8109
|
-
|
8110
|
-
|
8111
|
-
return this._initializeRelationshipPayloads(relInfo);
|
8111
|
+
var key = modelName + ':' + relationshipName;
|
8112
|
+
if (!this._cache[key] && init) {
|
8113
|
+
return this._initializeRelationshipPayloads(modelName, relationshipName, modelClass, relationshipsByName);
|
8112
8114
|
}
|
8113
8115
|
|
8114
|
-
return
|
8116
|
+
return this._cache[key];
|
8115
8117
|
};
|
8116
8118
|
|
8117
|
-
RelationshipPayloadsManager.prototype.
|
8118
|
-
var inverseCache = this._inverseLookupCache;
|
8119
|
-
var store = this._store;
|
8120
|
-
var cached = inverseCache.get(modelName, relationshipName);
|
8121
|
-
|
8122
|
-
// CASE: We have a cached resolution (null if no relationship exists)
|
8123
|
-
if (cached !== undefined) {
|
8124
|
-
return cached;
|
8125
|
-
}
|
8126
|
-
|
8127
|
-
var modelClass = store._modelFor(modelName);
|
8128
|
-
var relationshipsByName = get(modelClass, 'relationshipsByName');
|
8129
|
-
|
8130
|
-
// CASE: We don't have a relationship at all
|
8131
|
-
if (!relationshipsByName.has(relationshipName)) {
|
8132
|
-
inverseCache.set(modelName, relationshipName, null);
|
8133
|
-
return null;
|
8134
|
-
}
|
8135
|
-
|
8136
|
-
var inverseMeta = modelClass.inverseFor(relationshipName, store);
|
8119
|
+
RelationshipPayloadsManager.prototype._initializeRelationshipPayloads = function _initializeRelationshipPayloads(modelName, relationshipName, modelClass, relationshipsByName) {
|
8137
8120
|
var relationshipMeta = relationshipsByName.get(relationshipName);
|
8138
|
-
var
|
8139
|
-
|
8140
|
-
|
8141
|
-
|
8142
|
-
|
8143
|
-
|
8144
|
-
|
8145
|
-
|
8146
|
-
|
8147
|
-
|
8148
|
-
|
8149
|
-
|
8150
|
-
|
8151
|
-
|
8152
|
-
|
8153
|
-
|
8154
|
-
|
8155
|
-
rhs_isPolymorphic: false,
|
8156
|
-
hasInverse: false,
|
8157
|
-
isSelfReferential: false, // modelName === inverseBaseModelName,
|
8158
|
-
isReflexive: false
|
8159
|
-
};
|
8160
|
-
|
8161
|
-
inverseCache.set(modelName, relationshipName, _info);
|
8162
|
-
|
8163
|
-
return _info;
|
8164
|
-
}
|
8165
|
-
|
8166
|
-
// CASE: We do have an inverse
|
8167
|
-
|
8168
|
-
var inverseRelationshipName = inverseMeta.name;
|
8169
|
-
var inverseRelationshipMeta = get(inverseMeta.type, 'relationshipsByName').get(inverseRelationshipName);
|
8170
|
-
var baseModelName = inverseRelationshipMeta.type;
|
8171
|
-
var isSelfReferential = baseModelName === inverseBaseModelName;
|
8172
|
-
|
8173
|
-
// TODO we want to assert this but this breaks all of our shoddily written tests
|
8174
|
-
/*
|
8175
|
-
if (DEBUG) {
|
8176
|
-
let inverseDoubleCheck = inverseMeta.type.inverseFor(inverseRelationshipName, store);
|
8177
|
-
assert(`The ${inverseBaseModelName}:${inverseRelationshipName} relationship declares 'inverse: null', but it was resolved as the inverse for ${baseModelName}:${relationshipName}.`, inverseDoubleCheck);
|
8121
|
+
var inverseMeta = modelClass.inverseFor(relationshipName, this._store);
|
8122
|
+
|
8123
|
+
var inverseModelName = void 0;
|
8124
|
+
var inverseRelationshipName = void 0;
|
8125
|
+
var inverseRelationshipMeta = void 0;
|
8126
|
+
|
8127
|
+
// figure out the inverse relationship; we need two things
|
8128
|
+
// a) the inverse model name
|
8129
|
+
//- b) the name of the inverse relationship
|
8130
|
+
if (inverseMeta) {
|
8131
|
+
inverseRelationshipName = inverseMeta.name;
|
8132
|
+
inverseModelName = relationshipMeta.type;
|
8133
|
+
inverseRelationshipMeta = _get(inverseMeta.type, 'relationshipsByName').get(inverseRelationshipName);
|
8134
|
+
} else {
|
8135
|
+
// relationship has no inverse
|
8136
|
+
inverseModelName = inverseRelationshipName = '';
|
8137
|
+
inverseRelationshipMeta = null;
|
8178
8138
|
}
|
8179
|
-
*/
|
8180
|
-
|
8181
|
-
// CASE: We may have already discovered the inverse for the baseModelName
|
8182
|
-
// CASE: We have already discovered the inverse
|
8183
|
-
cached = inverseCache.get(baseModelName, relationshipName) || inverseCache.get(inverseBaseModelName, inverseRelationshipName);
|
8184
|
-
if (cached) {
|
8185
|
-
(false && Ember.assert('The ' + inverseBaseModelName + ':' + inverseRelationshipName + ' relationship declares \'inverse: null\', but it was resolved as the inverse for ' + baseModelName + ':' + relationshipName + '.', cached.hasInverse !== false));
|
8186
|
-
|
8187
|
-
|
8188
|
-
var isLHS = cached.lhs_baseModelName === baseModelName;
|
8189
|
-
var modelNames = isLHS ? cached.lhs_modelNames : cached.rhs_modelNames;
|
8190
|
-
// make this lookup easier in the future by caching the key
|
8191
|
-
modelNames.push(modelName);
|
8192
|
-
inverseCache.set(modelName, relationshipName, cached);
|
8193
|
-
|
8194
|
-
return cached;
|
8195
|
-
}
|
8196
|
-
|
8197
|
-
var info = {
|
8198
|
-
lhs_key: baseModelName + ':' + relationshipName,
|
8199
|
-
lhs_modelNames: [modelName],
|
8200
|
-
lhs_baseModelName: baseModelName,
|
8201
|
-
lhs_relationshipName: relationshipName,
|
8202
|
-
lhs_relationshipMeta: relationshipMeta,
|
8203
|
-
lhs_isPolymorphic: selfIsPolymorphic,
|
8204
|
-
rhs_key: inverseBaseModelName + ':' + inverseRelationshipName,
|
8205
|
-
rhs_modelNames: [],
|
8206
|
-
rhs_baseModelName: inverseBaseModelName,
|
8207
|
-
rhs_relationshipName: inverseRelationshipName,
|
8208
|
-
rhs_relationshipMeta: inverseRelationshipMeta,
|
8209
|
-
rhs_isPolymorphic: inverseRelationshipMeta.options !== undefined && inverseRelationshipMeta.options.polymorphic === true,
|
8210
|
-
hasInverse: true,
|
8211
|
-
isSelfReferential: isSelfReferential,
|
8212
|
-
isReflexive: isSelfReferential && relationshipName === inverseRelationshipName
|
8213
|
-
};
|
8214
|
-
|
8215
|
-
// Create entries for the baseModelName as well as modelName to speed up
|
8216
|
-
// inverse lookups
|
8217
|
-
inverseCache.set(baseModelName, relationshipName, info);
|
8218
|
-
inverseCache.set(modelName, relationshipName, info);
|
8219
8139
|
|
8220
|
-
|
8221
|
-
|
8222
|
-
|
8223
|
-
return info;
|
8224
|
-
};
|
8225
|
-
|
8226
|
-
RelationshipPayloadsManager.prototype._initializeRelationshipPayloads = function _initializeRelationshipPayloads(relInfo) {
|
8227
|
-
var lhsKey = relInfo.lhs_key;
|
8228
|
-
var rhsKey = relInfo.rhs_key;
|
8229
|
-
var existingPayloads = this._cache[lhsKey];
|
8230
|
-
|
8231
|
-
if (relInfo.hasInverse === true && relInfo.rhs_isPolymorphic === true) {
|
8232
|
-
existingPayloads = this._cache[rhsKey];
|
8233
|
-
|
8234
|
-
if (existingPayloads !== undefined) {
|
8235
|
-
this._cache[lhsKey] = existingPayloads;
|
8236
|
-
return existingPayloads;
|
8237
|
-
}
|
8238
|
-
}
|
8140
|
+
var lhsKey = modelName + ':' + relationshipName;
|
8141
|
+
var rhsKey = inverseModelName + ':' + inverseRelationshipName;
|
8239
8142
|
|
8240
8143
|
// populate the cache for both sides of the relationship, as they both use
|
8241
8144
|
// the same `RelationshipPayloads`.
|
@@ -8243,13 +8146,7 @@ define('ember-data/-private/system/relationships/relationship-payloads-manager',
|
|
8243
8146
|
// This works out better than creating a single common key, because to
|
8244
8147
|
// compute that key we would need to do work to look up the inverse
|
8245
8148
|
//
|
8246
|
-
|
8247
|
-
|
8248
|
-
if (relInfo.hasInverse === true) {
|
8249
|
-
this._cache[rhsKey] = cache;
|
8250
|
-
}
|
8251
|
-
|
8252
|
-
return cache;
|
8149
|
+
return this._cache[lhsKey] = this._cache[rhsKey] = new _relationshipPayloads.default(this._store, modelName, relationshipName, relationshipMeta, inverseModelName, inverseRelationshipName, inverseRelationshipMeta);
|
8253
8150
|
};
|
8254
8151
|
|
8255
8152
|
return RelationshipPayloadsManager;
|
@@ -8262,6 +8159,12 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8262
8159
|
|
8263
8160
|
exports.__esModule = true;
|
8264
8161
|
|
8162
|
+
function _classCallCheck(instance, Constructor) {
|
8163
|
+
if (!(instance instanceof Constructor)) {
|
8164
|
+
throw new TypeError("Cannot call a class as a function");
|
8165
|
+
}
|
8166
|
+
}
|
8167
|
+
|
8265
8168
|
var _createClass = function () {
|
8266
8169
|
function defineProperties(target, props) {
|
8267
8170
|
for (var i = 0; i < props.length; i++) {
|
@@ -8280,61 +8183,37 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8280
8183
|
};
|
8281
8184
|
}();
|
8282
8185
|
|
8283
|
-
function _classCallCheck(instance, Constructor) {
|
8284
|
-
if (!(instance instanceof Constructor)) {
|
8285
|
-
throw new TypeError("Cannot call a class as a function");
|
8286
|
-
}
|
8287
|
-
}
|
8288
|
-
|
8289
|
-
var TypeCache = exports.TypeCache = function () {
|
8290
|
-
function TypeCache() {
|
8291
|
-
_classCallCheck(this, TypeCache);
|
8292
|
-
|
8293
|
-
this.types = Object.create(null);
|
8294
|
-
}
|
8295
|
-
|
8296
|
-
TypeCache.prototype.get = function get(modelName, id) {
|
8297
|
-
var types = this.types;
|
8298
|
-
|
8299
|
-
|
8300
|
-
if (types[modelName] !== undefined) {
|
8301
|
-
return types[modelName][id];
|
8302
|
-
}
|
8303
|
-
};
|
8304
|
-
|
8305
|
-
TypeCache.prototype.set = function set(modelName, id, payload) {
|
8306
|
-
var types = this.types;
|
8307
|
-
|
8308
|
-
var typeMap = types[modelName];
|
8309
|
-
|
8310
|
-
if (typeMap === undefined) {
|
8311
|
-
typeMap = types[modelName] = Object.create(null);
|
8312
|
-
}
|
8313
|
-
|
8314
|
-
typeMap[id] = payload;
|
8315
|
-
};
|
8316
|
-
|
8317
|
-
TypeCache.prototype.delete = function _delete(modelName, id) {
|
8318
|
-
var types = this.types;
|
8319
|
-
|
8320
|
-
|
8321
|
-
if (types[modelName] !== undefined) {
|
8322
|
-
delete types[modelName][id];
|
8323
|
-
}
|
8324
|
-
};
|
8325
|
-
|
8326
|
-
return TypeCache;
|
8327
|
-
}();
|
8328
|
-
|
8329
8186
|
var RelationshipPayloads = function () {
|
8330
|
-
function RelationshipPayloads(
|
8187
|
+
function RelationshipPayloads(store, modelName, relationshipName, relationshipMeta, inverseModelName, inverseRelationshipName, inverseRelationshipMeta) {
|
8331
8188
|
_classCallCheck(this, RelationshipPayloads);
|
8332
8189
|
|
8333
|
-
this.
|
8190
|
+
this._store = store;
|
8191
|
+
|
8192
|
+
this._lhsModelName = modelName;
|
8193
|
+
this._lhsRelationshipName = relationshipName;
|
8194
|
+
this._lhsRelationshipMeta = relationshipMeta;
|
8195
|
+
|
8196
|
+
this._rhsModelName = inverseModelName;
|
8197
|
+
this._rhsRelationshipName = inverseRelationshipName;
|
8198
|
+
this._rhsRelationshipMeta = inverseRelationshipMeta;
|
8334
8199
|
|
8335
8200
|
// a map of id -> payloads for the left hand side of the relationship.
|
8336
|
-
this.
|
8337
|
-
|
8201
|
+
this._lhsPayloads = Object.create(null);
|
8202
|
+
if (modelName !== inverseModelName || relationshipName !== inverseRelationshipName) {
|
8203
|
+
// The common case of a non-reflexive relationship, or a reflexive
|
8204
|
+
// relationship whose inverse is not itself
|
8205
|
+
this._rhsPayloads = Object.create(null);
|
8206
|
+
this._isReflexive = false;
|
8207
|
+
} else {
|
8208
|
+
// Edge case when we have a reflexive relationship to itself
|
8209
|
+
// eg user hasMany friends inverse friends
|
8210
|
+
//
|
8211
|
+
// In this case there aren't really two sides to the relationship, but
|
8212
|
+
// we set `_rhsPayloads = _lhsPayloads` to make things easier to reason
|
8213
|
+
// about
|
8214
|
+
this._rhsPayloads = this._lhsPayloads;
|
8215
|
+
this._isReflexive = true;
|
8216
|
+
}
|
8338
8217
|
|
8339
8218
|
// When we push relationship payloads, just stash them in a queue until
|
8340
8219
|
// somebody actually asks for one of them.
|
@@ -8345,22 +8224,22 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8345
8224
|
}
|
8346
8225
|
|
8347
8226
|
/**
|
8348
|
-
|
8349
|
-
|
8350
|
-
|
8351
|
-
|
8352
|
-
|
8227
|
+
Get the payload for the relationship of an individual record.
|
8228
|
+
This might return the raw payload as pushed into the store, or one computed
|
8229
|
+
from the payload of the inverse relationship.
|
8230
|
+
@method
|
8231
|
+
*/
|
8353
8232
|
|
8354
8233
|
|
8355
8234
|
RelationshipPayloads.prototype.get = function get(modelName, id, relationshipName) {
|
8356
8235
|
this._flushPending();
|
8357
8236
|
|
8358
8237
|
if (this._isLHS(modelName, relationshipName)) {
|
8359
|
-
return this.
|
8238
|
+
return this._lhsPayloads[id];
|
8360
8239
|
} else {
|
8361
|
-
(false && Ember.assert(modelName + ':' + relationshipName + ' is not either side of this relationship, ' + this.
|
8240
|
+
(false && Ember.assert(modelName + ':' + relationshipName + ' is not either side of this relationship, ' + this._lhsModelName + ':' + this._lhsRelationshipName + '<->' + this._rhsModelName + ':' + this._rhsRelationshipName, this._isRHS(modelName, relationshipName)));
|
8362
8241
|
|
8363
|
-
return this.
|
8242
|
+
return this._rhsPayloads[id];
|
8364
8243
|
}
|
8365
8244
|
};
|
8366
8245
|
|
@@ -8372,40 +8251,20 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8372
8251
|
this._flushPending();
|
8373
8252
|
|
8374
8253
|
if (this._isLHS(modelName, relationshipName)) {
|
8375
|
-
delete this.
|
8254
|
+
delete this._lhsPayloads[id];
|
8376
8255
|
} else {
|
8377
|
-
(false && Ember.assert(modelName + ':' + relationshipName + ' is not either side of this relationship, ' + this.
|
8256
|
+
(false && Ember.assert(modelName + ':' + relationshipName + ' is not either side of this relationship, ' + this._lhsModelName + ':' + this._lhsRelationshipName + '<->' + this._rhsModelName + ':' + this._rhsRelationshipName, this._isRHS(modelName, relationshipName)));
|
8378
8257
|
|
8379
|
-
delete this.
|
8258
|
+
delete this._rhsPayloads[id];
|
8380
8259
|
}
|
8381
8260
|
};
|
8382
8261
|
|
8383
8262
|
RelationshipPayloads.prototype._isLHS = function _isLHS(modelName, relationshipName) {
|
8384
|
-
|
8385
|
-
var isSelfReferential = relInfo.isSelfReferential;
|
8386
|
-
var isRelationship = relationshipName === relInfo.lhs_relationshipName;
|
8387
|
-
|
8388
|
-
if (isRelationship === true) {
|
8389
|
-
return isSelfReferential === true || // itself
|
8390
|
-
modelName === relInfo.lhs_baseModelName || // base or non-polymorphic
|
8391
|
-
relInfo.lhs_modelNames.indexOf(modelName) !== -1; // polymorphic
|
8392
|
-
}
|
8393
|
-
|
8394
|
-
return false;
|
8263
|
+
return modelName === this._lhsModelName && relationshipName === this._lhsRelationshipName;
|
8395
8264
|
};
|
8396
8265
|
|
8397
8266
|
RelationshipPayloads.prototype._isRHS = function _isRHS(modelName, relationshipName) {
|
8398
|
-
|
8399
|
-
var isSelfReferential = relInfo.isSelfReferential;
|
8400
|
-
var isRelationship = relationshipName === relInfo.rhs_relationshipName;
|
8401
|
-
|
8402
|
-
if (isRelationship === true) {
|
8403
|
-
return isSelfReferential === true || // itself
|
8404
|
-
modelName === relInfo.rhs_baseModelName || // base or non-polymorphic
|
8405
|
-
relInfo.rhs_modelNames.indexOf(modelName) !== -1; // polymorphic
|
8406
|
-
}
|
8407
|
-
|
8408
|
-
return false;
|
8267
|
+
return modelName === this._rhsModelName && relationshipName === this._rhsRelationshipName;
|
8409
8268
|
};
|
8410
8269
|
|
8411
8270
|
RelationshipPayloads.prototype._flushPending = function _flushPending() {
|
@@ -8426,28 +8285,26 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8426
8285
|
id: id,
|
8427
8286
|
type: modelName
|
8428
8287
|
}
|
8429
|
-
};
|
8430
8288
|
|
8431
|
-
|
8432
|
-
|
8433
|
-
|
8434
|
-
|
8435
|
-
var previousPayload = void 0;
|
8436
|
-
var
|
8437
|
-
var
|
8289
|
+
// start flushing this individual payload. The logic is the same whether
|
8290
|
+
// it's for the left hand side of the relationship or the right hand side,
|
8291
|
+
// except the role of primary and inverse idToPayloads is reversed
|
8292
|
+
//
|
8293
|
+
};var previousPayload = void 0;
|
8294
|
+
var idToPayloads = void 0;
|
8295
|
+
var inverseIdToPayloads = void 0;
|
8438
8296
|
var inverseIsMany = void 0;
|
8439
|
-
|
8440
8297
|
if (this._isLHS(modelName, relationshipName)) {
|
8441
|
-
previousPayload = this.
|
8442
|
-
|
8443
|
-
|
8298
|
+
previousPayload = this._lhsPayloads[id];
|
8299
|
+
idToPayloads = this._lhsPayloads;
|
8300
|
+
inverseIdToPayloads = this._rhsPayloads;
|
8444
8301
|
inverseIsMany = this._rhsRelationshipIsMany;
|
8445
8302
|
} else {
|
8446
|
-
(false && Ember.assert(modelName + ':' + relationshipName + ' is not either side of this relationship, ' + this.
|
8303
|
+
(false && Ember.assert(modelName + ':' + relationshipName + ' is not either side of this relationship, ' + this._lhsModelName + ':' + this._lhsRelationshipName + '<->' + this._rhsModelName + ':' + this._rhsRelationshipName, this._isRHS(modelName, relationshipName)));
|
8447
8304
|
|
8448
|
-
previousPayload = this.
|
8449
|
-
|
8450
|
-
|
8305
|
+
previousPayload = this._rhsPayloads[id];
|
8306
|
+
idToPayloads = this._rhsPayloads;
|
8307
|
+
inverseIdToPayloads = this._lhsPayloads;
|
8451
8308
|
inverseIsMany = this._lhsRelationshipIsMany;
|
8452
8309
|
}
|
8453
8310
|
|
@@ -8491,14 +8348,14 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8491
8348
|
// * undefined is NOT considered new information, we should keep original state
|
8492
8349
|
// * anything else is considered new information, and it should win
|
8493
8350
|
if (relationshipData.data !== undefined) {
|
8494
|
-
this._removeInverse(id, previousPayload,
|
8351
|
+
this._removeInverse(id, previousPayload, inverseIdToPayloads);
|
8495
8352
|
}
|
8496
|
-
|
8497
|
-
this._populateInverse(relationshipData, inverseRelationshipData,
|
8353
|
+
idToPayloads[id] = relationshipData;
|
8354
|
+
this._populateInverse(relationshipData, inverseRelationshipData, inverseIdToPayloads, inverseIsMany);
|
8498
8355
|
}
|
8499
8356
|
};
|
8500
8357
|
|
8501
|
-
RelationshipPayloads.prototype._populateInverse = function _populateInverse(relationshipData, inversePayload,
|
8358
|
+
RelationshipPayloads.prototype._populateInverse = function _populateInverse(relationshipData, inversePayload, inverseIdToPayloads, inverseIsMany) {
|
8502
8359
|
if (!relationshipData.data) {
|
8503
8360
|
// This id doesn't have an inverse, eg a belongsTo with a payload
|
8504
8361
|
// { data: null }, so there's nothing to populate
|
@@ -8507,24 +8364,22 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8507
8364
|
|
8508
8365
|
if (Array.isArray(relationshipData.data)) {
|
8509
8366
|
for (var i = 0; i < relationshipData.data.length; ++i) {
|
8510
|
-
var
|
8511
|
-
this._addToInverse(inversePayload,
|
8367
|
+
var inverseId = relationshipData.data[i].id;
|
8368
|
+
this._addToInverse(inversePayload, inverseId, inverseIdToPayloads, inverseIsMany);
|
8512
8369
|
}
|
8513
8370
|
} else {
|
8514
|
-
var
|
8515
|
-
this._addToInverse(inversePayload,
|
8371
|
+
var _inverseId = relationshipData.data.id;
|
8372
|
+
this._addToInverse(inversePayload, _inverseId, inverseIdToPayloads, inverseIsMany);
|
8516
8373
|
}
|
8517
8374
|
};
|
8518
8375
|
|
8519
|
-
RelationshipPayloads.prototype._addToInverse = function _addToInverse(inversePayload,
|
8520
|
-
|
8521
|
-
|
8522
|
-
if (relInfo.isReflexive && inversePayload.data.id === resourceIdentifier.id) {
|
8376
|
+
RelationshipPayloads.prototype._addToInverse = function _addToInverse(inversePayload, inverseId, inverseIdToPayloads, inverseIsMany) {
|
8377
|
+
if (this._isReflexive && inversePayload.data.id === inverseId) {
|
8523
8378
|
// eg <user:1>.friends = [{ id: 1, type: 'user' }]
|
8524
8379
|
return;
|
8525
8380
|
}
|
8526
8381
|
|
8527
|
-
var existingPayload =
|
8382
|
+
var existingPayload = inverseIdToPayloads[inverseId];
|
8528
8383
|
var existingData = existingPayload && existingPayload.data;
|
8529
8384
|
|
8530
8385
|
if (existingData) {
|
@@ -8534,22 +8389,22 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8534
8389
|
if (Array.isArray(existingData)) {
|
8535
8390
|
existingData.push(inversePayload.data);
|
8536
8391
|
} else {
|
8537
|
-
|
8392
|
+
inverseIdToPayloads[inverseId] = inversePayload;
|
8538
8393
|
}
|
8539
8394
|
} else {
|
8540
8395
|
// first time we're populating the inverse side
|
8541
8396
|
//
|
8542
8397
|
if (inverseIsMany) {
|
8543
|
-
|
8398
|
+
inverseIdToPayloads[inverseId] = {
|
8544
8399
|
data: [inversePayload.data]
|
8545
|
-
}
|
8400
|
+
};
|
8546
8401
|
} else {
|
8547
|
-
|
8402
|
+
inverseIdToPayloads[inverseId] = inversePayload;
|
8548
8403
|
}
|
8549
8404
|
}
|
8550
8405
|
};
|
8551
8406
|
|
8552
|
-
RelationshipPayloads.prototype._removeInverse = function _removeInverse(id, previousPayload,
|
8407
|
+
RelationshipPayloads.prototype._removeInverse = function _removeInverse(id, previousPayload, inverseIdToPayloads) {
|
8553
8408
|
var data = previousPayload && previousPayload.data;
|
8554
8409
|
if (!data) {
|
8555
8410
|
// either this is the first time we've seen a payload for this id, or its
|
@@ -8564,16 +8419,15 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8564
8419
|
if (Array.isArray(data)) {
|
8565
8420
|
// TODO: diff rather than removeall addall?
|
8566
8421
|
for (var i = 0; i < data.length; ++i) {
|
8567
|
-
|
8568
|
-
this._removeFromInverse(id, resourceIdentifier, inversePayloadMap);
|
8422
|
+
this._removeFromInverse(id, data[i].id, inverseIdToPayloads);
|
8569
8423
|
}
|
8570
8424
|
} else {
|
8571
|
-
this._removeFromInverse(id, data,
|
8425
|
+
this._removeFromInverse(id, data.id, inverseIdToPayloads);
|
8572
8426
|
}
|
8573
8427
|
};
|
8574
8428
|
|
8575
|
-
RelationshipPayloads.prototype._removeFromInverse = function _removeFromInverse(id,
|
8576
|
-
var inversePayload = inversePayloads
|
8429
|
+
RelationshipPayloads.prototype._removeFromInverse = function _removeFromInverse(id, inverseId, inversePayloads) {
|
8430
|
+
var inversePayload = inversePayloads[inverseId];
|
8577
8431
|
var data = inversePayload && inversePayload.data;
|
8578
8432
|
|
8579
8433
|
if (!data) {
|
@@ -8585,23 +8439,21 @@ define('ember-data/-private/system/relationships/relationship-payloads', ['expor
|
|
8585
8439
|
return x.id !== id;
|
8586
8440
|
});
|
8587
8441
|
} else {
|
8588
|
-
inversePayloads
|
8442
|
+
inversePayloads[inverseId] = {
|
8589
8443
|
data: null
|
8590
|
-
}
|
8444
|
+
};
|
8591
8445
|
}
|
8592
8446
|
};
|
8593
8447
|
|
8594
8448
|
_createClass(RelationshipPayloads, [{
|
8595
8449
|
key: '_lhsRelationshipIsMany',
|
8596
8450
|
get: function () {
|
8597
|
-
|
8598
|
-
return meta !== null && meta.kind === 'hasMany';
|
8451
|
+
return this._lhsRelationshipMeta && this._lhsRelationshipMeta.kind === 'hasMany';
|
8599
8452
|
}
|
8600
8453
|
}, {
|
8601
8454
|
key: '_rhsRelationshipIsMany',
|
8602
8455
|
get: function () {
|
8603
|
-
|
8604
|
-
return meta !== null && meta.kind === 'hasMany';
|
8456
|
+
return this._rhsRelationshipMeta && this._rhsRelationshipMeta.kind === 'hasMany';
|
8605
8457
|
}
|
8606
8458
|
}]);
|
8607
8459
|
|
@@ -15437,7 +15289,7 @@ define('ember-data/attr', ['exports'], function (exports) {
|
|
15437
15289
|
}).meta(meta);
|
15438
15290
|
}
|
15439
15291
|
});
|
15440
|
-
define('ember-data', ['exports', 'ember-data/-private', 'ember-data/setup-container', 'ember-data/
|
15292
|
+
define('ember-data', ['exports', 'ember-data/-private', 'ember-data/setup-container', 'ember-data/initialize-store-service', 'ember-data/transforms/transform', 'ember-data/transforms/number', 'ember-data/transforms/date', 'ember-data/transforms/string', 'ember-data/transforms/boolean', 'ember-data/adapter', 'ember-data/adapters/json-api', 'ember-data/adapters/rest', 'ember-data/serializer', 'ember-data/serializers/json-api', 'ember-data/serializers/json', 'ember-data/serializers/rest', 'ember-data/serializers/embedded-records-mixin', 'ember-data/attr', 'ember-inflector'], function (exports, _private, _setupContainer, _initializeStoreService, _transform, _number, _date, _string, _boolean, _adapter, _jsonApi, _rest, _serializer, _jsonApi2, _json, _rest2, _embeddedRecordsMixin, _attr) {
|
15441
15293
|
'use strict';
|
15442
15294
|
|
15443
15295
|
exports.__esModule = true;
|
@@ -15539,65 +15391,7 @@ define('ember-data', ['exports', 'ember-data/-private', 'ember-data/setup-contai
|
|
15539
15391
|
|
15540
15392
|
exports.default = _private.DS;
|
15541
15393
|
});
|
15542
|
-
define('ember-data/
|
15543
|
-
'use strict';
|
15544
|
-
|
15545
|
-
exports.__esModule = true;
|
15546
|
-
exports.default = {
|
15547
|
-
name: 'data-adapter',
|
15548
|
-
before: 'store',
|
15549
|
-
initialize: function () {}
|
15550
|
-
};
|
15551
|
-
});
|
15552
|
-
define('ember-data/initializers/ember-data', ['exports', 'ember-data/setup-container', 'ember-data'], function (exports, _setupContainer) {
|
15553
|
-
'use strict';
|
15554
|
-
|
15555
|
-
exports.__esModule = true;
|
15556
|
-
exports.default = {
|
15557
|
-
name: 'ember-data',
|
15558
|
-
initialize: _setupContainer.default
|
15559
|
-
};
|
15560
|
-
});
|
15561
|
-
define('ember-data/initializers/injectStore', ['exports'], function (exports) {
|
15562
|
-
'use strict';
|
15563
|
-
|
15564
|
-
exports.__esModule = true;
|
15565
|
-
exports.default = {
|
15566
|
-
name: 'injectStore',
|
15567
|
-
before: 'store',
|
15568
|
-
initialize: function () {}
|
15569
|
-
};
|
15570
|
-
});
|
15571
|
-
define('ember-data/initializers/store', ['exports'], function (exports) {
|
15572
|
-
'use strict';
|
15573
|
-
|
15574
|
-
exports.__esModule = true;
|
15575
|
-
exports.default = {
|
15576
|
-
name: 'store',
|
15577
|
-
after: 'ember-data',
|
15578
|
-
initialize: function () {}
|
15579
|
-
};
|
15580
|
-
});
|
15581
|
-
define('ember-data/initializers/transforms', ['exports'], function (exports) {
|
15582
|
-
'use strict';
|
15583
|
-
|
15584
|
-
exports.__esModule = true;
|
15585
|
-
exports.default = {
|
15586
|
-
name: 'transforms',
|
15587
|
-
before: 'store',
|
15588
|
-
initialize: function () {}
|
15589
|
-
};
|
15590
|
-
});
|
15591
|
-
define("ember-data/instance-initializers/ember-data", ["exports", "ember-data/instance-initializers/initialize-store-service"], function (exports, _initializeStoreService) {
|
15592
|
-
"use strict";
|
15593
|
-
|
15594
|
-
exports.__esModule = true;
|
15595
|
-
exports.default = {
|
15596
|
-
name: "ember-data",
|
15597
|
-
initialize: _initializeStoreService.default
|
15598
|
-
};
|
15599
|
-
});
|
15600
|
-
define('ember-data/instance-initializers/initialize-store-service', ['exports'], function (exports) {
|
15394
|
+
define('ember-data/initialize-store-service', ['exports'], function (exports) {
|
15601
15395
|
'use strict';
|
15602
15396
|
|
15603
15397
|
exports.__esModule = true;
|
@@ -15665,6 +15459,64 @@ define('ember-data/instance-initializers/initialize-store-service', ['exports'],
|
|
15665
15459
|
};
|
15666
15460
|
}
|
15667
15461
|
});
|
15462
|
+
define('ember-data/initializers/data-adapter', ['exports'], function (exports) {
|
15463
|
+
'use strict';
|
15464
|
+
|
15465
|
+
exports.__esModule = true;
|
15466
|
+
exports.default = {
|
15467
|
+
name: 'data-adapter',
|
15468
|
+
before: 'store',
|
15469
|
+
initialize: function () {}
|
15470
|
+
};
|
15471
|
+
});
|
15472
|
+
define('ember-data/initializers/ember-data', ['exports', 'ember-data/setup-container', 'ember-data'], function (exports, _setupContainer) {
|
15473
|
+
'use strict';
|
15474
|
+
|
15475
|
+
exports.__esModule = true;
|
15476
|
+
exports.default = {
|
15477
|
+
name: 'ember-data',
|
15478
|
+
initialize: _setupContainer.default
|
15479
|
+
};
|
15480
|
+
});
|
15481
|
+
define('ember-data/initializers/injectStore', ['exports'], function (exports) {
|
15482
|
+
'use strict';
|
15483
|
+
|
15484
|
+
exports.__esModule = true;
|
15485
|
+
exports.default = {
|
15486
|
+
name: 'injectStore',
|
15487
|
+
before: 'store',
|
15488
|
+
initialize: function () {}
|
15489
|
+
};
|
15490
|
+
});
|
15491
|
+
define('ember-data/initializers/store', ['exports'], function (exports) {
|
15492
|
+
'use strict';
|
15493
|
+
|
15494
|
+
exports.__esModule = true;
|
15495
|
+
exports.default = {
|
15496
|
+
name: 'store',
|
15497
|
+
after: 'ember-data',
|
15498
|
+
initialize: function () {}
|
15499
|
+
};
|
15500
|
+
});
|
15501
|
+
define('ember-data/initializers/transforms', ['exports'], function (exports) {
|
15502
|
+
'use strict';
|
15503
|
+
|
15504
|
+
exports.__esModule = true;
|
15505
|
+
exports.default = {
|
15506
|
+
name: 'transforms',
|
15507
|
+
before: 'store',
|
15508
|
+
initialize: function () {}
|
15509
|
+
};
|
15510
|
+
});
|
15511
|
+
define("ember-data/instance-initializers/ember-data", ["exports", "ember-data/initialize-store-service"], function (exports, _initializeStoreService) {
|
15512
|
+
"use strict";
|
15513
|
+
|
15514
|
+
exports.__esModule = true;
|
15515
|
+
exports.default = {
|
15516
|
+
name: "ember-data",
|
15517
|
+
initialize: _initializeStoreService.default
|
15518
|
+
};
|
15519
|
+
});
|
15668
15520
|
define('ember-data/model', ['exports', 'ember-data/-private'], function (exports, _private) {
|
15669
15521
|
'use strict';
|
15670
15522
|
|
@@ -18165,16 +18017,16 @@ define('ember-data/transforms/boolean', ['exports', 'ember-data/transforms/trans
|
|
18165
18017
|
var isNone = Ember.isNone;
|
18166
18018
|
exports.default = _transform.default.extend({
|
18167
18019
|
deserialize: function (serialized, options) {
|
18168
|
-
var type = typeof serialized;
|
18169
|
-
|
18170
18020
|
if (isNone(serialized) && options.allowNull === true) {
|
18171
18021
|
return null;
|
18172
18022
|
}
|
18173
18023
|
|
18024
|
+
var type = typeof serialized;
|
18174
18025
|
if (type === "boolean") {
|
18175
18026
|
return serialized;
|
18176
18027
|
} else if (type === "string") {
|
18177
|
-
return
|
18028
|
+
return (/^(true|t|1)$/i.test(serialized)
|
18029
|
+
);
|
18178
18030
|
} else if (type === "number") {
|
18179
18031
|
return serialized === 1;
|
18180
18032
|
} else {
|
@@ -18398,7 +18250,7 @@ define("ember-data/version", ["exports"], function (exports) {
|
|
18398
18250
|
"use strict";
|
18399
18251
|
|
18400
18252
|
exports.__esModule = true;
|
18401
|
-
exports.default = "2.
|
18253
|
+
exports.default = "2.18.0-beta.1";
|
18402
18254
|
});
|
18403
18255
|
define("ember-inflector", ["module", "exports", "ember-inflector/lib/system", "ember-inflector/lib/ext/string"], function (module, exports, _system) {
|
18404
18256
|
"use strict";
|