all files / lib/replicate/ index.js

100% Statements 35/35
95% Branches 19/20
100% Functions 3/3
100% Lines 34/34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63                          2266× 2266× 271×   1995×         1027× 151× 151×   1027× 361×     1027×     1023× 1023× 1023× 1023×   1023× 1023× 1023× 1023× 1023× 1023×          
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _replicate = require('./replicate');
 
var _replicate2 = _interopRequireDefault(_replicate);
 
var _replication = require('./replication');
 
var _replication2 = _interopRequireDefault(_replication);
 
var _clone = require('../deps/clone');
 
var _clone2 = _interopRequireDefault(_clone);
 
var _errors = require('../deps/errors');
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
function toPouch(db, opts) {
  var PouchConstructor = opts.PouchConstructor;
  if (typeof db === 'string') {
    return new PouchConstructor(db, opts);
  } else {
    return db;
  }
}
 
function replicateWrapper(src, target, opts, callback) {
 
  if (typeof opts === 'function') {
    callback = opts;
    opts = {};
  }
  if (typeof opts === 'undefined') {
    opts = {};
  }
 
  if (opts.doc_ids && !Array.isArray(opts.doc_ids)) {
    throw (0, _errors.createError)(_errors.BAD_REQUEST, "`doc_ids` filter parameter is not a list.");
  }
 
  opts.complete = callback;
  opts = (0, _clone2.default)(opts);
  opts.continuous = opts.continuous || opts.live;
  opts.retry = 'retry' in opts ? opts.retry : false;
  /*jshint validthis:true */
  opts.PouchConstructor = opts.PouchConstructor || this;
  var replicateRet = new _replication2.default(opts);
  var srcPouch = toPouch(src, opts);
  var targetPouch = toPouch(target, opts);
  (0, _replicate2.default)(srcPouch, targetPouch, opts, replicateRet);
  return replicateRet;
}
 
exports.default = {
  replicate: replicateWrapper,
  toPouch: toPouch
};
module.exports = exports['default'];