Skip to content

Releases: orbitjs/orbit

v0.17.0-beta.12

17 Feb 14:51
Compare
Choose a tag to compare
v0.17.0-beta.12 Pre-release
Pre-release

With this release, all of Orbit's standard sources now support the Queryable and Updatable interfaces. Thus, you can now call query or update against an IndexedDBSource or LocalStorageSource in the same way that you can query or update a MemorySource or JSONAPISource. Furthermore, all caches now support query and update (some sync and some async), so there is broad consistency across the board. 🎉

As mentioned in #813:

This will allow for the deprecation of Pullable and Pushable, now that equivalent results can be achieved via query and update calls with the fullResponse: true option. Reducing the number of interfaces per-source should be a nice simplification that allows for more flexibility.

These deprecations should happen just prior to, or following, the final release of v0.17 (i.e. very soon).

Changelog

🚀 Enhancement

  • @orbit/coordinator
    • #814 Coordinator: Allow generic typing of getStrategy & getSource (@dgeb)
  • @orbit/indexeddb, @orbit/local-storage, @orbit/memory
    • #813 Implement Queryable + Updatable across all cache-based sources (@dgeb)

🏠 Internal

  • @orbit/build, @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/records, @orbit/serializers, @orbit/utils

Committers: 1

v0.17.0-beta.11

11 Feb 17:34
Compare
Choose a tag to compare
v0.17.0-beta.11 Pre-release
Pre-release

Changelog

🚀 Enhancement

  • @orbit/memory
    • #812 MemorySource: Use cache.update instead of cache.patch (@dgeb)

Committers: 1

v0.17.0-beta.10

11 Feb 16:50
Compare
Choose a tag to compare
v0.17.0-beta.10 Pre-release
Pre-release

A few minor enhancements intended to smooth the way to using all the new features in the previous beta.

Changelog

🚀 Enhancement

  • @orbit/records
    • #811 Use generics in typing record query/transform results (@dgeb)
  • @orbit/indexeddb, @orbit/local-storage, @orbit/memory, @orbit/record-cache, @orbit/records
    • #810 Ensure that query/transform options are shared between sources and their caches (@dgeb)

Committers: 1

v0.17.0-beta.9

09 Feb 23:28
Compare
Choose a tag to compare
v0.17.0-beta.9 Pre-release
Pre-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

v0.17.0-beta.8

27 Sep 17:36
Compare
Choose a tag to compare
v0.17.0-beta.8 Pre-release
Pre-release

Changelog

🚀 Enhancement

  • @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
  • @orbit/data
    • #784 Introduce UninitializedRecord interface, with optional id (@dgeb)

📝 Documentation

  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/indexeddb-bucket, @orbit/local-storage-bucket, @orbit/memory, @orbit/utils
    • #787 Remove redundant / unnecessary type-related comments (@dgeb)
  • @orbit/utils
    • #786 Deprecate merge, extend, and expose utility fns (@dgeb)
  • @orbit/data
    • #785 Deprecate inflectors (singularize/pluralize) on Schema (@dgeb)

Committers: 1

v0.17.0-beta.7

16 Sep 18:10
Compare
Choose a tag to compare
v0.17.0-beta.7 Pre-release
Pre-release

