Changelog History
Page 10
-
v12.0.0 Changes
April 26, 2022- All indexes that do not contain the primaryKey, get the primary key added.
- You can now set a custom index when doing a query.
- ๐ Unified the replication primitives and the GraphQL replication plugin.
- โ Removed the deprecated in-memory plugin.
- โ Added cleanup plugin
- ๐จ Refactor local documents plugin to only create a storage instance for local documents when needed.
โ Removed the
core
plugin. The default exportfrom 'rxdb'
now exports only the RxDB core without plugins.The Dexie.js RxStorage is no longer in beta mode.
โ Added the in memory storage plugin.
โ Added
RxDocument().toMutableJSON()
โ Added
RxCollection().bulkUpsert()
โ Added optional
init()
function toRxPlugin
.dev-mode: Add check to ensure all top-level fields in a query are defined in the schema.
๐ Support for array field based indexes like
data.[].subfield
was removed, as it anyway never really worked.๐จ Refactored the usage of RxCollection.storageInstance to ensure all hooks run properly.
๐จ Refactored the encryption plugin so no more plugin specific code is in the RxDB core.
โ Removed the encrypted export from the json-import-export plugin. This was barely used and made everything more complex. All exports are no non-encrypted. If you need them encrypted, you can still run by encryption after the export is done.
๐ RxPlugin hooks now can be defined as running
before
orafter
other plugin hooks.Attachments are now internally handled as string instead of
Blob
orBuffer
๐ Fix (replication primitives) only drop pulled documents when a relevant document was changed locally.
๐ Fix dexie.js was not able to query over an index when
keyCompression: true
๐ Changes to
RxStorageInterface
:RxStorageInstance
must have theRxStorage
in thestorage
property.- The
_deleted
field is now required for each data interaction withRxStorage
. - โ Removed
RxStorageInstance.getChangedDocuments()
and addedRxStorageInstance.getChangedDocumentsSince()
for better performance. - โ Added
doesBroadcastChangestream()
toRxStorageStatics
- โ Added
withDeleted
parameter toRxStorageKeyObjectInstance.findLocalDocumentsById()
- โ Added internal
_meta
property to stored document data that contains internal document related data like last-write-time and replication checkpoints.
-
v11.6.0 Changes
February 04, 2022 -
v11.5.1 Changes
January 30, 2022๐ Bugfixes:
RxStorage.statics.getQueryMatcher()
must not match documents with_deleted: true
.- Fixed multiple problems with
RxCollection.findByIds$()
#3659 Thanks @Hideman85
-
v11.5.0 Changes
January 30, 2022๐ Features:
- Improve emitted errors of the GraphQL replication #3630 Thanks @nirvdrum
- Added Dexie.js based
RxStorage
. Read the docs
-
v11.4.0 Changes
January 28, 2022 -
v11.3.0 Changes
January 17, 2022 -
v11.2.0 Changes
January 12, 2022 -
v11.1.0 Changes
January 06, 2022๐ Features:
- Added
toTypedRxJsonSchema
andExtractDocumentTypeFromTypedRxJsonSchema
to generate the document types from the schema.
- Added
-
v11.0.0 Changes
January 03, 2022๐ฅ BREAKING:
- RxStorage: The non async functions
prepareQuery
,getSortComparator
andgetQueryMatcher
have been moved out ofRxStorageInstance
intoRxStorage
. This was needed to have better WebWorker support. This will not affect you do not use a customRxStorage
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 beJSON.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
andlength
of attachment data is now created by RxDB, not by the RxStorage. #3548- Added the statics
hashKey
property to identify the used hash function.
- Replaced all
- 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, usereceived
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
- RxStorage: The non async functions
-
v11.0.0-beta.X Changes
December 13, 2021๐ฅ BREAKING:
- RxStorage: The non async functions
prepareQuery
,getSortComparator
andgetQueryMatcher
have been moved out ofRxStorageInstance
intoRxStorage
. This was needed to have better WebWorker support. This will not affect you do not use a customRxStorage
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 beJSON.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
andlength
of attachment data is now created by RxDB, not by the RxStorage. #3548
- Replaced all
- 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, usereceived
instead. See #3392
๐ 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
Other:
- LokiJS: All documents are stored with a
$lastWriteAt
field, so we can implement an auto compaction later.
- RxStorage: The non async functions