UNPKG

nsn-util

Version:

NSN工具辅助组件

172 lines (130 loc) 4.37 kB
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import { NConst } from 'nsn-const'; import * as NStr from './NStr'; var sessionStorage; var getKey = function getKey(k) { var key = k || NConst.EMPTY; if (key.startsWith(NConst.ISP_NAME_SHORT)) { return key; } return "".concat(NConst.ISP_NAME_SHORT, "-").concat(key); }; /** 调用其他方法之前,先调用此方法 */ var configLocalStorage = function configLocalStorage(win) { if (NStr.isBrowser()) { // eslint-disable-next-line prefer-destructuring sessionStorage = window.sessionStorage; } else if (win && win.sessionStorage) { // eslint-disable-next-line prefer-destructuring sessionStorage = win.sessionStorage; } // if (sessionStorage) { // 重写事件,当使用时候,触发 window.dispatchEvent 派发事件 var signSetItem = sessionStorage.setItem; sessionStorage.setItem = function (key, val) { var event = new Event('NStoreSetItemEvent'); event['key'] = getKey(key); event['value'] = val; window.dispatchEvent(event); signSetItem === null || signSetItem === void 0 ? void 0 : signSetItem.apply(this, [getKey(key), val]); }; var signRemoveItem = sessionStorage.removeItem; sessionStorage.removeItem = function (key) { var event = new Event('NStoreRemoveItemEvent'); event['key'] = getKey(key); window.dispatchEvent(event); signRemoveItem.apply(this, [getKey(key)]); }; var signGetItem = sessionStorage.getItem; sessionStorage.getItem = function (key) { var event = new Event('NStoreGetItemEvent'); event['key'] = getKey(key); window.dispatchEvent(event); return signGetItem.apply(this, [getKey(key)]); }; var signClear = sessionStorage.clear; sessionStorage.clear = function () { var event = new Event('NStoreClearEvent'); window.dispatchEvent(event); signClear.apply(this); }; } }; // configLocalStorage(); var setValue = function setValue(k, v) { var _sessionStorage; return (_sessionStorage = sessionStorage) === null || _sessionStorage === void 0 ? void 0 : _sessionStorage.setItem(k, JSON.stringify(v)); }; /** 设置缓存 */ var set = function set(items) { if (sessionStorage) { if (items instanceof Map) { if (items.size > 0) { items.forEach(function (v, k) { return setValue(k, v); }); } } else { Object.keys(items).forEach(function (k) { return setValue(k, items[k]); }); } } }; /** * 获取缓存 * @param key 键名 * @returns key 或 sessionStorage 不存在时返回 null */ var get = function get(key) { if (key) { var _sessionStorage2; var value = (_sessionStorage2 = sessionStorage) === null || _sessionStorage2 === void 0 ? void 0 : _sessionStorage2.getItem(key); if (value) { try { value = JSON.parse(value); } catch (e) {// do nothing } } return value; } return null; }; /** 移除缓存 * @param key 键名 */ var remove = function remove(key) { if (key) { var _sessionStorage3; (_sessionStorage3 = sessionStorage) === null || _sessionStorage3 === void 0 ? void 0 : _sessionStorage3.removeItem(key); } }; /** 清理所有缓存 */ var clear = function clear() { var _sessionStorage4; return (_sessionStorage4 = sessionStorage) === null || _sessionStorage4 === void 0 ? void 0 : _sessionStorage4.clear(); }; /** * @param autoLogin 是否自动登录 */ var AUTO_LOGIN_KEY = 'AutoLogin'; /** 自动登录 */ var setAutoLogin = function setAutoLogin(autoLogin) { return set(_defineProperty({}, AUTO_LOGIN_KEY, autoLogin)); }; /** 自动登录 */ var getAutoLogin = function getAutoLogin() { return get(AUTO_LOGIN_KEY); }; /** 全部缓存 */ var all = function all() { var values = new Map(); Object.keys(sessionStorage || {}).forEach(function (k) { if (k.startsWith(NConst.ISP_NAME_SHORT) || NStr.isEqual(k, 'umi_locale')) { values.set(k, get(k)); } }); return values.size > 0 ? values : undefined; }; /** 缓存管理 */ export { configLocalStorage, set, get, remove, clear, setAutoLogin, getAutoLogin, all };