pouchdb-hoodie-sync
v2.1.1
Published
Hoodie-like sync API for PouchDB
Downloads
39
Readme
pouchdb-hoodie-sync
Hoodie-like sync API for PouchDB
This PouchDB plugin provides simple methods to keep two databases in sync.
Usage
// Initialisation
var db = new PouchDB('dbname')
var api = db.hoodieSync({
// remote can be
// - local db name
// - remote URL
// - PouchDB instance
// - a promise that resolves to one of the 3 above
remote: 'http://example.com/mydb',
// pass own EventEmitter instance if you want,
// otherwise creates its own
emitter: emitter
})
// starts / stops continuous replication
api.connect()
api.disconnect()
api.isConnected()
// resolve with pulled docs[]
api.pull()
api.pull([doc1, id2])
// resolve with pushed docs[]
api.push()
api.push([doc1, id2])
// resolve with synced docs[]
api.sync()
api.sync([doc1, id2])
// events
api.on('pull', function(doc) {})
api.on('push', function(doc) {})
api.on('connect', function() {})
api.on('disconnect', function() {})
If you need to customise the request to the server, e.g. set custom header for
authorisation, you can use PouchDB.defaults{ajax}
:
var MyPouch = PouchDB.defaults({
ajax: {
headers: {
authorization: 'Basic QWxhZGRpbjpPcGVuU2VzYW1l'
}
}
})
In the browser
<script src="pouchdb.js"></script>
<script src="pouchdb-hoodie-sync.js"></script>
In node.js
var PouchDB = require('pouchdb')
PouchDB.plugin( require('pouchdb-hoodie-sync') )
Testing
In Node.js
Run all tests and validates JavaScript Code Style using standard
npm test
To run only the tests
npm run test:node
Run tests from single file
node test/unit/connect-test.js
Contributing
Have a look at the Hoodie project's contribution guidelines. If you want to hang out you can join #hoodie-pouch on our Hoodie Community Slack.