Classes

PouchLink

Link to be passed to a CozyClient instance to support CouchDB. It instantiates PouchDB collections for each doctype that it supports and knows how to respond to queries and mutations.

Loop

Utility to call a function (task) periodically and on demand immediately.

Public API

  • start
  • stop
  • scheduleImmediateTask
  • waitForCurrentTask
PouchManager

Handles the lifecycle of several pouches

  • Creates/Destroys the pouches
  • Replicates periodically

Link to be passed to a CozyClient instance to support CouchDB. It instantiates PouchDB collections for each doctype that it supports and knows how to respond to queries and mutations.

Kind: global class

pouchLink.handleOnSync()

Receives PouchDB updates (documents grouped by doctype). Normalizes the data (.id -> ._id, .rev -> _rev). Passes the data to the client and to the onSync handler.

Kind: instance method of PouchLink

pouchLink.startReplication() ⇒ void

User of the link can call this to start ongoing replications. Typically, it can be used when the application regains focus.

Kind: instance method of PouchLink
Access: public

pouchLink.stopReplication() ⇒ void

User of the link can call this to stop ongoing replications. Typically, it can be used when the applications loses focus.

Kind: instance method of PouchLink
Access: public

Loop

Utility to call a function (task) periodically and on demand immediately.

Public API

Kind: global class

loop.start()

Starts the loop. Will run the task periodically each this.delay ms. Ignores multiple starts.

Kind: instance method of Loop

loop.stop()

Stops the loop, clears immediate tasks. Cancels current task if possible

Kind: instance method of Loop

loop.runImmediateTasks()

Flushes the immediate tasks list and calls each task. Each task is awaited before the next is started.

Kind: instance method of Loop

loop.scheduleImmediateTask(task)

Schedules a task to be run immediately at next round. Ignored if loop is not started. If not task is passed, the default task from the loop is used.

Kind: instance method of Loop

Param Type Default Description
task function Optional custom function to be run immediately

loop.runTask()

Calls and saves current task. Stops loop in case of error of the task.

Kind: instance method of Loop

loop.round()

Runs immediate tasks and then schedule the next round. Immediate tasks are called sequentially without delay There is a delay between immediate tasks and normal periodic tasks.

Kind: instance method of Loop

PouchManager

Handles the lifecycle of several pouches

Kind: global class

pouchManager.ensureDatabasesExist()

Via a call to info() we ensure the database exist on the remote side. This is done only once since after the first call, we are sure that the databases have been created.

Kind: instance method of PouchManager

pouchManager.startReplicationLoop()

Starts periodic syncing of the pouches

Kind: instance method of PouchManager

pouchManager.stopReplicationLoop()

Stop periodic syncing of the pouches

Kind: instance method of PouchManager

pouchManager.syncImmediately()

If a replication is currently ongoing, will start a replication just after it has finished. Otherwise it will start a replication immediately

Kind: instance method of PouchManager

pouchManager.replicateOnce()

Starts replication

Kind: instance method of PouchManager