This beta release contains a fix to the mergeOperations function, which is especially important when merging a fork of a memory source back into its root. addRecord + updateRecord operations are now fully coalesced (#780). Thanks to @chbonser for reporting and creating a failing test.

Also included are a few refinements to the new serializers in @orbit/jsonapi. Now, by default, attributes of type object, array, and unknown (i.e. undefined) will be handled by the NoopSerializer, so the values will be passed through "as-is" on serialization / deserialization. This behavior can be overridden per type, but should provide a smoother transition for developers who had used these types, or no types, to define attributes in their schemas in v0.16.

Changelog

🚀 Enhancement

  • @orbit/jsonapi
    • #783 [jsonapi] Register object and array types to use NoopSerializer by default (@dgeb)
    • #775 Add unknown serializer (@tchak)

🐛 Bug Fix

  • @orbit/data
    • #780 Support coalescing of addRecord/updateRecord + updateRecord (@dgeb)

🏠 Internal

  • @orbit/build, @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
  • @orbit/record-cache
    • #776 Expand record-cache tests for liveQuery (@dgeb)

Committers: 3

v0.16.7

14 Sep 20:17
Compare
Choose a tag to compare

This release backports PR #780 to v0.16. This addresses an issue in mergeOperations in which addRecord and updateRecord operations were not being merged with subsequent updateRecord operations for the same record.

Many thanks to @chbonser for finding this bug and preparing a failing test in #777.

🐛 Bug Fix

  • @orbit/data

Committers: 1

v0.17.0-beta.5

31 Jul 15:47
Compare
Choose a tag to compare
v0.17.0-beta.5 Pre-release
Pre-release

This beta release solves a few issues remaining from v0.17.0-beta.4:

  • Fixes an oversight in which the deprecated jsonapi-serializer module was no longer exported from @orbit/jsonapi.
  • Exposes several methods on the JSONAPISource related to transform and query request processing, as well as the supporting lib modules, to allow for easier customization on a per-request level.
  • Expands recordDiffs to handle all possible record fields. For @orbit/jsonapi this will allow any server-driven changes to a record, including fields such as meta and links, to flow back to other sources as updates to records.

Changelog

🚀 Enhancement

  • @orbit/data
    • #772 Fill out recordDiffs implementation (@dgeb)
  • @orbit/jsonapi
    • #771 Expand exports in @orbit/jsonapi (@dgeb)

Committers: 1

v0.17.0-beta.4

27 Jul 20:08
Compare
Choose a tag to compare
v0.17.0-beta.4 Pre-release
Pre-release

This is the fourth, and likely final, beta release for v0.17. The extensive contents of this release will be covered in depth in a release post for v0.17. Please review the changelog below and follow up with any questions or problems you encounter.

Changelog

💥 Breaking Change

  • @orbit/integration-tests, @orbit/jsonapi
  • @orbit/core, @orbit/data, @orbit/indexeddb, @orbit/jsonapi, @orbit/memory, @orbit/record-cache, @orbit/utils

🚀 Enhancement

  • @orbit/data, @orbit/jsonapi, @orbit/memory, @orbit/record-cache
    • #765 Add options to QueryExpression and Operation (@tchak)
  • @orbit/integration-tests, @orbit/jsonapi
  • @orbit/serializers, @orbit/utils
    • #761 Introduce inflectors to @orbit/serializers (@dgeb)
  • @orbit/jsonapi, @orbit/serializers
  • @orbit/indexeddb, @orbit/local-storage, @orbit/memory
    • #759 cache settings as part of source settings should be partial (@tchak)

🐛 Bug Fix

  • @orbit/memory, @orbit/record-cache
    • #762 Fix cache integrity processors' handling of relationships without explicit inverses. (@dgeb)
  • @orbit/indexeddb
    • #752 Finish opening/upgrading indexeddb dbs before closing them (@dgeb)

🏠 Internal

  • @orbit/build
  • @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
    • #766 Refactor internal modules to remove default module exports (@dgeb)
  • Other
    • #764 Upgrade build dependencies (except snowpack) (@dgeb)
    • #753 Test on travis with updated ubuntu (and thus updated Chrome) (@dgeb)
  • @orbit/build, @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
  • @orbit/integration-tests
    • #748 Reintroduce @orbit/integration-tests (@dgeb)

Committers: 2

v0.16.6

24 Jul 16:38
Compare
Choose a tag to compare

This release backports PR #762 to v0.16. This fixes a bug in the cache integrity processors' handling of relationships without explicit inverse declarations. It ensures that relationship bookkeeping is done properly on both ends (see #760 to understand a failure case).

🐛 Bug Fix

  • @orbit/record-cache
    • #763 Backport PR 762 to v0.16 (Fix cache integrity processors' handling of relationships without explicit inverses) (@dgeb)

Committers: 1