Browse Source

Merge pull request #6269 from Draivin/master

Add chrome.storage.local
Kevin Sawicki 8 years ago
parent
commit
6081cba15d
1 changed files with 14 additions and 9 deletions
  1. 14 9
      lib/renderer/extensions/storage.js

+ 14 - 9
lib/renderer/extensions/storage.js

@@ -1,5 +1,5 @@
-const getStorage = () => {
-  const data = window.localStorage.getItem('__chrome.storage.sync__')
+const getStorage = (storageType) => {
+  const data = window.localStorage.getItem(`__chrome.storage.${storageType}__`)
   if (data != null) {
     return JSON.parse(data)
   } else {
@@ -7,15 +7,15 @@ const getStorage = () => {
   }
 }
 
-const setStorage = (storage) => {
+const setStorage = (storageType, storage) => {
   const json = JSON.stringify(storage)
-  window.localStorage.setItem('__chrome.storage.sync__', json)
+  window.localStorage.setItem(`__chrome.storage.${storageType}__`, json)
 }
 
-module.exports = {
-  sync: {
+const getStorageManager = (storageType) => {
+  return {
     get (keys, callback) {
-      const storage = getStorage()
+      const storage = getStorage(storageType)
       if (keys == null) return storage
 
       let defaults = {}
@@ -45,15 +45,20 @@ module.exports = {
     },
 
     set (items, callback) {
-      const storage = getStorage()
+      const storage = getStorage(storageType)
 
       Object.keys(items).forEach(function (name) {
         storage[name] = items[name]
       })
 
-      setStorage(storage)
+      setStorage(storageType, storage)
 
       setTimeout(callback)
     }
   }
 }
+
+module.exports = {
+  sync: getStorageManager('sync'),
+  local: getStorageManager('local')
+}