nsn-util
Version:
NSN工具辅助组件
199 lines (145 loc) • 6.16 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.all = exports.getAutoLogin = exports.setAutoLogin = exports.clear = exports.remove = exports.get = exports.set = exports.configLocalStorage = void 0;
var _nsnConst = require("nsn-const");
var NStr = _interopRequireWildcard(require("./NStr"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
var sessionStorage;
var getKey = function getKey(k) {
var key = k || _nsnConst.NConst.EMPTY;
if (key.startsWith(_nsnConst.NConst.ISP_NAME_SHORT)) {
return key;
}
return "".concat(_nsnConst.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);
};
}
}; //
exports.configLocalStorage = configLocalStorage;
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
*/
exports.set = set;
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 键名
*/
exports.get = get;
var remove = function remove(key) {
if (key) {
var _sessionStorage3;
(_sessionStorage3 = sessionStorage) === null || _sessionStorage3 === void 0 ? void 0 : _sessionStorage3.removeItem(key);
}
};
/** 清理所有缓存 */
exports.remove = remove;
var clear = function clear() {
var _sessionStorage4;
return (_sessionStorage4 = sessionStorage) === null || _sessionStorage4 === void 0 ? void 0 : _sessionStorage4.clear();
};
/**
* @param autoLogin 是否自动登录
*/
exports.clear = clear;
var AUTO_LOGIN_KEY = 'AutoLogin';
/** 自动登录 */
var setAutoLogin = function setAutoLogin(autoLogin) {
return set(_defineProperty({}, AUTO_LOGIN_KEY, autoLogin));
};
/** 自动登录 */
exports.setAutoLogin = setAutoLogin;
var getAutoLogin = function getAutoLogin() {
return get(AUTO_LOGIN_KEY);
};
/** 全部缓存 */
exports.getAutoLogin = getAutoLogin;
var all = function all() {
var values = new Map();
Object.keys(sessionStorage || {}).forEach(function (k) {
if (k.startsWith(_nsnConst.NConst.ISP_NAME_SHORT) || NStr.isEqual(k, 'umi_locale')) {
values.set(k, get(k));
}
});
return values.size > 0 ? values : undefined;
};
/** 缓存管理 */
exports.all = all;