Description
WONTFIX
- transforms now come from a public instead of private import location
- setConfig is required if not using the
ember-data
package - extending
@ember-data/store
instead ofember-data/store
now requires full configuration - super in hooks in classes extending
@ember-data/store
no longer works model._notifyProperties
has been removed- cache is stricter:
You must include an 'id' for the resource data ${resource.type}
Missing Resource Type: received resource data with a type '${resource.type}' but no schema could be found with that name.
- mutating an attribute on a record by setting it directly will now generate a change notification for that attribute. Previously, because attr is implemented as a computed prop we were relying on it managing its own value and not emitting the notification. This caused bugs for other consumers of the change (inspector, references, schema-record) and so we no longer swallow this notification.
- this can have the unexpected effect of causing tracked functions and cached getters which create new records to recompute if the attribute which is mutated was originally set inside the tracked function or cached getter, as it will be subscribed to this change.
- Backports fix for deleteRecord does not set hasDirtyAttributes to true #9053
- the private APIs
belongsToReference.belongsToRelationship
andhasManyReference.hasManyRelationship
have been removed. - There appears to be a subtle timing change around notifying the identity and state of a new record as it is saved.
- we now subscribe to notifications for requests in the Request component, this can lead to some re-renders that wouldn't have occurred before when cache updates.
- we no longer notify attribute keys that aren't in the schema
MAYBEFIX
-
adapter.useFetch
is assigned in a new way, resulting in the getter approach in app adapters not working. fields approach works e.g.useFetch = false
. -
isRelationship
andisAttribute
on field meta is no longer present. These were meant to be private and not part of the spec, but some apps may have discovered and made use of them. -
key
on field meta is no longer present, this was a private reflection ofname
andname
should be used instead. -
relationship graph uses the passed in arrays from operations that update remote state for perf, this exposes them to accidental mutation later. We should consider freezing and/or slicing these arrays in debug as this is mostly an issue with tests using mirage.
- This can result in Relationship state sometimes storing non-stable identifiers
-
if you call
createRecord
in a test expecting a re-render, you need toawait settled
-
inverseFor().type
is now always a string, before it could be a class [4.12->5.x]: Model.inverseFor(...).type was class, is now a string #9970
TO FIX
- deprecated
registerSchema
does not setup schema in a way that avoids the store attempting to callcreateSchemaService
getSchemaDefinitionService
only checks for schemas registered withregisterSchema
- app-re-exports erroneously use build config
FIXED
- Error: this.warnMessageNoModelForKey is not a function #9611 (affects both 5.x and 4.13)
- ember-inflector support initializer needs to be backported
- existing notification bug where we will notify attribute keys that aren't in the schema (e.g. due to the API returning keys that aren't in the schema which is really common in Mirage) can lead to over-notification issues now that we subscribe to these notifications in the Request component. Fixed by no-longer notifying for keys not in the schema. fix: Don't notify changes for attributes not registered with the schema #9698
- receiving a new request with the same id as the original request in the request component can error because the second request will be backgrounded and we don't account for that in the request validation. Error is
The `request` passed to `RequestManager.request(<request>)` was empty (`{}`). Requests need at least one valid key.
Fix bug where race condition causes errors during Request refresh #9685 - hasMany relationships will notify any time they receive an updated payload even if the state is exactly the same due to the fix in # for ensuring we notify for potential re-ordering. (feb6e5a#diff-6bf06ca7b029990de472c9fae36ea1e7e074b8e3d8ddfaf87edc2b5eb41e5d76R154)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status