Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const ChromeStorageOperations = {
- // ストレージ操作
- get: async function (key) {
- // 中身のみ返す
- return new Promise(resolve => {
- chrome.storage.local.get(key, (result) => {
- // undefined or 空配列の場合: undefinedを返す
- if(chrome.runtime.lastError || typeof result[key] ==="undefined"
- || result[key].length===0){ resolve(); }
- else { resolve(result[key]); }
- });
- });
- },
- set: async function (key, value) {
- // 主に書き換え用
- // @param value: str or list
- return new Promise(resolve => {
- chrome.storage.local.set({[key]: value}, resolve);
- });
- },
- nestAdd: async function (key1, key2, addValue) {
- /* 追記を行うには、getとset両方行う必要がある
- @param key1: str
- @param key2: int
- @param addValue: int
- {key1: [[value, ..., addValue]]}
- */
- // 初回
- const data = await ChromeStorageOperations.get(key1) || [[]];
- try{
- // ないものだけ追加
- if (!data[key2].includes(addValue)) data[key2].push(addValue);
- } catch(e){
- // 登録されていない場合
- data[key2] = (addValue) ? [addValue] : [];
- }
- await ChromeStorageOperations.set(key1, data);
- return;
- }
- };
Add Comment
Please, Sign In to add comment