| 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 | 
| } |