Skip to content

v0.16.0-beta.6

Pre-release
Pre-release
Compare
Choose a tag to compare
@dgeb dgeb released this 23 May 21:55

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