UNPKG

press-plus

Version:
57 lines (42 loc) 1.24 kB
import { storageUtil } from 'press-ui/common/utils/storage'; import { sliceObject } from 't-comm/es/base/object/slice'; import { DETAIL_CACHE_KEY_LIST, MAX_CACHE_NUMBER } from './config'; import type { ISiteParams } from './types'; export { DETAIL_CACHE_KEY_LIST }; export function setSiteDetailCache({ siteId, siteInfo, isTestEnv, }: ISiteParams) { if (!siteId || !siteInfo) return; const siteKey = siteId; let originInfo: Record<string, any> = {}; const storageKey = isTestEnv ? DETAIL_CACHE_KEY_LIST.SITE_TEST : DETAIL_CACHE_KEY_LIST.SITE; try { originInfo = JSON.parse(storageUtil.get(storageKey)); } catch (err) { originInfo = {}; } storageUtil.set(storageKey, JSON.stringify({ ...sliceObject(originInfo || {}, MAX_CACHE_NUMBER), [siteKey]: siteInfo, })); } export function getSiteDetailCache({ siteId, isTestEnv, }: Pick<ISiteParams, 'siteId' | 'isTestEnv'>) { if (!siteId) { return {}; } const siteKey = siteId; const storageKey = isTestEnv ? DETAIL_CACHE_KEY_LIST.SITE_TEST : DETAIL_CACHE_KEY_LIST.SITE; const str = storageUtil.get(storageKey); let info = {}; try { info = JSON.parse(str)[siteKey]; } catch (err) { info = {}; } return info; }