Skip to content

Releases: orbitjs/orbit

v0.16.0-beta.10

10 Jul 17:18
Compare
Choose a tag to compare
v0.16.0-beta.10 Pre-release
Pre-release

If all goes well, this should be the last beta before v0.16. It contains a few more deprecation notices (for 0.15 upgraders) as well as finally adding support for hints to MemorySource#update.

Changelog

🚀 Enhancement

  • @orbit/memory
    • #676 [memory] Support hints for update (@dgeb)
  • @orbit/indexeddb, @orbit/memory

🐛 Bug Fix

  • @orbit/data
    • #674 Remove queues processing from deactivate (@tchak)

Committers: 2

v0.16.0-beta.9

09 Jul 22:31
Compare
Choose a tag to compare
v0.16.0-beta.9 Pre-release
Pre-release

This is a big release containing a wide variety of enhancements, bug fixes, and internal cleanup.

Some additions of particular note:

  • The @orbit/jsonapi source now supports the Updatable interface, which can be more user-friendly to directly interact with than the Pullable interface. #667

  • filter | sort | page support has been added to findRelatedRecords queries and all the standard implementations. #669

  • Explicit source activate and deactivate methods have been added to provide hooks to ensure that sources have performed any setup and teardown steps prior to processing. These hooks are automatically called as part of coordinator activation / deactivation, and sources themselves will auto-activate by default (note that this is an async process that can be watched via the new activated property). #671

  • Whenever tasks are cancelled and removed from a queue (such as a source's requestQueue or syncQueue), the promise associated with that task will now always be rejected (if it hasn't already settled). You can control the rejection error or use the default error. #673

Thanks to @tchak, @lukemelia, and @dgeb for all the hard work!

Changelog

🚀 Enhancement

  • @orbit/core
    • #673 Ensure that cancelled tasks in queues have promises rejected (@dgeb)
  • @orbit/jsonapi
    • #668 Expose meta and links from processors to source (@tchak)
    • #667 Add Updatable interface to jsonapi source (@tchak)
  • @orbit/coordinator, @orbit/data, @orbit/integration-tests
    • #671 Introduce explicit source activation + deactivation (@tchak)
  • @orbit/data, @orbit/jsonapi, @orbit/record-cache
    • #669 Add filter|sort|page support to findRelatedRecords queries (@tchak)
  • @orbit/data
    • #662 Warn if naive singularize method receives a word that doesn't end in "s" (@lukemelia)

🐛 Bug Fix

  • @orbit/core
    • #673 Ensure that cancelled tasks in queues have promises rejected (@dgeb)
  • @orbit/coordinator, @orbit/data, @orbit/integration-tests
    • #671 Introduce explicit source activation + deactivation (@tchak)

🏠 Internal

  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/identity-map, @orbit/indexeddb-bucket, @orbit/indexeddb, @orbit/integration-tests, @orbit/jsonapi, @orbit/local-storage-bucket, @orbit/local-storage, @orbit/memory, @orbit/record-cache, @orbit/store
    • #672 Clean up yarn.lock interdependencies (@dgeb)
  • @orbit/data, @orbit/jsonapi, @orbit/record-cache, @orbit/utils
  • @orbit/indexeddb, @orbit/local-storage, @orbit/memory, @orbit/record-cache
    • #666 Refactor @orbit/record-cache with a stricter TS config (@tchak)
  • @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/store, @orbit/utils
    • #664 Upgrade npm dependencies (mostly prettier) (@tchak)

Committers: 3

v0.16.0-beta.8

09 Jun 16:20
Compare
Choose a tag to compare
v0.16.0-beta.8 Pre-release
Pre-release

