v0.17.0-beta.9
Pre-releaseThis is perhaps the most major "beta" release in orbit's history. It fulfills a number of long-requested goals:
-
[BREAKING] Moves the record-specific interfaces in
@orbit/data
into their own package:@orbit/records
. Unfortunately, this will require a number of imports to be refactored, and is a breaking change. However, this refactor was necessary to make sense of the massive TypeScript interface improvements needed to support the rest of this PR. It also paves the way to use orbit with document-centric, rather than record-centric, protocols. See #794 for details. -
[BREAKING] Another breaking change has been made to allow for consistent handling of "not found" errors across sources. The default behavior is to now return
undefined
for queries instead of raising aRecordNotFoundException
. This makes it possible to issue multiple query expressions at once without worrying that a single record not found will prevent access to the rest of the results. If you'd like to continue to raiseRecordNotFoundException
in these cases, use theraiseNotFoundExceptions: true
option. This can be set per-query, or per-expression, or as a default option for a source via thedefaultQueryOptions
setting. -
Adds support for more detailed, full responses from requests. Using the
fullResponse: true
option, you can now request details such as the full response document for JSONAPISource queries and updates. See #794 for details. -
Ensures consistency between the
query
andupdate
interfaces used by both caches and sources (with the exception that synchronous caches of course still return results immediately). Thepatch
method has been deprecated for caches. Again, part of #794. -
Support for parallel fetch requests for multi-expression queries and multi-operation updates made to the JSONAPISource. By default, queries will be run in parallel now, while transform operations will still run in series. See #806.
More details and examples will be provided in the full v0.17 release notes.
Changelog
💥 Breaking Change
@orbit/coordinator
,@orbit/core
,@orbit/data
,@orbit/identity-map
,@orbit/indexeddb
,@orbit/integration-tests
,@orbit/jsonapi
,@orbit/local-storage
,@orbit/memory
,@orbit/record-cache
,@orbit/records
🚀 Enhancement
@orbit/core
,@orbit/indexeddb
,@orbit/local-storage
,@orbit/memory
,@orbit/records
@orbit/core
,@orbit/data
,@orbit/indexeddb
,@orbit/jsonapi
,@orbit/local-storage
,@orbit/memory
,@orbit/record-cache
,@orbit/records
@orbit/integration-tests
,@orbit/jsonapi
@orbit/data
,@orbit/jsonapi
@orbit/data
,@orbit/integration-tests
@orbit/coordinator
,@orbit/core
,@orbit/data
,@orbit/identity-map
,@orbit/indexeddb
,@orbit/integration-tests
,@orbit/jsonapi
,@orbit/local-storage
,@orbit/memory
,@orbit/record-cache
,@orbit/records
@orbit/jsonapi
@orbit/memory
@orbit/coordinator
,@orbit/core
,@orbit/data
,@orbit/identity-map
,@orbit/immutable
,@orbit/indexeddb-bucket
,@orbit/indexeddb
,@orbit/integration-tests
,@orbit/jsonapi
,@orbit/local-storage-bucket
,@orbit/local-storage
,@orbit/memory
,@orbit/record-cache
,@orbit/serializers
,@orbit/utils
🏠 Internal
@orbit/build
,@orbit/coordinator
,@orbit/core
,@orbit/data
,@orbit/identity-map
,@orbit/immutable
,@orbit/indexeddb-bucket
,@orbit/indexeddb
,@orbit/jsonapi
,@orbit/local-storage-bucket
,@orbit/local-storage
,@orbit/memory
,@orbit/record-cache
,@orbit/records
,@orbit/serializers
,@orbit/utils
- Other
@orbit/jsonapi
@orbit/jsonapi
,@orbit/record-cache