redux-persist-webextension-storage
Version:
WebExtension Storage engine for redux-persist
48 lines (45 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createStorage;
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function createStorage(type) {
return {
getItem: function getItem(key) {
return new Promise(function (resolve, reject) {
chrome.storage[type].get(key, function (value) {
if (chrome.runtime.lastError == null) {
// Chrome Storage returns the value in an Object of with its original key. Unwrap the
// value from the returned Object to match the `getItem` API.
resolve(value[key]);
} else {
reject();
}
});
});
},
removeItem: function removeItem(key) {
return new Promise(function (resolve, reject) {
chrome.storage[type].remove(key, function () {
if (chrome.runtime.lastError == null) {
resolve();
} else {
reject();
}
});
});
},
setItem: function setItem(key, value) {
return new Promise(function (resolve, reject) {
chrome.storage[type].set(_defineProperty({}, key, value), function () {
if (chrome.runtime.lastError == null) {
resolve();
} else {
reject();
}
});
});
}
};
}