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
Properties¶
client¶
• client: any
Defined in
doctypes¶
• doctypes: string[]
Defined in
doctypesReplicationOptions¶
• doctypesReplicationOptions: Record<string, any>
Defined in
indexes¶
• indexes: Object
Defined in
initialSync¶
• initialSync: boolean
Defined in
options¶
• options: { replicationInterval: number } & PouchLinkOptions
Defined in
performanceApi¶
• performanceApi: any
Defined in
periodicSync¶
• periodicSync: boolean
Defined in
pouches¶
• pouches: any
Defined in
queryEngine¶
• queryEngine: DatabaseQueryEngine | typeof default
Defined in
replicationStatus¶
• replicationStatus: Record<string, ReplicationStatus>
Defined in
storage¶
• storage: PouchLocalStorage
Defined in
Accessors¶
name¶
• get name(): string
Returns
string
Overrides
CozyLink.name
Defined in
Methods¶
addDoctype¶
▸ addDoctype(doctype, replicationOptions, options): Promise<void>
Adds a new doctype to the list of managed doctypes, sets its replication options, adds it to the pouches, and starts replication. Does nothing when the doctype is already managed, so the list stays free of duplicates.
Parameters
| Name | Type | Description |
|---|---|---|
doctype |
string |
The name of the doctype to add. |
replicationOptions |
any |
The replication options for the doctype. |
options |
Object |
The replication options for the doctype. |
options.shouldStartReplication |
boolean |
- |
Returns
Promise<void>
Defined in
addReferencesTo¶
▸ addReferencesTo(mutation): Promise<void>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<void>
Defined in
bulkMutation¶
▸ bulkMutation(mutation): Promise<any[]>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any[]>
Defined in
createDocument¶
▸ createDocument(mutation): Promise<any>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any>
Defined in
createDocuments¶
▸ createDocuments(mutation): Promise<any[]>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any[]>
Defined in
dbMethod¶
▸ dbMethod(method, mutation): Promise<any>
Parameters
| Name | Type |
|---|---|
method |
any |
mutation |
any |
Returns
Promise<any>
Defined in
deleteDocument¶
▸ deleteDocument(mutation): Promise<any>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any>
Defined in
deleteDocuments¶
▸ deleteDocuments(mutation): Promise<any[]>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any[]>
Defined in
executeMutation¶
▸ executeMutation(mutation, options, result, forward): Promise<any>
Parameters
| Name | Type |
|---|---|
mutation |
any |
options |
any |
result |
any |
forward |
any |
Returns
Promise<any>
Defined in
executeQuery¶
▸ executeQuery(operation, options): Promise<any>
Parameters
| Name | Type | Description |
|---|---|---|
operation |
any |
The query operation |
options |
any |
- |
Returns
Promise<any>
Defined in
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
getDbDoctype¶
▸ getDbDoctype(logicalDoctype, options): any
Returns the registered physical doctype for a given logical doctype and query options.
Parameters
| Name | Type | Description |
|---|---|---|
logicalDoctype |
any |
The logical doctype |
options |
any |
- |
Returns
any
Defined in
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
getPouch¶
▸ getPouch(doctype): any
Parameters
| Name | Type |
|---|---|
doctype |
any |
Returns
any
Defined in
getQueryEngineFromDoctype¶
▸ getQueryEngineFromDoctype(doctype, options): any
Parameters
| Name | Type | Description |
|---|---|---|
doctype |
any |
The doctype |
options |
any |
- |
Returns
any
Defined in
getReplicationURL¶
▸ getReplicationURL(doctype, replicationOptions): string
Get the authenticated replication URL for a specific doctype
Parameters
| Name | Type | Description |
|---|---|---|
doctype |
string |
The document type to replicate (e.g., ‘io.cozy.files’) |
replicationOptions |
Object |
- |
replicationOptions.driveId |
string |
- |
Returns
string
The authenticated replication URL
Defined in
getSharedDriveDoctypes¶
▸ getSharedDriveDoctypes(): string[]
Returns
string[]
Defined in
getSyncInfo¶
▸ getSyncInfo(doctype): any
Parameters
| Name | Type |
|---|---|
doctype |
any |
Returns
any
Defined in
handleDoctypeSyncEnd¶
▸ handleDoctypeSyncEnd(doctype): void
Parameters
| Name | Type |
|---|---|
doctype |
any |
Returns
void
Defined in
handleDoctypeSyncStart¶
▸ handleDoctypeSyncStart(doctype): void
Parameters
| Name | Type |
|---|---|
doctype |
any |
Returns
void
Defined in
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
hasIndex¶
▸ hasIndex(name): boolean
Parameters
| Name | Type |
|---|---|
name |
any |
Returns
boolean
Defined in
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
Parameters
| Name | Type | Description |
|---|---|---|
params |
MigrationParams |
Migration params |
Returns
Promise<void>
Defined in
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
onLogin¶
▸ onLogin(): Promise<void>
Returns
Promise<void>
Defined in
onSyncError¶
▸ onSyncError(error): Promise<void>
Parameters
| Name | Type |
|---|---|
error |
any |
Returns
Promise<void>
Defined in
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
registerClient¶
▸ registerClient(client): Promise<void>
Parameters
| Name | Type |
|---|---|
client |
any |
Returns
Promise<void>
Defined in
removeDoctype¶
▸ removeDoctype(doctype): Promise<void>
Removes a doctype from the list of managed doctypes, deletes its replication options, and removes it from the pouches.
Parameters
| Name | Type | Description |
|---|---|---|
doctype |
string |
The name of the doctype to remove. |
Returns
Promise<void>
Defined in
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
reset¶
▸ reset(): Promise<void>
Returns
Promise<void>
Overrides
CozyLink.reset
Defined in
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
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
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
supportsOperation¶
▸ supportsOperation(operation, options): boolean
Parameters
| Name | Type |
|---|---|
operation |
any |
options |
any |
Returns
boolean
Defined in
syncImmediately¶
▸ syncImmediately(): Promise<void>
Returns
Promise<void>
Defined in
updateDocument¶
▸ updateDocument(mutation): Promise<any>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any>
Defined in
updateDocuments¶
▸ updateDocuments(mutation): Promise<any[]>
Parameters
| Name | Type |
|---|---|
mutation |
any |
Returns
Promise<any[]>
Defined in
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