import AES from "crypto-js/aes" import ENC_UTF8 from "crypto-js/enc-utf8" import WebStorageCache from "web-storage-cache" import { LOCAL_ENCRYPTED_KEY } from "@/common/config" const cache = new WebStorageCache() const isEncrypt = true const isEncryptPartial = true function getCache(key) { const encryptValue = cache.get(key) if (encryptValue === null) { return null } const bytes = AES.decrypt(encryptValue, LOCAL_ENCRYPTED_KEY) const plaintext = bytes.toString(ENC_UTF8) return JSON.parse(plaintext) } function setCache(key, value) { const encryptValue = AES.encrypt(JSON.stringify(value), LOCAL_ENCRYPTED_KEY).toString() return cache.set(key, encryptValue) } function deleteCache(key) { return cache.delete(key) } function getCacheWrapper(key) { if (isEncrypt || isEncryptPartial) { return getCache(key) } else { return cache.get(key) } } function setCacheWrapper(key, value) { if (isEncrypt || isEncryptPartial) { return setCache(key, value) } else { return cache.set(key, value) } } export const wsCache = { get: getCacheWrapper, set: setCacheWrapper, delete: deleteCache }