48 lines
937 B
JavaScript
48 lines
937 B
JavaScript
import {defineStore} from "pinia";
|
|
import {ref} from "vue";
|
|
import {getCacheOpt, getCacheType} from "../api/cache";
|
|
|
|
export const useCacheStore = defineStore('cache',()=>{
|
|
const cacheKeyOpt = ref(new Map())
|
|
const cacheKeyType = ref(new Map())
|
|
|
|
const setCacheKey = async (key) => {
|
|
try {
|
|
const { code, data } = await getCacheType(key)
|
|
if(code === 1000) {
|
|
cacheKeyType.value.set(key, data[key])
|
|
}
|
|
} catch(err) {
|
|
new Error(err)
|
|
}
|
|
}
|
|
|
|
const getDict = (key) => {
|
|
let dict
|
|
if (!cacheKeyType.value.has(key)) {
|
|
setCacheKey(key)
|
|
} else {
|
|
dict = cacheKeyType.value.get(key)
|
|
}
|
|
return dict
|
|
}
|
|
|
|
|
|
const checkKey = (keys) => {
|
|
let result = []
|
|
for (let key of keys) {
|
|
if (!cacheKeyType.value.has(key) ) {
|
|
result.push(key)
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
return {
|
|
cacheKeyOpt,
|
|
cacheKeyType,
|
|
setCacheKey,
|
|
getDict,
|
|
}
|
|
})
|