Bug 1291834 - make devtools/shared/async-storage.js eslint-clean; r?jryans draft
authorTom Tromey <tom@tromey.com>
Wed, 03 Aug 2016 13:21:11 -0600
changeset 397845 ea110ea4afcbfcbe8a92b5e2061e3889e5c210c2
parent 397844 1a72f2737bce150bd90c831341cc7b5a93fc2aa9
child 397846 027361ecf348cbc0c360f042d224e77f6ed52c85
push id25420
push userbmo:ttromey@mozilla.com
push dateMon, 08 Aug 2016 14:27:30 +0000
reviewersjryans
bugs1291834
milestone51.0a1
Bug 1291834 - make devtools/shared/async-storage.js eslint-clean; r?jryans MozReview-Commit-ID: LswJRCUrejy
.eslintignore
devtools/shared/async-storage.js
--- a/.eslintignore
+++ b/.eslintignore
@@ -117,16 +117,17 @@ devtools/server/actors/**
 !devtools/server/actors/webbrowser.js
 !devtools/server/actors/webextension.js
 !devtools/server/actors/styles.js
 !devtools/server/actors/string.js
 !devtools/server/actors/csscoverage.js
 devtools/server/performance/**
 devtools/server/tests/**
 devtools/shared/*.js
+!devtools/shared/async-storage.js
 !devtools/shared/async-utils.js
 !devtools/shared/css-lexer.js
 !devtools/shared/defer.js
 !devtools/shared/event-emitter.js
 !devtools/shared/indentation.js
 !devtools/shared/loader-plugin-raw.jsm
 !devtools/shared/task.js
 devtools/shared/*.jsm
--- a/devtools/shared/async-storage.js
+++ b/devtools/shared/async-storage.js
@@ -34,160 +34,156 @@
  * The asynchronous nature of getItem() makes it tricky to retrieve multiple
  * values. But unlike localStorage, asyncStorage does not require the values you
  * store to be strings.  So if you need to save multiple values and want to
  * retrieve them together, in a single asynchronous operation, just group the
  * values into a single object. The properties of this object may not include
  * DOM elements, but they may include things like Blobs and typed arrays.
  *
  */
-const {Cc, Ci, Cu, Cr} = require("chrome");
+
+"use strict";
+
 const {indexedDB} = require("sdk/indexed-db");
 const Promise = require("promise");
 
