Skip to content

mkatrenik/websql-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

websql-sync

sync local websql with remote endpoint

  • minimal
  • handles deletes (you must track them on server)

When you do any action on your table, websql-sync (wss) stores event about this, then after calling sync, this events are send to server, where they are replayed on DB, then server returns all rows which were updated since last sync. All updated/inserted/deleted items in local websql are thrown away and replaced with data from server.

var sync = websqlSync({
  db: openDatabase('test', '0.1', 'Test DB', 5*1024*1024),
  tableName: 'todos',
  url: '/api/todos',
  id: 'uuid' //custom id field name
});

then you need to init db tables and triggers used by websql-sync

// init this modules tables (_events, _lastSync)
sync.init(function(){ 
  // create your db table which you want to sync
  websqlSync.orm.query('CREATE TABLE IF NOT EXISTS todos ' +
    '(id TEXT PRIMARY KEY, value TEXT)', null, function(err, res){
    // init modules triggers
    sync.initTriggers(function(){});
  });
});

and finally sync with remote endpoint

sync.sync(function(err, res, tx){});

example request payload

{"upserts":[{"id":"1","value":"bla"}],"deletes":[{"id":"2"}],"since":10}

and response

{"upserts":[{"value": "foo", "id": 3},{"value": "beep", "id": 4}],"deletes": [{"id":5}],"serverTime": 13}

About

sync local websql with remote endpoint

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published