- Breaking change: Change
db.cmp()
to return aPromise
to deliver the result - Breaking change (minor): Ensure
Promise
rejections returnError
objects rather than strings - Breaking change (minor): Change bad keys error message
- Deprecated: on
schema.indexes
, in place of the indexkey
property,keyPath
should be used. - API fix: Disallow
map
on itself (only one will be used anyways); - API addition: Add Server aliases,
put
anddelete
. - API change: Allow
desc
,distinct
,filter
,keys
,map
,modify
onlimit
; - API change: Allow
limit
ondistinct
,desc
,keys
; - API change: Allow
{item:...}
withoutkey
for sake of unambiguity - API change: Allow
add
/update
items to be of any value includingundefined
ornull
- API change: Allow Mongoifying of
add
/update
/remove
keys - API change: Disallow key in
count()
if null; - Cross-browser support: Auto-wrap user-supplied
Server.error()
andServer.addEventListener('error', ...)
handlers withpreventDefault
so as to avoid hardConstraintError
aborts in Firefox. - Cross-browser support: add
preventDefault
in error listener so thatonupgradeneeded
errors will not become reported in Firefox (though it will occur regardless) - Cross-browser support (minor): wrap
delete
onblocked
event'snewVersion
(=null) withProxy
but avoid using usingProxy
if not present for sake of PhantomJS or older browsers (Firefox); could not wrapoldVersion
, however. - Fix: Ensure there is a promise rejection for a bad schema callback,
bad
IDBKeyRange
-related call, badcreateObjectStore
, bad index creation, bad function onmodify()
object, badmodify
result, badmap()
function, badfilter
, and badupdate()
. - Fix: Ensure
limit()
arguments are numeric - Fix: Actually implement documented chaining of (short) event handlers
- Fix: Allow empty string index in
Server.query()
. - Fix: Ensure the records from the
put
inupdate()
have akeyPath
property getter (as withadd()
) in case this was called without anadd()
- Fix: Avoid adding
keyPath
property toadd
/update
records if property is already present; - Fix: Provide refactoring for IndexedDBShim (issue #87).
- Validation: Tighter checking on argument to
modify
method (ensure is an object) and on index creation objects (issue #149) - Docs: Badges, CHANGES, clarify
add
,update
,delete
,filter
andmodify
methods,schema
property behavior, and querying with ranges. - Testing improvements: Travis/Karma/PhantomJS/Grunt (including allowing
override of Saucekey env var., overcoming PhantomJS issues with workers,
testing
versionchange
events in another window, testing bad args, testing array and nestedkeyPath
's and indexes, ensure Firefox is passing as well as Chrome)
- Enhancement: Add
addEventListener
,removeEventListener
andabort
/error
/versionchange
short equivalents; - Docs: Clarify README re: recovering from blocked events
- Testing improvements
- Fix: Address issue #144 by ensuring transaction error handlers are affixed before any transactional work
- Coding improvements
- Enhancement: Add
newVersion
andoldVersion
where not supported - Testing and coding improvements: Karma/Saucelabs/Grunt/PhantomJS, service workers
- Enhancement: Add blocked event handler to open() and delete() (with docs and tests) allowing additional "resume" promise property for user to easily resume promise chain (if blocking undone by closing old db connection)
- Cache server by version as well as name to allow upgrades of same name (and document);
- Enhancement: Support web workers/service workers and add tests
- Enhancement: Allow for consistent promise use (including for errors), deferring the error in the case of query preparation until execution
- Docs and coding improvements
- Testing improvements (Karma, Saucelabs, change to Mocha/Chai, unique test ids)