IndexedDBが動かないならLocalStorageでよくね?.js
2024-07-28
ずっとLocalForage使ってたが、たまにSafari環境でPromiseが解決されないままになって止まっちゃう。 調べたらWebkitがIndexedDBにバグを抱えているっぽい?(解決済みってことになってるが)
……だったらLocalStorageで頑張れば良くないですか?ってことでラッパーを作ります。
code:override_main.js
globalThis.LocalStorageEX = {
/**
* LocalStorageにデータを保存する
* @param {String} key - キー
* @param {String|Boolean|Number|Null|Object|Array} value - 保存するデータ
*/
"set": (key, value) => localStorage.setItem(key, JSON.stringify(value)),
/**
* LocalStorageからデータを取得する
* @param {String} key - キー
* @returns {String|Boolean|Number|Null|Object|Array} 保存されたデータ
*/
"get": key => JSON.parse(localStorage.getItem(key)),
/**
* LocalStorageからデータを削除する
* @param {String} key - キー
*/
"remove": key => localStorage.removeItem(key),
/**
* LocalStorageに保存されたすべてのデータを取得する
* @returns {Object} 保存されたデータ
*/
};