Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including diffsync-couchdb with all npm packages installed. Try it out:

var diffsyncCouchdb = require("diffsync-couchdb")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

diffsync-couchdb v1.0.0

A CouchDB data adapter for diffsync


A CouchDB data adapter for diffsync


The CouchDB adapter needs a reference to a database object to write to. This database object is expected to have a cradle-like interface. For reading, it uses get(id, callback) and for writing it uses save(id, doc._rev, data, callback).

  var CouchDBDataAdapter = require('diffsync-couchdb'),
      cradle             = require('cradle'),
      diffsync           = require('diffsync'),

      couchDbAdapter, database, server;

  // set up your CouchDB driver (cradle or cradle-compatible)
  // (...)

  // create a database object
  database = (new cradle.Connection()).database(databaseName)

  // pass it on to the adapter
  couchDbAdapter = new CouchDBDataAdapter(database);

  // pass the adapter to diffsync
  server = new diffsync.Server(couchDbAdapter, socketIO);

This adapter assumes that while a document is being edited with diffsync, there is no other manipulating it. Which means, this adapter always overrides the latest version from your database with the latest version from diffsync.


For a more complete example, check out diffsync-todos.


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free