Last active
October 7, 2024 11:02
-
-
Save sumitpore/47439fcd86696a71bf083ede8bbd5466 to your computer and use it in GitHub Desktop.
Chrome's Local StorageArea API in Synchronous way for use in Chrome extensions. Replace 'chrome.storage.local' by 'chrome.storage.sync' if you want to use Sync StorageArea
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Retrieve object from Chrome's Local StorageArea | |
* @param {string} key | |
*/ | |
const getObjectFromLocalStorage = async function(key) { | |
return new Promise((resolve, reject) => { | |
try { | |
chrome.storage.local.get(key, function(value) { | |
resolve(value[key]); | |
}); | |
} catch (ex) { | |
reject(ex); | |
} | |
}); | |
}; | |
/** | |
* Save Object in Chrome's Local StorageArea | |
* @param {*} obj | |
*/ | |
const saveObjectInLocalStorage = async function(obj) { | |
return new Promise((resolve, reject) => { | |
try { | |
chrome.storage.local.set(obj, function() { | |
resolve(); | |
}); | |
} catch (ex) { | |
reject(ex); | |
} | |
}); | |
}; | |
/** | |
* Removes Object from Chrome Local StorageArea. | |
* | |
* @param {string or array of string keys} keys | |
*/ | |
const removeObjectFromLocalStorage = async function(keys) { | |
return new Promise((resolve, reject) => { | |
try { | |
chrome.storage.local.remove(keys, function() { | |
resolve(); | |
}); | |
} catch (ex) { | |
reject(ex); | |
} | |
}); | |
}; | |
export { | |
getObjectFromLocalStorage, | |
saveObjectInLocalStorage, | |
removeObjectFromLocalStorage | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { getObjectFromLocalStorage, saveObjectInLocalStorage, removeObjectFromLocalStorage } from './chrome-local-storage-api.js'; | |
async function sampleUse() { | |
let sampleObject = { | |
'key-one': 1, | |
'key-two': 'xyz' | |
}; | |
await saveObjectInLocalStorage(sampleObject); | |
console.log(await getObjectFromLocalStorage('key-one')); | |
console.log(await getObjectFromLocalStorage('key-two')); | |
await removeObjectFromLocalStorage('key-two'); | |
console.log(await getObjectFromLocalStorage('key-two')); | |
} | |
sampleUse(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It's not synchronous. It just eliminates callbacks.