Created
September 8, 2021 08:43
-
-
Save zoutepopcorn/56d3d114e1d1c77e3de806e19166a21c to your computer and use it in GitHub Desktop.
This file contains hidden or 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 browser from "webextension-polyfill"; | |
const entries = async (key) => { | |
const values = await browser.storage.local.get(key); | |
if (Array.isArray(values[key])) { | |
return values[key]; | |
} else { | |
return []; | |
} | |
} | |
const remove = async (key, item) => { | |
const items = await entries(key); | |
const newArray = items.filter(filter => filter !== item); | |
await browser.storage.local.set({[key]: newArray}); | |
} | |
const removeObject = async (key, objectKey, objectValue) => { | |
const items = await entries(key); | |
const newArray = items.filter(filter => filter[objectKey] !== objectValue); | |
await browser.storage.local.set({[key]: newArray}); | |
} | |
const add = async (key, item) => { | |
const array = await entries(key); | |
array.push(item); | |
await browser.storage.local.set({[key]: array}); | |
} | |
const addObject = async (key, item) => { | |
const array = await entries(key); | |
const result = array.find( ({ name }) => name === item.name ); | |
if(result) { | |
return false; | |
} else { | |
array.push(item); | |
await browser.storage.local.set({[key]: array}); | |
return array; | |
} | |
} | |
const local = { | |
entries, | |
add, | |
addObject, | |
remove, | |
removeObject | |
}; | |
export {local}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment