Skip to content

routier-collection


routier-collection / plugins/replication/src / HttpSwrDbPlugin

Class: HttpSwrDbPlugin ​

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:220

Implements ​

  • IDbPlugin

Constructors ​

Constructor ​

new HttpSwrDbPlugin(swrStore, options): HttpSwrDbPlugin

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:287

Parameters ​

swrStore ​

IDbPlugin

options ​

HttpSwrDbPluginOptions

Returns ​

HttpSwrDbPlugin

Accessors ​

databaseName ​

Get Signature ​

get databaseName(): string

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:283

The REMOTE's name. The swr store is a local cache of it, so two instances backed by one server are one database for subscription purposes — which is what makes their stores see each other's writes.

Returns ​

string

Implementation of ​

IDbPlugin.databaseName

Methods ​

syncNow() ​

syncNow(): Promise<SyncOutcome>

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:323

Flushes everything unsynced now, instead of waiting for the background timer.

The manual half of the sync story: a "Sync now" button, a flush before logout, or the whole mechanism when autoSync: false. Safe to call at any time and safe to call concurrently with the background loop — each change carries an idempotency key, so a server that tracks them applies a double-send once.

Returns ​

Promise<SyncOutcome>


pendingCount() ​

pendingCount(): Promise<number>

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:331

How many changes are waiting to reach the server. 0 means everything acked locally has also been confirmed remotely. Dead-lettered changes are not counted — see deadLetters().

Returns ​

Promise<number>


deadLetters() ​

deadLetters(): Promise<InferCompiledSchema<{ id: SchemaIdentity<string, "identity" | "key">; collectionName: SchemaString<string, never>; recordIds: SchemaString<string, never>; changeKind: SchemaOptional<string, "optional">; entityJson: SchemaString<string, never>; revision: SchemaOptional<string, "optional">; opId: SchemaOptional<string, "optional">; status: SchemaOptional<string, "optional">; attempts: SchemaOptional<number, "optional">; seq: SchemaOptional<number, "optional">; payloadJson: SchemaOptional<string, "optional">; }>[]>

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:340

Changes the queue has given up on, because the server rejected them in a way retrying cannot fix. These are also reported as they happen through onSyncDeadLetter; this is the "what is still broken" view for a screen the user can act on.

Returns ​

Promise<InferCompiledSchema<{ id: SchemaIdentity<string, "identity" | "key">; collectionName: SchemaString<string, never>; recordIds: SchemaString<string, never>; changeKind: SchemaOptional<string, "optional">; entityJson: SchemaString<string, never>; revision: SchemaOptional<string, "optional">; opId: SchemaOptional<string, "optional">; status: SchemaOptional<string, "optional">; attempts: SchemaOptional<number, "optional">; seq: SchemaOptional<number, "optional">; payloadJson: SchemaOptional<string, "optional">; }>[]>


retryDeadLetters() ​

retryDeadLetters(): Promise<{ revived: number; outcome: SyncOutcome; }>

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:350

Puts dead-lettered changes back in the queue and flushes. Returns how many were revived.

For after the reason they failed is gone — the record was corrected, a bad deploy was rolled back. Never automatic: the server already said this cannot work.

Returns ​

Promise<{ revived: number; outcome: SyncOutcome; }>


query() ​

query<TRoot, TShape>(event, done): void

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:361

Executes a query operation on the database.

Type Parameters ​

TRoot ​

TRoot extends object

TShape ​

TShape

Parameters ​

event ​

DbPluginQueryEvent<TRoot, TShape>

The query event containing schema, parent, and query operation.

done ​

PluginEventCallbackResult<ITranslatedValue<TShape>>

Callback with the result or error.

Returns ​

void

Implementation of ​

IDbPlugin.query


bulkPersist() ​

bulkPersist(event, done): void

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:391

Executes bulk operations (add, update, remove) on the database.

Parameters ​

event ​

DbPluginBulkPersistEvent

The bulk operations event containing schema, parent, and changes.

done ​

PluginEventCallbackPartialResult<BulkPersistResult>

Callback with the result or error.

Returns ​

void

Implementation of ​

IDbPlugin.bulkPersist


destroy() ​

destroy(event, done): void

Defined in: plugins/replication/src/HttpSwrDbPlugin.ts:402

Destroys or cleans up the plugin, closing connections or freeing resources.

Parameters ​

event ​

DbPluginEvent

done ​

PluginEventCallbackResult<never>

Callback with an optional error.

Returns ​

void

Implementation of ​

IDbPlugin.destroy

Released under the MIT License.