|
@@ -12,11 +12,17 @@ const setStorage = (storageType, storage) => {
|
|
|
window.localStorage.setItem(`__chrome.storage.${storageType}__`, json)
|
|
|
}
|
|
|
|
|
|
+const scheduleCallback = (items, callback) => {
|
|
|
+ setTimeout(function () {
|
|
|
+ callback(items)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
const getStorageManager = (storageType) => {
|
|
|
return {
|
|
|
get (keys, callback) {
|
|
|
const storage = getStorage(storageType)
|
|
|
- if (keys == null) return storage
|
|
|
+ if (keys == null) return scheduleCallback(storage, callback)
|
|
|
|
|
|
let defaults = {}
|
|
|
switch (typeof keys) {
|
|
@@ -30,7 +36,7 @@ const getStorageManager = (storageType) => {
|
|
|
}
|
|
|
break
|
|
|
}
|
|
|
- if (keys.length === 0) return {}
|
|
|
+ if (keys.length === 0) return scheduleCallback({}, callback)
|
|
|
|
|
|
let items = {}
|
|
|
keys.forEach(function (key) {
|
|
@@ -38,10 +44,7 @@ const getStorageManager = (storageType) => {
|
|
|
if (value == null) value = defaults[key]
|
|
|
items[key] = value
|
|
|
})
|
|
|
-
|
|
|
- setTimeout(function () {
|
|
|
- callback(items)
|
|
|
- })
|
|
|
+ scheduleCallback(items, callback)
|
|
|
},
|
|
|
|
|
|
set (items, callback) {
|