RxDB v11.0.0 Release Notes

Release Date: 2022-01-03 // over 2 years ago
  • 💥 BREAKING:

    • RxStorage: The non async functions prepareQuery, getSortComparator and getQueryMatcher have been moved out of RxStorageInstance into RxStorage. This was needed to have better WebWorker support. This will not affect you do not use a custom RxStorage implementation.
    • LokiJS: Do not use the IdleQueue of the RxDatabase to handle calls to saveDatabase(), instead wait for CPU idleness of the JavaScript process.
    • RxStorageInterface:
      • Replaced all Map with plain json objects so that they can be JSON.stringify-ed
      • Replaced typings of event stream to use EventBulk and process events in bulks to save performance.
      • Move all static methods into the statics property so we can code-split when using the worker plugin.
      • digest and length of attachment data is now created by RxDB, not by the RxStorage. #3548
      • Added the statics hashKey property to identify the used hash function.
    • Internally all events are handles via bulks, this saves performance when events are transfered over a WebWorker or a BroadcastChannel.
    • Removed the deprecated recieved methods, use received instead. See #3392
    • Removed the no-validate plugin. To use RxDB without schema validation, just do not add a validation plugin to your custom build.

    🛠 Bugfixes:

    • Do not throw an error when database is destroyed while a GraphQL replication is running.
    • Compound primary key migration throws "Value of primary key(s) cannot be changed" #3546 Thanks @nothingkid
    • Allow _id as primaryKey #3562 Thanks @SuperKirik
    • LokiJS: Remote operations do never resolve when remote instance was leader and died.

    Other:

    • LokiJS: All documents are stored with a $lastWriteAt field, so we can implement an auto compaction later.
    • Transpile async/await to promises instead of generators. via babel-plugin-transform-async-to-promises