diff --git a/src/db.js b/src/db.js
new file mode 100644
index 0000000..7d81e71
--- /dev/null
+++ b/src/db.js
@@ -0,0 +1,27 @@
+(() => {
+ var local = {
+ get: (obj, cb) => {
+ if (typeof obj === 'string') {
+ setTimeout(() => cb(window.localStorage.getItem(obj)), 100);
+ } else {
+ const retVal = {};
+ Object.keys(obj).forEach(key => {
+ let val = window.localStorage.getItem(key);
+ retVal[key] =
+ val === undefined || val === null ? obj[key] : JSON.parse(val);
+ });
+ setTimeout(() => cb(retVal), 100);
+ }
+ },
+ set: (obj, cb) => {
+ Object.keys(obj).forEach(key => {
+ window.localStorage.setItem(key, JSON.stringify(obj[key]));
+ });
+ setTimeout(() => cb(), 100);
+ }
+ };
+ window.db = {
+ local: chrome && chrome.storage ? chrome.storage.local : local,
+ sync: chrome && chrome.storage ? chrome.storage.sync : local
+ };
+})();
diff --git a/src/index.html b/src/index.html
index 2c9803c..cc136d2 100644
--- a/src/index.html
+++ b/src/index.html
@@ -584,6 +584,7 @@
+
diff --git a/src/script.js b/src/script.js
index 50797c9..3bb7c92 100644
--- a/src/script.js
+++ b/src/script.js
@@ -302,7 +302,7 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
const d = deferred();
var obj = {};
obj[setting] = value;
- chrome.storage.local.set(obj, d.resolve);
+ db.local.set(obj, d.resolve);
return d.promise;
}
@@ -322,13 +322,13 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
});
// Push into the items hash if its a new item being saved
if (isNewItem) {
- chrome.storage.local.get(
+ db.local.get(
{
items: {}
},
function(result) {
result.items[currentItem.id] = true;
- chrome.storage.local.set({
+ db.local.set({
items: result.items
});
}
@@ -1008,13 +1008,11 @@ globalConsoleContainerEl, externalLibrarySearchInput, keyboardShortcutsModal
if (js) {
contents += '\n