Skip to content

cozy-pouch-link / PouchLink

Class: 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.

Hierarchy

  • default

    PouchLink

Constructors

constructor

new PouchLink(opts)

constructor - Initializes a new PouchLink

Parameters

Name Type
opts PouchLinkOptions

Overrides

CozyLink.constructor

Defined in

CozyPouchLink.js:87

Properties

client

client: any

Defined in

CozyPouchLink.js:163


doctypes

doctypes: string[]

Defined in

CozyPouchLink.js:105


doctypesReplicationOptions

doctypesReplicationOptions: Record<string, any>

Defined in

CozyPouchLink.js:106


indexes

indexes: Object

Defined in

CozyPouchLink.js:107


initialSync

initialSync: boolean

Defined in

CozyPouchLink.js:111


options

options: { replicationInterval: number } & PouchLinkOptions

Defined in

CozyPouchLink.js:99


performanceApi

performanceApi: any

Defined in

CozyPouchLink.js:128


periodicSync

periodicSync: boolean

Defined in

CozyPouchLink.js:112


pouches

pouches: any

Defined in

CozyPouchLink.js:238


queryEngine

queryEngine: DatabaseQueryEngine | typeof default

Defined in

CozyPouchLink.js:236


replicationStatus

replicationStatus: Record<string, ReplicationStatus>

Defined in

CozyPouchLink.js:115


storage

storage: PouchLocalStorage

Defined in

CozyPouchLink.js:108

Methods

addReferencesTo

addReferencesTo(mutation): Promise<void>

Parameters

Name Type
mutation any

Returns

Promise<void>

Defined in

CozyPouchLink.js:745


bulkMutation

bulkMutation(mutation): Promise<any[]>

Parameters

Name Type
mutation any

Returns

Promise<any[]>

Defined in

CozyPouchLink.js:731


createDocument

createDocument(mutation): Promise<any>

Parameters

Name Type
mutation any

Returns

Promise<any>

Defined in

CozyPouchLink.js:694


createDocuments

createDocuments(mutation): Promise<any[]>

Parameters

Name Type
mutation any

Returns

Promise<any[]>

Defined in

CozyPouchLink.js:699


dbMethod

dbMethod(method, mutation): Promise<any>

Parameters

Name Type
method any
mutation any

Returns

Promise<any>

Defined in

CozyPouchLink.js:749


deleteDocument

deleteDocument(mutation): Promise<any>

Parameters

Name Type
mutation any

Returns

Promise<any>

Defined in

CozyPouchLink.js:712


deleteDocuments

deleteDocuments(mutation): Promise<any[]>

Parameters

Name Type
mutation any

Returns

Promise<any[]>

Defined in

CozyPouchLink.js:723


executeMutation

executeMutation(mutation, options, result, forward): Promise<any>

Parameters

Name Type
mutation any
options any
result any
forward any

Returns

Promise<any>

Defined in

CozyPouchLink.js:650


executeQuery

executeQuery(__namedParameters): Promise<any>

Parameters

Name Type
__namedParameters Object

Returns

Promise<any>

Defined in

CozyPouchLink.js:598


getChanges

getChanges(doctype, options): Promise<PouchDBChangesResults>

Get PouchDB changes See https://pouchdb.com/api.html#changes

Parameters

Name Type Description
doctype string The PouchDB database’s doctype
options any The changes options. See https://pouchdb.com/api.html#changes

Returns

Promise<PouchDBChangesResults>

The changes

Defined in

CozyPouchLink.js:503


getDbInfo

getDbInfo(doctype): Promise<PouchDBInfo>

Get PouchDB database info See https://pouchdb.com/api.html#database_information

Parameters

Name Type Description
doctype string The PouchDB database’s doctype

Returns

Promise<PouchDBInfo>

The db info

Defined in

CozyPouchLink.js:518


getPouch

getPouch(doctype): any

Parameters

Name Type
doctype any

Returns

any

Defined in

CozyPouchLink.js:416


getQueryEngineFromDoctype

getQueryEngineFromDoctype(doctype): any

Parameters

Name Type
doctype any

Returns

any

Defined in

CozyPouchLink.js:408


getReplicationURL

getReplicationURL(doctype): string

Parameters

Name Type
doctype any

Returns

string

Defined in

CozyPouchLink.js:143


getSyncInfo

getSyncInfo(doctype): any

Parameters

Name Type
doctype any

Returns

any

Defined in

CozyPouchLink.js:404


handleDoctypeSyncEnd

