A lightweight reactive data library for javascript applications. Designed over composable primitives.
Bugfixes to resolve major upgrade blockages (computed chains not recalcing, failing builds)
Bugfixes to resolve major upgrade blockages (computed chains not recalcing, failing builds)
Note: RequestManager was marked private as a package prior to publishing and did not ship with this version.
tracking
store
store
workspace:
prefixworkspace:
prefixmodel
-ember-data
, model
, private-build-infra
, store
, tracking
, unpublished-test-infra
-ember-data
, private-build-infra
, record-data
, store
-ember-data
, private-build-infra
store
debug
-ember-data
, model
-ember-data
, model
, store
-ember-data
, private-build-infra
-ember-data
, store
-ember-data
, store
-ember-data
, store
store
store
-ember-data
, store
Version 4.7 includes a number of new deprecations, several new features, bug fixes, and a large slate of significant performance improvements.
Of Note:
⚡️ Performance Improvements
Note: many performance improvements are gated by deprecation removal, meaning that you need to resolve all deprecations for EmberData 4.7 and mark your app as compatible with that version in order to opt in to the fastest codepaths.
All applications should observe significant speed improvements when using EmberData 4.7. The below call-outs are in relation to EmberData 4.6, which was itself also the fastest version of EmberData since we began benchmarking and tracking in the late 2.x series. Many of these improvements were made possible due to the nearing completion of Project Trim (and specifically the removal of InternalModel).
⚡️Pushing new data into the cache is now ~33% faster ⚡️Accessing the LiveArray (peekAll / findAll) for the first time is now 97% faster ⚡️Creating record instances is now ~45-50% faster ⚡️Reduced memory pressure may speedup first render after a large push by ~75% ⚡️Initial Access of Related Records is now ~80% faster ⚡️Initial Access of Async Relationships sees 30% faster creation of async proxies ⚡️Unloading of all records individually (one at a time in a loop) is 40% faster ⚡️Destroying all records (e.g. also sending an API request) in a loop is 62% faster ⚡️Unloading all records (of all types) is ~98% faster ⚡️Receiving and processing updated payloads for existing hasMany relationships is ~40% faster
In addition to these improvements significantly speeding up data usage in applications, we expect to see especially dramatic improvements anywhere the application undergoes teardown (after each test in CI or Fastboot request is processed). In several applications that we looked at, fixture population for acceptance and integration tests accounted for 30% of the total test time, with teardown of those fixtures representing another 40% of the total test time. We would expect such tests to see an overall test-run improvement time in the 50-75% range.
-ember-data
, model
, store
-ember-data
-ember-data
, adapter
, canary-features
, model
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
, canary-features
, model
, private-build-infra
, record-data
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
, canary-features
, model
, record-data
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, adapter
, model
, private-build-infra
, record-data
, store
, unpublished-relationship-performance-test-app
-ember-data
, adapter
, canary-features
, model
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
, adapter
, canary-features
, debug
, model
, private-build-infra
, record-data
, serializer
, store
-ember-data
, canary-features
, model
, private-build-infra
, record-data
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
, adapter
, model
, private-build-infra
, serializer
, store
-ember-data
, model
, private-build-infra
-ember-data
, adapter
, debug
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, adapter
, canary-features
, model
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
, model
, private-build-infra
, record-data
, unpublished-adapter-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, canary-features
, model
, private-build-infra
, record-data
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
, canary-features
, model
, record-data
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, adapter
, model
, private-build-infra
, record-data
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
-ember-data
-ember-data
, adapter
, debug
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, model
, private-build-infra
, record-data
, store
-ember-data
, model
, record-data
, store
-ember-data
, model
, record-data
model
, record-data
, store
-ember-data
, adapter
, canary-features
, debug
, model
, private-build-infra
, record-data
, serializer
, store
private-build-infra
model
-ember-data
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-serializer-encapsulation-test-app
private-build-infra
, store
-ember-data
, model
, store
-ember-data
, model
, store
-ember-data
, adapter
, model
, private-build-infra
, record-data
, store
, unpublished-relationship-performance-test-app
store
This is a re-release of v4.5.0
Version 4.5 includes a number of new deprecations, a significant internal refactoring of the store architecture and several bug fixes.
Of note:
Users of just the core of EmberData may expect their builds to be 35-50% smaller. This is due to most of the legacy support for @ember-data/model having now found its final location at home in that package instead of within the @ember-data/store package. The size of @ember-data/store is reduced from ~16kb compressed to ~9.5kb compressed, potentially a little less depending on what deprecations are resolved and what other packages are present. We expect the core to continue to shrink as we complete the final stages of removing InternalModel, complete implementations for recently accepted deprecation RFCs, and introduce RecordDataV2.
Users of private store APIs may find these APIs have now been deprecated or removed. Internal restructuring will be high the next 6 months as we polish off the removal of InternalModel and continue to simplify codepaths which that removal allows us to do. All but a very few private methods have been entirely eliminated from the store.
New Deprecations target 5.0 and include:
RSVP.Promise
that applications may have become dependent on if their tests are leakytype
property on snapshots (which would lookup the model class).store.find
, a private method that has been maintained in case users accidentally fell into using ember's hidden autofetch behavior in routesstore.hasRecordForId
, as peekRecord
is generally more useful and provides the same information (and more).store.recordWasInvalid
, an unused internal api that ember-model-validations
appears to be using.attributesDefinitionFor
and relationshipsDefinitionFor
, these APIs now expect an object with at least a type
property representing the model name.-json-api
fallback adapter, a hidden behavior that provided an adapter if the application failed to define one.As always deprecated code can be eliminated from the build output by specifying the compatWith
arg on the emberData configuration in your app.
-ember-data
, private-build-infra
, store
-ember-data
, adapter
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-model-encapsulation-test-app
-ember-data
, adapter
-ember-data
, store
-ember-data
, adapter
, canary-features
, debug
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-debug-encapsulation-test-app
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-record-data-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, debug
adapter
, model
, private-build-infra
, serializer
-ember-data
, model
, store
-ember-data
serializer
-ember-data
, model
-ember-data
, adapter
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-model-encapsulation-test-app
model
LICENSE.md
(@ddzz)-ember-data
, adapter
, debug
, model
, private-build-infra
, record-data
, store
, unpublished-test-infra
-ember-data
, model
, record-data
, store
, unpublished-test-infra
-ember-data
, adapter
, debug
, model
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-debug-encapsulation-test-app
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-record-data-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, adapter
, model
, store
-ember-data
-ember-data
, adapter
, model
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-debug-encapsulation-test-app
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-record-data-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, store
-ember-data
, adapter
, canary-features
, debug
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-debug-encapsulation-test-app
, unpublished-eslint-rules
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-record-data-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
-ember-data
, adapter
, debug
, model
, private-build-infra
, record-data
, store
, unpublished-test-infra
-ember-data
, adapter
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-model-encapsulation-test-app
-ember-data
, adapter
, canary-features
, debug
, model
, private-build-infra
, record-data
, serializer
, store
, unpublished-adapter-encapsulation-test-app
, unpublished-debug-encapsulation-test-app
, unpublished-eslint-rules
, unpublished-fastboot-test-app
, unpublished-model-encapsulation-test-app
, unpublished-record-data-encapsulation-test-app
, unpublished-relationship-performance-test-app
, unpublished-serializer-encapsulation-test-app
, unpublished-test-infra
-ember-data
, adapter
, model
, private-build-infra
, record-data
, store
-ember-data