UNPKG

sync-server

Version:

A simple server which can be used to synchronize data from Dexie.Syncable and an ISyncProtocol implementation and write them into files

46 lines (39 loc) 1.24 kB
'use strict'; function sendData(conn, data) { conn.sendText(JSON.stringify(data)); } /* * Inform other clients when we get a change from some client */ function reactToChanges(conn) { return function ({ succeeded, data }) { const type = { type: succeeded ? 'changes' : 'error' }; sendData(conn, Object.assign({}, data, type)); }; } function handleSubscribe(conn, socketHandler, request) { // 'subscribe' event with syncedRevision. Return 'changes' with server changes socketHandler .handleSubscribe(conn.id, request, reactToChanges(conn)); } function handleInitialization(conn, socketHandler, request) { socketHandler .handleInitialization(conn.id, request) .then(({ succeeded, data }) => { const type = { type: succeeded ? 'clientIdentity' : 'error' }; return sendData(conn, Object.assign({}, data, type)); }); } function handleClientChanges(conn, socketHandler, request) { socketHandler .handleClientChanges(conn.id, request) .then(({ succeeded, data }) => { const type = { type: succeeded ? 'ack' : 'error' }; return sendData(conn, Object.assign({}, data, type)); }); } module.exports = { handleInitialization, handleClientChanges, handleSubscribe, };