News since v1.3.4
Features
- WriteableTable.bulkPut();
- WriteableTable.bulkDelete();
- New options in Dexie constructor: indexedDB and IDBKeyRange. Makes it possible to specify a backing indexedDB implementation.
- Support for WriteableTable.bulkAdd() for non-inbound primary keys (added second keys array argument)
- Collection.raw() - inactivates 'reading' hooks for the collection. (Needed internally).
- Collection.clone() - clone the collection to add additional filters without modifying existing collections.
- Collection.filter() - alias to Collection.and().
- Polyfilling 'versionchange' event on IE,Edge and Safari if happens in same window.
Optimization
- Enormous optimization of WriteableCollection.delete() #208. Before it could take 30 seconds to delete 100,000 items. Now it takes just 300 ms on chrome and 3s on IE/Edge. 9ad2018, d539d18,
Help Debugging
- Unless overriden, Dexie will now console.warn() by default for the following events:
- Promise.on('error') (unhandled promise rejection)
- db.on('blocked') (other db connection blocks us from upgrading or deleting db)
- db.on('versionchange') (other db connection wants to upgrade or delete db)
- db.transaction() will now fail if returning a non-Dexie promise. 1214974
Quality Assurance
- Rigorously unit testing CRUD hooks f9176fe
- eslint all Dexie modules.
- Continous integration using travis and browserstack
- In release script, unit tests run on various browsers. In this release, the following browsers were run:
- Edge 13 on Windows 10
- Firefox 45.0 on OS X El Capitan
- Chrome 49 on OS X Mountain Lion
Fixes
- Fixes in Error handling (DexieError and its sub classes) 21cdf2e, b417aa3, c48e2e6.
- In some situations, Promise.on('error') was signaled even when a promise was handled.
- IEDeleteObjectStoreBug still present on Windows Edge Browser #205
- Adding version to bower.json
- Bugs in CRUD hooks API:
- Bug in hooks handling of bulkAdd() found via tests and corrected (when using non-inbound keys)
- Bug in hooks handling of put() found via tests and corrected (when using non-inbound keys)
- Found bug in Table.add() when direct error is thrown, neither onerror or onsuccess called on the hook subscribers.
- 64c83f2
- 214f215
- If using and() on a collection that is executed with .keys(), .eachKey() or .eachUniqueKey(), the argument passed to and() was undefined.