code: function Db(url, opts) {
    const INTERVAL = 10000,
      PARALLEL_LIMIT = 50;
  
    var couchOpts = { url: url },
      envProxy = req.proxy(url);
  
    if (envProxy) {
      couchOpts.request_defaults = { proxy: envProxy };
    }
  
    this.couch = (opts && opts.nano ? opts.nano : nano)(couchOpts);
    this.interval = (opts && opts.interval) ? opts.interval : INTERVAL;
    this.parallelLimit = (opts && opts.parallelLimit) ? opts.parallelLimit : PARALLEL_LIMIT;
  }
docs: class Db
  
  CouchDB errors are camouflaged as results to allow multiple operations to resume
  even though there is an error encountered on at least one of the operations
  (e.g. database delete should not cause an error regardless whether the database already exists or not).
  Non-CouchDB errors (e.g. connection error) will still be passed via standard callback error.
  
  @param {String} url: CouchDB instance URL in format http(s)://user:pass@host:port
  @param {Object} opts: optional
  - interval: delay between index progress checks, defaults to 10000 ms
  - parallelLimit: max number of tasks can be run parallel, defaults to 50
  - nano: for test purpose only, temporary until I find a way to mock required function module using Sinon.js, resort to dependency injection for now