blob: 136f17f69010b28dc2915e57d5b28daf979fe3f3 [file] [log] [blame]
export function useCacheStorage<T = any>({
expires = 24 * 60 * 60 * 1000,
} = {}) {
// can be support sessionStorage or cookies
const storage = window.localStorage;
function setItem(key: string, value: T) {
storage.setItem(
key,
JSON.stringify({
data: value,
expiresAt: Date.now() + expires,
}),
);
}
function getItem(key: string): T | null {
const cached = storage.getItem(key);
if (cached) {
const parsed = JSON.parse(cached);
if (Date.now() < parsed.expiresAt) {
return parsed.data;
} else {
console.log(11)
storage.removeItem(key);
}
}
return null;
}
return {
setItem,
getItem,
clear: storage.clear,
};
}