Skip to content

v0.17.0-beta.9

Pre-release
Pre-release
Compare
Choose a tag to compare
@dgeb dgeb released this 09 Feb 23:28
· 327 commits to main since this release

This 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 a RecordNotFoundException. 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 raise RecordNotFoundException in these cases, use the raiseNotFoundExceptions: true option. This can be set per-query, or per-expression, or as a default option for a source via the defaultQueryOptions 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 and update interfaces used by both caches and sources (with the exception that synchronous caches of course still return results immediately). The patch 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
    • #794 Extract @orbit/records from @orbit/data and introduce full, detailed responses across all sources and caches (@dgeb)

🚀 Enhancement

  • @orbit/core, @orbit/indexeddb, @orbit/local-storage, @orbit/memory, @orbit/records
    • #808 Ensure that schema + source upgrades are reliably async (@dgeb)
  • @orbit/core, @orbit/data, @orbit/indexeddb, @orbit/jsonapi, @orbit/local-storage, @orbit/memory, @orbit/record-cache, @orbit/records
    • #807 Improve typings via separate interface definitions, overloaded methods, and more generics (@dgeb)
  • @orbit/integration-tests, @orbit/jsonapi
    • #806 JSONAPISource: Introduce parallelRequests option (@dgeb)
  • @orbit/data, @orbit/jsonapi
    • #805 Improve usage of transform / query options (@dgeb)
  • @orbit/data, @orbit/integration-tests
    • #804 Remove includeSources request option (@dgeb)
  • @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
    • #794 Extract @orbit/records from @orbit/data and introduce full, detailed responses across all sources and caches (@dgeb)
  • @orbit/jsonapi
    • #793 Update operations serializers to follow atomic operations extention (@tchak)
  • @orbit/memory
    • #795 Improve perf by cloning only newly added relationship (@enspandi)
  • @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
    • #789 Further improvements in typings (@dgeb)

🏠 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
    • #809 Add publishConfig settings to package.json (@dgeb)
  • Other
    • #802 CI: Separate lint+compile job from test job (@dgeb)
    • #800 Switch CI from Travis to Github (@dgeb)
  • @orbit/jsonapi
    • #792 Add multi-expression/operation tests for jsonapi (@dgeb)
  • @orbit/jsonapi, @orbit/record-cache
    • #791 Separate extra-long test modules into multiple modules (@dgeb)

Committers: 3