UNPKG

press-plus

Version:
77 lines (61 loc) 1.65 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 { IChildParams } from './types'; export { DETAIL_CACHE_KEY_LIST }; function getChildKey({ siteId, parentId, childId, }: Pick<IChildParams, 'childId' | 'parentId' | 'siteId'>) { return `${siteId}_${parentId}_${childId}`; } export function setChildDetailCache({ siteId, parentId, childId, childInfo, isTestEnv, }: IChildParams) { if (!siteId || !parentId || !childId || !childInfo) return; const childKey = getChildKey({ siteId, parentId, childId, }); let originInfo: Record<string, any> = {}; const storageKey = isTestEnv ? DETAIL_CACHE_KEY_LIST.CHILD_TEST : DETAIL_CACHE_KEY_LIST.CHILD; try { originInfo = JSON.parse(storageUtil.get(storageKey)); } catch (err) { originInfo = {}; } storageUtil.set(storageKey, JSON.stringify({ ...sliceObject(originInfo || {}, MAX_CACHE_NUMBER), [childKey]: childInfo, })); } export function getChildDetailCache({ siteId, parentId, childId, isTestEnv, }: Pick<IChildParams, 'siteId' | 'parentId' | 'childId' | 'isTestEnv'>) { if (!siteId || !parentId || !childId) { return {}; } const childKey = getChildKey({ siteId, parentId, childId, }); const storageKey = isTestEnv ? DETAIL_CACHE_KEY_LIST.CHILD_TEST : DETAIL_CACHE_KEY_LIST.CHILD; const str = storageUtil.get(storageKey); let info = {}; try { info = JSON.parse(str)[childKey]; } catch (err) { info = {}; } return info; }