Skip to content

v28.0.0

Compare
Choose a tag to compare
@hoodiebot hoodiebot released this 09 Mar 09:37

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 directly

    The 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 for store.add, and once for store.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 becomes doc.hoodie.createdAt)

For hoodie.account:

  • account.ready has been removed. All APIs are now asynchronous, no setup is needed any longer

  • account.fetch() and account.profile.fetch() have been removed. Use account.get() and account.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 unless options.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

    1. User is signed out
    2. Only id and or session properties are requested
    3. options.local is set to true
  • account.hasInvalidSession() has been removed. Use account.get(session) instead (check of session.invalid)

  • account.isSignedIn() has been removed. Use account.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 becomes doc.hoodie.createdAt)

Unless you use the server.plugins.store.api.open(name) API you are not affected by any of this.

(ba5301f2)