v28.0.0
28.0.0 (2017-03-09)
Breaking Changes
Client
For hoodie.store
:
-
Before, change events (incl. add, update, remove) have only been triggered when using the custom APIs like
.add()
or.update()
. Now they get always triggered, including for changes replicated into the database. hoodiehq/pouchdb-hoodie-api@1958c42 -
the order of when the methods’ promises resolve and the events get triggered cannot be guaranteed as we rely on PouchDB’s .changes(). We would love to enforce promises to resolve after changes get emitted, but the required complexity to do that is not worth it.
-
separate methods like
require(pouchdb-hoodie-api/add)
can no longer be required directlyThe reason for that is that all the methods now also accept a
prefix
argument which by default is null. That way we don’t need to implement each method twice, once forstore.add
, and once forstore.withIdPrefix(test/).add
-
We no longer map PouchDB’s
._id
property to.id
, instead we pass trough docs from PouchDB 1:1. Also the timestamps are now all namespaced with.hoodie
(doc.createdAt
becomesdoc.hoodie.createdAt
)
For hoodie.account
:
-
account.ready
has been removed. All APIs are now asynchronous, no setup is needed any longer -
account.fetch()
andaccount.profile.fetch()
have been removed. Useaccount.get()
andaccount.profile.get()
instead -
account.profile.get()
returns a promise now. It also sends a request to the server requesting the current user’s profile properties unlessoptions.local
is set to true -
account.get()
returns a promise now. It also sends a request to the server requested the current user’s account properties unless one of the following conditions is true- User is signed out
- Only
id
and orsession
properties are requested options.local
is set to true
-
account.hasInvalidSession()
has been removed. Useaccount.get(session)
instead (check ofsession.invalid
) -
account.isSignedIn()
has been removed. Useaccount.get(session)
instead.
Server
The store instance which server.plugins.store.api.open(dbName)
resolves to
has several breaking changes via pouchdb-hoodie-api@2.0.0
-
Before, change events (incl. add, update, remove) have only been triggered
when using the custom APIs like.add()
or.update()
. Now they get always
triggered, including for changes replicated into the database. -
the order of when the methods’ promises resolve and the events get triggered
cannot be guaranteed as we rely on PouchDB’s.changes()
. We would love to
enforce promises to resolve after changes get emitted, but the required
complexity to do that is not worth it. -
We no longer map PouchDB’s ._id property to .id, instead we pass trough docs
from PouchDB 1:1. Also the timestamps are now all namespaced with
.hoodie
(doc.createdAt
becomesdoc.hoodie.createdAt
)
Unless you use the server.plugins.store.api.open(name)
API you are not affected by any of this.
(ba5301f2)