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

69 lines (60 loc) 1.37 kB
'use strict'; const NeDBDataStore = require('nedb'); class Table { constructor(name, dbOptions) { const filename = `${name}.table`; const options = { filename, autoload: true, }; this.store = new NeDBDataStore(Object.assign({}, options, dbOptions)); } _addID(key, obj) { return Object.assign({}, obj, { _id: key }); } add(key, changeObject) { return new Promise((resolve, reject) => { this.store.insert(this._addID(key, changeObject), (err) => { if (err) { reject(err); } else { resolve(); } }); }); } get(key) { return new Promise((resolve, reject) => { this.store.findOne({ _id: key }, { _id: 0 }, (err, res) => { if (err) { reject(err); } else { resolve(res); } }); }); } update(key, changeObject) { return new Promise((resolve, reject) => { this.store.update({ _id: key }, changeObject, {}, (err) => { if (err) { reject(err); } else { resolve(); } }); }); } remove(key) { return new Promise((resolve, reject) => { this.store.remove({ _id: key }, {}, (err) => { if (err) { reject(err); } else { resolve(); } }); }); } } module.exports = Table;