Releases: orbitjs/orbit
v0.16.0-beta.10
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
@orbit/indexeddb
,@orbit/memory
🐛 Bug Fix
Committers: 2
v0.16.0-beta.9
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 theUpdatable
interface, which can be more user-friendly to directly interact with than thePullable
interface. #667 -
filter
|sort
|page
support has been added tofindRelatedRecords
queries and all the standard implementations. #669 -
Explicit source
activate
anddeactivate
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 newactivated
property). #671 -
Whenever tasks are cancelled and removed from a queue (such as a source's
requestQueue
orsyncQueue
), 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
@orbit/jsonapi
@orbit/coordinator
,@orbit/data
,@orbit/integration-tests
@orbit/data
,@orbit/jsonapi
,@orbit/record-cache
@orbit/data
- #662 Warn if naive singularize method receives a word that doesn't end in "s" (@lukemelia)
🐛 Bug Fix
@orbit/core
@orbit/coordinator
,@orbit/data
,@orbit/integration-tests
🏠 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
@orbit/data
,@orbit/jsonapi
,@orbit/record-cache
,@orbit/utils
@orbit/indexeddb
,@orbit/local-storage
,@orbit/memory
,@orbit/record-cache
@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
Committers: 3
- Dan Gebhardt (@dgeb)
- Luke Melia (@lukemelia)
- Paul Chavard (@tchak)
v0.16.0-beta.8
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
@orbit/data
🐛 Bug Fix
@orbit/data
- #659 Throw when invalid filter expression. (@lukemelia)
@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
@orbit/data
,@orbit/record-cache
,@orbit/utils
@orbit/coordinator
,@orbit/identity-map
,@orbit/immutable
@orbit/core
Committers: 3
- Luke Melia (@lukemelia)
- Miguel Camba (@cibernox)
- Paul Chavard (@tchak)
v0.16.0-beta.7
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
Committers: 1
- Dan Gebhardt (@dgeb)
v0.16.0-beta.6
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
@orbit/integration-tests
,@orbit/memory
,@orbit/store
🚀 Enhancement
@orbit/integration-tests
,@orbit/jsonapi
- #630 Introduce JSONAPIRequestProcessor (@lukemelia)
@orbit/identity-map
@orbit/data
,@orbit/record-cache
- #627 Polymorphic Relationships (@ggayowsky)
🐛 Bug Fix
@orbit/memory
,@orbit/record-cache
- #637 Dependent record deletion not updating (@ggayowsky)
📝 Documentation
@orbit/data
@orbit/core
- #629 Fixed typo in comment (@lukemelia)
🏠 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
@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
- Dan Gebhardt (@dgeb)
- Gerald Gayowsky (@ggayowsky)
- Luke Melia (@lukemelia)
- Paul Chavard (@tchak)
v0.16.0-beta.5
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
- Simon Ihmig (@simonihmig)
v0.16.0-beta.4
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
🐛 Bug Fix
@orbit/record-cache
,@orbit/store
- #620 Fix update record not populating inverse relationships (@ggayowsky)
🏠 Internal
Committers: 2
- Gerald Gayowsky (@ggayowsky)
- Paul Chavard (@tchak)
v0.16.0-beta.3
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
@orbit/indexeddb
,@orbit/local-storage
🏠 Internal
@orbit/indexeddb
,@orbit/local-storage
@orbit/integration-tests
Committers: 2
v0.16.0-beta.2
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
@orbit/store
- #596 Add Store.rebase() (@Bernhard---H)
🐛 Bug Fix
-
@orbit/record-cache
- #603 Return empty array when querying for non-existing relationships with findRelatedRecords (@PieterJanVdb)
-
@orbit/record-cache
🏠 Internal
Committers: 3
- Bernhard Halbartschlager (@Bernhard---H)
- Pieter-Jan Vandenbussche (@PieterJanVdb)
- Dan Gebhardt (@dgeb)
v0.16.0-beta.1
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 theCache
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 asboolean
,string
,date
,datetime
, andnumber
. 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
@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
@orbit/coordinator
,@orbit/core
,@orbit/data
,@orbit/record-cache
,@orbit/store
🚀 Enhancement
@orbit/data
,@orbit/jsonapi
@orbit/jsonapi
,@orbit/serializers
@orbit/serializers
@orbit/store
@orbit/data
,@orbit/indexeddb
,@orbit/local-storage
,@orbit/record-cache
,@orbit/store
@orbit/coordinator
,@orbit/data
@orbit/jsonapi
@orbit/immutable
🐛 Bug Fix
@orbit/core
,@orbit/local-storage
,@orbit/store
@orbit/jsonapi
- #588 Always treat a 204 response as having no content (@simonihmig)
- #562 Let ResourceIdentity be null, Closes #561 (@lolmaus)
@orbit/data
- #578 Coalesce addToRelatedRecords + removeRecord (@jembezmamy)
- #568 Fix typings for QueryBuilderFunc and TransformBuilderFunc (@dgeb)
- #563 Closes #472 (@Raiondesu)
@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
🏠 Internal
@orbit/data
,@orbit/store
@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
- Other
Committers: 5
- Alexey (@Raiondesu)
- Andrey Mikhaylov (lolmaus) (@lolmaus)
- Dan Gebhardt (@dgeb)
- Paweł Bator (@jembezmamy)
- Simon Ihmig (@simonihmig)