handleDoctypeSyncEnd(doctype): void

Parameters

Name Type
doctype any

Returns

void

Defined in

CozyPouchLink.js:306


handleDoctypeSyncStart

handleDoctypeSyncStart(doctype): void

Parameters

Name Type
doctype any

Returns

void

Defined in

CozyPouchLink.js:301


handleOnSync

handleOnSync(doctypeUpdates): void

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.

Emits an event (pouchlink:sync:end) when the sync (all doctypes) is done

Parameters

Name Type
doctypeUpdates any

Returns

void

Defined in

CozyPouchLink.js:279


hasIndex

hasIndex(name): boolean

Parameters

Name Type
name any

Returns

boolean

Defined in

CozyPouchLink.js:594


migrateAdapter

migrateAdapter(params): Promise<void>

Migrate the current adapter

property {string} [fromAdapter] - The current adapter type, e.g. ‘idb’

property {string} [toAdapter] - The new adapter type, e.g. ‘indexeddb’

property {string} [url] - The Cozy URL

property {Array} [plugins] - The PouchDB plugins

Parameters

Name Type Description
params MigrationParams Migration params

Returns

Promise<void>

Defined in

CozyPouchLink.js:177


needsToWaitWarmup

needsToWaitWarmup(doctype): Promise<boolean>

Check if there is warmup queries for this doctype and return if those queries are already warmed up or not

Parameters

Name Type Description
doctype string Doctype to check

Returns

Promise<boolean>

the need to wait for the warmup

Defined in

CozyPouchLink.js:580


onLogin

onLogin(): Promise<void>

Returns

Promise<void>

Defined in

CozyPouchLink.js:196


onSyncError

onSyncError(error): Promise<void>

Parameters

Name Type
error any

Returns

Promise<void>

Defined in

CozyPouchLink.js:384


persistCozyData

persistCozyData(doc, forward?): Promise<any>

We persist in the local Pouch database all the documents that do not exist on the remote Couch database.

Those documents are computed by the cozy-stack then are sent to the client using JSON-API format

Parameters

Name Type Default value
doc any undefined
forward (operation: any, result: any) => void doNothing

Returns

Promise<any>

Overrides

CozyLink.persistCozyData

Defined in

CozyPouchLink.js:533


registerClient

registerClient(client): Promise<void>

Parameters

Name Type
client any

Returns

Promise<void>

Defined in

CozyPouchLink.js:162


request

request(operation, options, result?, forward?): Promise<any>

Parameters

Name Type Default value
operation any undefined
options any undefined
result any null
forward (operation: any, result: any) => void doNothing

Returns

Promise<any>

Overrides

CozyLink.request

Defined in

CozyPouchLink.js:443


reset

reset(): Promise<void>

Returns

Promise<void>

Overrides

CozyLink.reset

Defined in

CozyPouchLink.js:263


startReplication

startReplication(options?): void

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

Emits pouchlink:sync:start event when the replication begins

Parameters

Name Type Description
options Object The options
options.waitForReplications boolean -

Returns

void

Defined in

CozyPouchLink.js:340


startReplicationWithDebounce

startReplicationWithDebounce(options?): void

Debounced version of startReplication() method

Debounce delay can be configured through constructor’s syncDebounceDelayInMs option

Parameters

Name Type Description
options Object The options
options.waitForReplications boolean -

Returns

void

Defined in

CozyPouchLink.js:357


stopReplication

stopReplication(): void

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

Emits pouchlink:sync:stop event

Returns

void

Defined in

CozyPouchLink.js:376


supportsOperation

supportsOperation(operation): boolean

Parameters

Name Type
operation any

Returns

boolean

Defined in

CozyPouchLink.js:424


syncImmediately

syncImmediately(): Promise<void>

Returns

Promise<void>

Defined in

CozyPouchLink.js:779


updateDocument

updateDocument(mutation): Promise<any>

Parameters

Name Type
mutation any

Returns

Promise<any>

Defined in

CozyPouchLink.js:703


updateDocuments

updateDocuments(mutation): Promise<any[]>

Parameters

Name Type
mutation any

Returns

Promise<any[]>

Defined in

CozyPouchLink.js:708


getPouchAdapterName

Static getPouchAdapterName(localStorage): Promise<string>

Return the PouchDB adapter name. Should be IndexedDB for newest adapters.

Parameters

Name Type Description
localStorage LocalStorage Methods to access local storage

Returns

Promise<string>

The adapter name

Defined in

CozyPouchLink.js:138