rest-delta-sync
v0.0.14
Published
Utility to synchronise the results of a REST get call with local storage.
Downloads
6
Readme
rest-delta-sync
Utility to synchronise the results of a REST get call with local storage. Uses a last modified flag to ensure only changes are synchronised. Uses pagination to keep package sizes down.
Each instance will synchronise one URL with a name-spaced local store
Installation
npm install rest-delta-sync
Usage:
let store = new DeltaSync(url: string, options)
options:
- storeProvider: must support getItem / setItem / removeItem - if nothing is provided local storgage is used.
- dbName: unique identifier for the type of data (analagous to a table name in SQL)
- batch size: how many records to pull down from the server per request
- frequency: how often should the db be synced with the server (in seconds)
Methods:
- start: - begins syncing immediately
- stop: - stops syncing after any current sync operation has completed
Properties:
- isInitalised: - an initial run of the sync has taken place (i.e. if data is empty it is because the source is empty)
- isRunning: - an active sync is taking place
Events:
- dataChangesInserts: - array of ids that have been added since last sync
- dataChangesUpdates: - array of ids that have been modified since last sync
- dataChangesDeletion: - arry of ids that have been removed since last sync
Data description:
Every record is expected to have the following server provided attributes
- id: string - is used to uniquely identify the record in the store.
- lastModified: string - date-time in ISO format when the record was last updated on the server.
- isDeleted: boolean - flag - which is the soft deletion flag on the server.