Skip to content

Commit

Permalink
feat(storage): local存储增加有效期
Browse files Browse the repository at this point in the history
  • Loading branch information
yanbowe committed Nov 23, 2021
1 parent 03b398a commit e6c9b35
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions src/utils/storage/local.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
export function setLocal(key: string, value: unknown) {
const json = JSON.stringify(value);
/** 默认缓存期限为7天 */
const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7;

export function setLocal(key: string, value: unknown, expire: number | null = DEFAULT_CACHE_TIME) {
const json = JSON.stringify({ value, expire: expire !== null ? new Date().getTime() + expire * 1000 : null });
window.localStorage.setItem(key, json);
}

export function getLocal<T>(key: string) {
const json = window.localStorage.getItem(key);
if (json) {
return JSON.parse(json) as T;
const data = JSON.parse(json);
const { value, expire } = data;
/** 在有效期内直接返回 */
if (expire === null || expire >= Date.now()) {
return value as T;
}
removeLocal(key);
}
return null;
}
Expand Down

0 comments on commit e6c9b35

Please sign in to comment.