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

40 lines (32 loc) 1.25 kB
'use strict'; const fs = require('fs'); const path = require('path'); const initializeLogger = require('../log_handlers'); const startServer = require('../server/server'); const initSyncHandler = require('../sync/init_handlers'); const DB = require('../db_connectors/NeDB/db'); module.exports = function (dataPath) { const settings = JSON.parse(fs.readFileSync(path.join(dataPath, 'config.json'), { encoding: 'utf8' })); const logger = initializeLogger(dataPath, settings.logging); process.on('uncaughtException', (err) => { logger.file.error('uncaughtException:', err.name, err.message, err.stack); logger.console.error('uncaughtException:', err.name, err.message); process.exit(1); }); process.on('unhandledRejection', (reason, p) => { logger.file.error('unhandledRejection:', reason, p); logger.console.error('unhandledRejection:', reason); process.exit(1); }); const db = new DB(Object.assign({}, settings.db.opts, { dataPath }), logger); db.init() .then(() => initSyncHandler(db, logger, settings.sync)) .then((handlers) => { startServer({ syncHandler: handlers, logger, settings: settings.server, dataPath, }); }); };