ember-localstorage-adapter
ember-localstorage-adapter copied to clipboard
relationships in "new" state should not be pushed to LS
From https://github.com/emberjs/data/blob/v2.1.0/packages/ember-data/lib/system/relationships/state/relationship.js#: setHasData:
/*All relationships for a newly created ('store.createRecord()') are
considered known ('hasData === true').
*/
=> serializeHasMany:
serializeHasMany: function(snapshot, json, relationship) {
//..
//json[payloadKey] = snapshot.hasMany(key, { ids: true });
var onlyNotNew=snapshot.hasMany(key);
if (onlyNotNew) {
onlyNotNew=onlyNotNew
.filter(function(rel){return !rel.get("isNew");})
.map(function(rel){return rel.id;});
}
json[payloadKey] = onlyNotNew || [];
//..
}
serializeBelongsTo:
serializeBelongsTo: function(snapshot, json, relationship) {
var key = relationship.key;
var onlyNotNew=snapshot.belongsTo(key);
if (onlyNotNew) {
if (!onlyNotNew.get("isNew")) {
onlyNotNew=onlyNotNew.id;
}
else {
onlyNotNew=null;
}
}
var belongsToId = onlyNotNew;
var payloadKey = this._getMappedKey(key);
if (payloadKey === key && this.keyForRelationship) {
payloadKey = this.keyForRelationship(key, "belongsTo");
}
if (Ember.isNone(belongsToId)) {
json[payloadKey] = null;
} else {
json[payloadKey] = belongsToId;
}
if (relationship.options.polymorphic) {
this.serializePolymorphicType(snapshot, json, relationship);
}
}
},