This release introduces preliminary and partial support for JSON:API Operations in @orbit/jsonapi, which are expected to be introduced to the JSON:API spec in v1.2. @tchak has added serialization + deserialization support for operations to the JSONAPISerializer class. Further support will be added to the JSONAPISource for processing requests that include operations, as well as a WIP websocket implementation (#640).

@tchak has also been quite busy with housekeeping: all code is now formatted with Prettier for consistency.

Last but not least, @lukemelia and @cibernox fixed a few bugs / surprising quirks (see details below).

Changelog

🚀 Enhancement

  • @orbit/jsonapi
    • #658 Add serializeOperation to @orbit/jsonapi (@tchak)
    • #639 @orbit/jsonapi-serializer operations (deserialize) (@tchak)
  • @orbit/data
    • #642 Add {get|each}Attribute and {get|each}Relationship methods (@tchak)

🐛 Bug Fix

  • @orbit/data
  • @orbit/integration-tests, @orbit/jsonapi
  • @orbit/jsonapi
    • #648 When serializing, exclude attributes & relationships not in the schema (@lukemelia)

🏠 Internal

  • @orbit/indexeddb-bucket, @orbit/indexeddb, @orbit/integration-tests, @orbit/jsonapi, @orbit/local-storage-bucket, @orbit/local-storage, @orbit/memory, @orbit/serializers, @orbit/store
    • #657 And the last packages with prettier (@tchak)
  • @orbit/data, @orbit/record-cache, @orbit/utils
    • #656 Apply prettier to even more packages (@tchak)
  • @orbit/coordinator, @orbit/identity-map, @orbit/immutable
  • @orbit/core

Committers: 3

v0.16.0-beta.7

24 May 19:39
Compare
Choose a tag to compare
v0.16.0-beta.7 Pre-release
Pre-release

This release reverts one change introduced in v0.16.0-beta.6 - the language target pointed to by the module field for each package. This has been returned to ES5 after breaking changes were reported with no easy alternative. We'll revisit this in the future but, for now, will stick with "safer" but less modern builds by default. You can still opt-in to ES2017 builds by selecting code from dist/modules/es2017.

Changelog

💥 Breaking Change

  • @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/serializers, @orbit/store, @orbit/utils
    • #647 Revert "Update language level of module target to es2017" (@dgeb)

Committers: 1

v0.16.0-beta.6

23 May 21:55
Compare
Choose a tag to compare
v0.16.0-beta.6 Pre-release
Pre-release

This is a massive v0.16 beta release which includes some major refactoring, new features, and bug fixes.

The @orbit/store package has been deprecated in favor of the new @orbit/memory package (which contains all the same functionality). This clears the way for future Orbit packages that contain higher level Model and Store primitives. @tchak has already begun some work in this regard by introducing the new @orbit/identity-map package in this release.

If you're using the @orbit/jsonapi source, take note of the major refactor by @lukemelia. Luke refactored the JSONAPISource to do its request processing in a new customizable JSONAPIRequestProcessor and JSONAPIURLBuilder classes.

@ggayowsky has also done quite a bit in this release, both in terms of bug fixes and new features. Gerald implemented polymorphic relationships in #627. Relationships in your schemas can now specify multiple possible models as an array in the model field. For example:

    {
      models: {
        star: {
          relationships: {
            celestialObjects: { type: 'hasMany', model: ['planet', 'moon'], inverse: 'star' }
          }
        },
     }
  }

In this way, a star can have both planets and moons as celestialObjects. Orbit is now one step closer to full JSON:API compliance! ⭐️

One last note: to remove lossiness and size bloat due to transpilation, the default module field for each package is now pointing to the latest ES build from the TypeScript compiler (instead of the rather arbitrary ES5 build that was previously referenced). Please use a packaging step in your apps if you need to selectively transpile Orbit further.

Please give this release a try and report any issues. 🚀

Changelog

💥 Breaking Change

  • @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/serializers, @orbit/store, @orbit/utils
    • #644 Update language level of module target to es2017 (@dgeb)
  • @orbit/integration-tests, @orbit/memory, @orbit/store
    • #634 Rename @orbit/store to @orbit/memory (@tchak)

🚀 Enhancement

  • @orbit/integration-tests, @orbit/jsonapi
  • @orbit/identity-map
  • @orbit/data, @orbit/record-cache

🐛 Bug Fix

  • @orbit/memory, @orbit/record-cache

📝 Documentation

🏠 Internal

  • @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/store, @orbit/utils
    • #645 Update lerna and build scripts (@dgeb)
    • #643 git clean prior to publishing packages (@dgeb)
  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/immutable, @orbit/indexeddb-bucket, @orbit/indexeddb, @orbit/integration-tests, @orbit/jsonapi, @orbit/local-storage-bucket, @orbit/local-storage, @orbit/record-cache, @orbit/serializers, @orbit/store, @orbit/utils

Committers: 4

v0.16.0-beta.5

16 Apr 17:03
Compare
Choose a tag to compare
v0.16.0-beta.5 Pre-release
Pre-release

Thanks to @simonihmig for finding and fixing one more bug related to updateRecord operations that we didn't catch in v0.16.0-beta.4.

This bug affects all record-cache-based sources, so please upgrade to beta.5 if you're trying out v0.16.

Changelog

🐛 Bug Fix

  • @orbit/record-cache
    • #625 Fix updating an empty record with an empty relationship (@simonihmig)

Committers: 1

v0.16.0-beta.4

15 Apr 14:06
Compare
Choose a tag to compare
v0.16.0-beta.4 Pre-release
Pre-release

Changelog

Thanks to @ggayowsky for fixing a tricky bug in #620 that affected all record-cache-based sources. When records were updated, inverse relationships would not always be updated as well.

Also, thanks to @tchak for an ergonomic improvement to the JSONAPISource that exposes appendQueryParams for easier overriding.

🚀 Enhancement

  • @orbit/jsonapi
    • #621 Extract appendQueryParams in its own method (@tchak)

🐛 Bug Fix

  • @orbit/record-cache, @orbit/store
    • #620 Fix update record not populating inverse relationships (@ggayowsky)

🏠 Internal

  • @orbit/indexeddb

Committers: 2

v0.16.0-beta.3

17 Mar 18:14
Compare
Choose a tag to compare
v0.16.0-beta.3 Pre-release
Pre-release

Many thanks to @tchak for identifying and fixing a couple critical issues that affected the browser storage sources - @orbit/indexeddb and @orbit/local-storage. 💯

🚨 All users of these sources and the v0.16 beta should update immediately! 🚨

Changelog

🐛 Bug Fix

  • @orbit/indexeddb, @orbit/local-storage, @orbit/record-cache
    • #608 RemoveRecord when part of has many relationship should not clobber the whole relationship in IndexedDB source (@tchak)
  • @orbit/indexeddb, @orbit/local-storage
    • #606 Do not reset persisting sources on initalize (@tchak)

🏠 Internal

  • @orbit/indexeddb, @orbit/local-storage
    • #610 Add tests to verify local storage + indexeddb sources are not reset on initialization (@dgeb)
  • @orbit/integration-tests

Committers: 2

v0.16.0-beta.2

15 Mar 14:48
Compare
Choose a tag to compare
v0.16.0-beta.2 Pre-release
Pre-release

This is the second pre-release of Orbit v0.16. It consists primarily of bug-fixes, but also adds a new rebase method to @orbit/store.

The rebase method works similarly to a git rebase. After a store is forked, there will be two stores: a base and a fork. Both may be updated with transforms. When forkedStore.rebase() is called, any commits on the fork will be undone, the commits to the base store since the fork point will be replayed on the fork, and then the commits on the fork will be replayed on top.

Changelog

🚀 Enhancement

🐛 Bug Fix

  • @orbit/record-cache

    • #603 Return empty array when querying for non-existing relationships with findRelatedRecords (@PieterJanVdb)
  • @orbit/record-cache

🏠 Internal

  • @orbit/store
    • #604 Cleanup and extend store tests (@dgeb)

Committers: 3

v0.16.0-beta.1

10 Feb 17:40
Compare
Choose a tag to compare
v0.16.0-beta.1 Pre-release
Pre-release

This is the first pre-release of Orbit v0.16. This is also the first release with a formal changelog.

Two new packages have been introduced since v0.15:

  • @orbit/record-cache - Extracts the Cache class from @orbit/store as well as its associated processors to provide an abstract base for creating sources that access and maintain a complete set of records. Sync and async versions of caching logic are supported. This package is now used not only by @orbit/store, but also by @orbit/indexeddb and @orbit/local-storage.

  • @orbit/serializers - A set of interfaces and serializer classes that can be used by sources to serialize / deserialize primitive data types. Serializers are now used within the JSONAPISerializer to handle types such as boolean, string, date, datetime, and number. Serializers for custom types can also be registered (see #591 for a complete description).

When upgrading your applications to v0.16, please consider the breaking changes below. Where possible, deprecation warnings have been provided.

Changelog

💥 Breaking Change

  • @orbit/data, @orbit/indexeddb, @orbit/jsonapi, @orbit/local-storage, @orbit/record-cache, @orbit/store
    • #574 Deprecate replaceRecord op in favor of updateRecord (@dgeb)
  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/indexeddb-bucket, @orbit/indexeddb, @orbit/jsonapi, @orbit/local-storage-bucket, @orbit/local-storage, @orbit/record-cache, @orbit/store, @orbit/utils
    • #573 [BREAKING] Expose assert + deprecate only on OrbitGlobal (@dgeb)
  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/record-cache, @orbit/store
    • #567 Define Listener interface and remove support for explicit binding object in listeners (@dgeb)

🚀 Enhancement

  • @orbit/data, @orbit/jsonapi
    • #591 [jsonapi] Use new serializers for serializing / deserializing attribute values (@dgeb)
    • #587 Expand areas in which meta data is allowed (@dgeb)
    • #586 Define Link interface and links objects (refactor of #509) (@dgeb)
  • @orbit/jsonapi, @orbit/serializers
    • #590 JSONAPISerializer implements new Serializer interface (@dgeb)
  • @orbit/serializers
  • @orbit/store
  • @orbit/data, @orbit/indexeddb, @orbit/local-storage, @orbit/record-cache, @orbit/store
    • #584 Support finding records by an array of identities (@dgeb)
    • #555 Extract new @orbit/record-cache package (@dgeb)
  • @orbit/coordinator, @orbit/data
    • #581 Introduce "hints" for requests (@dgeb)
  • @orbit/jsonapi
    • #572 [jsonapi] allowedContentTypes can be customized (@dgeb)
    • #571 [jsonapi] Consider application/json to be valid content (@dgeb)
  • @orbit/immutable
    • #550 Expand capabilities of ImmutableMap (@dgeb)

🐛 Bug Fix

  • @orbit/core, @orbit/local-storage, @orbit/store
  • @orbit/jsonapi
  • @orbit/data
  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/immutable, @orbit/indexeddb-bucket, @orbit/indexeddb, @orbit/jsonapi, @orbit/local-storage-bucket, @orbit/local-storage, @orbit/record-cache, @orbit/store, @orbit/utils

📝 Documentation

  • #593 Clarify Orbit’s purpose and primary use cases (@dgeb)

🏠 Internal

  • @orbit/data, @orbit/store
    • #582 Remove unused exception classes + other minor cleanup (@dgeb)
  • @orbit/coordinator, @orbit/core, @orbit/data, @orbit/immutable, @orbit/indexeddb-bucket, @orbit/indexeddb, @orbit/jsonapi, @orbit/local-storage-bucket, @orbit/local-storage, @orbit/record-cache, @orbit/store, @orbit/utils
    • #579 Use prepare npm task instead of deprecated prepublish (@dgeb)
    • #570 Fix security alerts (@dgeb)
    • #569 Further typing improvements + test refactor (@dgeb)
  • Other

Committers: 5