-module.exports = (function () {
-  "use strict";
+const DBNAME = "devtools-async-storage";
+const DBVERSION = 1;
+const STORENAME = "keyvaluepairs";
+var db = null;
 
-  var DBNAME = "devtools-async-storage";
-  var DBVERSION = 1;
-  var STORENAME = "keyvaluepairs";
-  var db = null;
-
-  function withStore(type, onsuccess, onerror) {
-    if (db) {
-      var transaction = db.transaction(STORENAME, type);
-      var store = transaction.objectStore(STORENAME);
+function withStore(type, onsuccess, onerror) {
+  if (db) {
+    let transaction = db.transaction(STORENAME, type);
+    let store = transaction.objectStore(STORENAME);
+    onsuccess(store);
+  } else {
+    let openreq = indexedDB.open(DBNAME, DBVERSION);
+    openreq.onerror = function withStoreOnError() {
+      onerror();
+    };
+    openreq.onupgradeneeded = function withStoreOnUpgradeNeeded() {
+      // First time setup: create an empty object store
+      openreq.result.createObjectStore(STORENAME);
+    };
+    openreq.onsuccess = function withStoreOnSuccess() {
+      db = openreq.result;
+      let transaction = db.transaction(STORENAME, type);
+      let store = transaction.objectStore(STORENAME);
       onsuccess(store);
-    } else {
-      var openreq = indexedDB.open(DBNAME, DBVERSION);
-      openreq.onerror = function withStoreOnError() {
-        onerror();
-      };
-      openreq.onupgradeneeded = function withStoreOnUpgradeNeeded() {
-        // First time setup: create an empty object store
-        openreq.result.createObjectStore(STORENAME);
-      };
-      openreq.onsuccess = function withStoreOnSuccess() {
-        db = openreq.result;
-        var transaction = db.transaction(STORENAME, type);
-        var store = transaction.objectStore(STORENAME);
-        onsuccess(store);
-      };
-    }
+    };
   }
+}
 
-  function getItem(key) {
-    return new Promise((resolve, reject) => {
-      var req;
-      withStore("readonly", (store) => {
-        store.transaction.oncomplete = function onComplete() {
-          var value = req.result;
-          if (value === undefined) {
-            value = null;
-          }
-          resolve(value);
-        };
-        req = store.get(key);
-        req.onerror = function getItemOnError() {
-          reject("Error in asyncStorage.getItem(): ", req.error.name);
-        };
-      }, reject);
-    });
-  }
+function getItem(itemKey) {
+  return new Promise((resolve, reject) => {
+    let req;
+    withStore("readonly", (store) => {
+      store.transaction.oncomplete = function onComplete() {
+        let value = req.result;
+        if (value === undefined) {
+          value = null;
+        }
+        resolve(value);
+      };
+      req = store.get(itemKey);
+      req.onerror = function getItemOnError() {
+        reject("Error in asyncStorage.getItem(): ", req.error.name);
+      };
+    }, reject);
+  });
+}
 
-  function setItem(key, value) {
-    return new Promise((resolve, reject) => {
-      withStore("readwrite", (store) => {
-        store.transaction.oncomplete = resolve;
-        var req = store.put(value, key);
-        req.onerror = function setItemOnError() {
-          reject("Error in asyncStorage.setItem(): ", req.error.name);
-        };
-      }, reject);
-    });
-  }
+function setItem(itemKey, value) {
+  return new Promise((resolve, reject) => {
+    withStore("readwrite", (store) => {
+      store.transaction.oncomplete = resolve;
+      let req = store.put(value, itemKey);
+      req.onerror = function setItemOnError() {
+        reject("Error in asyncStorage.setItem(): ", req.error.name);
+      };
+    }, reject);
+  });
+}
 
-  function removeItem(key) {
-    return new Promise((resolve, reject) => {
-      withStore("readwrite", (store) => {
-        store.transaction.oncomplete = resolve;
-        var req = store.delete(key);
-        req.onerror = function removeItemOnError() {
-          reject("Error in asyncStorage.removeItem(): ", req.error.name);
-        };
-      }, reject);
-    });
-  }
+function removeItem(itemKey) {
+  return new Promise((resolve, reject) => {
+    withStore("readwrite", (store) => {
+      store.transaction.oncomplete = resolve;
+      let req = store.delete(itemKey);
+      req.onerror = function removeItemOnError() {
+        reject("Error in asyncStorage.removeItem(): ", req.error.name);
+      };
+    }, reject);
+  });
+}
 
-  function clear() {
-    return new Promise((resolve, reject) => {
-      withStore("readwrite", (store) => {
-        store.transaction.oncomplete = resolve;
-        var req = store.clear();
-        req.onerror = function clearOnError() {
-          reject("Error in asyncStorage.clear(): ", req.error.name);
-        };
-      }, reject);
-    });
-  }
+function clear() {
+  return new Promise((resolve, reject) => {
+    withStore("readwrite", (store) => {
+      store.transaction.oncomplete = resolve;
+      let req = store.clear();
+      req.onerror = function clearOnError() {
+        reject("Error in asyncStorage.clear(): ", req.error.name);
+      };
+    }, reject);
+  });
+}
 
-  function length() {
-    return new Promise((resolve, reject) => {
-      var req;
-      withStore("readonly", (store) => {
-        store.transaction.oncomplete = function onComplete() {
-          resolve(req.result);
-        };
-        req = store.count();
-        req.onerror = function lengthOnError() {
-          reject("Error in asyncStorage.length(): ", req.error.name);
-        };
-      }, reject);
-    });
-  }
+function length() {
+  return new Promise((resolve, reject) => {
+    let req;
+    withStore("readonly", (store) => {
+      store.transaction.oncomplete = function onComplete() {
+        resolve(req.result);
+      };
+      req = store.count();
+      req.onerror = function lengthOnError() {
+        reject("Error in asyncStorage.length(): ", req.error.name);
+      };
+    }, reject);
+  });
+}
 
-  function key(n) {
-    return new Promise((resolve, reject) => {
-      if (n < 0) {
-        resolve(null);
-        return;
-      }
+function key(n) {
+  return new Promise((resolve, reject) => {
+    if (n < 0) {
+      resolve(null);
+      return;
+    }
 
-      var req;
-      withStore("readonly", (store) => {
-        store.transaction.oncomplete = function onComplete() {
-          var cursor = req.result;
-          resolve(cursor ? cursor.key : null);
-        };
-        var advanced = false;
-        req = store.openCursor();
-        req.onsuccess = function keyOnSuccess() {
-          var cursor = req.result;
-          if (!cursor) {
-            // this means there weren"t enough keys
-            return;
-          }
-          if (n === 0 || advanced) {
-            // Either 1) we have the first key, return it if that's what they
-            // wanted, or 2) we"ve got the nth key.
-            return;
-          }
+    let req;
+    withStore("readonly", (store) => {
+      store.transaction.oncomplete = function onComplete() {
+        let cursor = req.result;
+        resolve(cursor ? cursor.key : null);
+      };
+      let advanced = false;
+      req = store.openCursor();
+      req.onsuccess = function keyOnSuccess() {
+        let cursor = req.result;
+        if (!cursor) {
+          // this means there weren"t enough keys
+          return;
+        }
+        if (n === 0 || advanced) {
+          // Either 1) we have the first key, return it if that's what they
+          // wanted, or 2) we"ve got the nth key.
+          return;
+        }
 
-          // Otherwise, ask the cursor to skip ahead n records
-          advanced = true;
-          cursor.advance(n);
-        };
-        req.onerror = function keyOnError() {
-          reject("Error in asyncStorage.key(): ", req.error.name);
-        };
-      }, reject);
-    });
-  }
+        // Otherwise, ask the cursor to skip ahead n records
+        advanced = true;
+        cursor.advance(n);
+      };
+      req.onerror = function keyOnError() {
+        reject("Error in asyncStorage.key(): ", req.error.name);
+      };
+    }, reject);
+  });
+}
 
-  return {
-    getItem: getItem,
-    setItem: setItem,
-    removeItem: removeItem,
-    clear: clear,
-    length: length,
-    key: key
-  };
-}());
+exports.getItem = getItem;
+exports.setItem = setItem;
+exports.removeItem = removeItem;
+exports.clear = clear;
+exports.length = length;
+exports.key = key;