code: function Queue(options) {
    var self = this;
  
    typeforce({
      path: 'String',
      process: 'Function',
      throttle: 'Number',
      leveldown: 'Function'
    }, options);
  
    EventEmitter.call(this);
  
    this._options = extend(true, {}, options);
    this._process = options.process;
    this._throttle = options.throttle;
    this._strikes = ('strikes' in options) ? options.strikes : false;
    this._blockOnFail = options.blockOnFail;
  
    this._q = [];
    this._db = levelQuery(levelup(options.path, {
      db: options.leveldown,
      valueEncoding: 'json'
    }));
  
    this._db.query.use(jsonQueryEngine());
  
    indices.forEach(function(i) {
      self._db.ensureIndex(i);
    });
  
    this._deleting = {};
    promisifyDB(this._db);
    promisifyDB(this._db, 'query', { type: 'readable' })
  
    this._setupCount();
    this._load()
      .then(function() {
        if (options.autostart) self.start();
      });
  }
docs: var TASK_STATES = ['pending', 'running', 'success', 'fail', 'struckout']; TODO: make these an option to Queue constructor