src/indexeddb.js
function (cb) {
    return new Promise((resolve/*, reject*/) => {

      let transaction = this.db.transaction(['nodes'], 'readonly');
      let cursorReq = transaction.objectStore('nodes').openCursor();

      cursorReq.onsuccess = (evt) => {
        let cursor = evt.target.result;

        if (cursor) {
          cb(this.migrate(cursor.value));
          cursor.continue();
        } else {
          resolve();
        }
      };
    });
  }
function (cb) {
    return new Promise((resolve/*, reject*/) => {

      let transaction = this.db.transaction(['nodes'], 'readonly');
      let cursorReq = transaction.objectStore('nodes').openCursor();

      cursorReq.onsuccess = (evt) => {
        let cursor = evt.target.result;

        if (cursor) {
          cb(this.migrate(cursor.value));
          cursor.continue();
        } else {
          resolve();
        }
      };
    });
  }
TODO: Document