UNPKG

@tanshenghu/web-utils

Version:

web公共方法

84 lines (72 loc) 2.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var prefix = '$tsh-'; exports.default = { /** * 存储数据 * @param {string} key - 存储键名 * @param {any} value - 存储键值 * @param {number} [expires] - 过期时间(分钟为单位) * @param {string} [type] - 类型 值: local, session */ setStorage: function setStorage(key, value, expires, type) { checkData(); if (typeof expires === 'string') { type = expires; expires = void 0; } var store = { data: value, by: 'tsh' }; if (typeof expires === 'number') { store.expires = Date.now() + expires * 60000; } getLocalObj(type).setItem('' + prefix + key, JSON.stringify(store)); }, /** * 获取存储数据 * @param {string} key - 存储键名 * @param {string} [type] - 类型 值: local, session */ getStorage: function getStorage(key, type) { checkData(); var value = getLocalObj(type).getItem('' + prefix + key); return JSON.parse(value || '{}').data; }, /** * 删除存储数据 * @param {string} key - 存储键名 * @param {string} [type] - 类型 值: local, session */ removeStorage: function removeStorage(key, type) { checkData(); getLocalObj(type).removeItem('' + prefix + key); } }; function getLocalObj(type) { return globalThis[type === 'session' ? 'sessionStorage' : 'localStorage']; } /** * 数据验证 */ function checkData() { var store = globalThis.sessionStorage; var store2 = globalThis.localStorage; var now = Date.now(); function deal(datas, tval) { Object.keys(datas).filter(function (v) { return v.indexOf(prefix) === 0; }).forEach(function (key) { try { var d = JSON.parse(datas[key]); if (d.by === 'tsh' && typeof d.data !== 'undefined' && d.expires > -2 && now > d.expires) { globalThis[tval === 1 ? 'sessionStorage' : 'localStorage'].removeItem(key); } } catch (e) {} }); } deal(store, 1); deal(store2, 2); } checkData(); module.exports = exports['default'];