UNPKG

tools-for-js

Version:

基于babel构建的JavaScript前端工具库

150 lines (142 loc) 6.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setExpires = exports.setCookie = exports.session = exports.removeExpires = exports.removeCookies = exports.removeCookie = exports.local = exports.getExpires = exports.getCookies = exports.getCookie = exports["default"] = void 0; var _store = _interopRequireDefault(require("store2")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /******* * @description: 缓存工具 * @author: 琴时 */ var _default = exports["default"] = _store["default"]; /******* * @description: localStorage缓存 * get:获取缓存|set:设置缓存|remove:删除缓存 */ var local = exports.local = _store["default"].local; local.getItem = local.get; local.setItem = local.set; local.removeItem = local.remove; /******* * @description: sessionStorage缓存 * get:获取缓存|set:设置缓存|remove:删除缓存 */ var session = exports.session = _store["default"].session; session.getItem = session.get; session.setItem = session.set; session.removeItem = session.remove; /******* * @description: 设置有效期信息 * @author: 琴时 * @param {Number} value [到期时间,单位毫秒] [默认30分钟] */ var setExpires = exports.setExpires = function setExpires() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30 * 60 * 1000; session.set('user_last_time', +new Date()); //最后一次设置缓存时间 session.set('user_expires', value); //设置到期时间,单位毫秒 }; /******* * @description: 获取有效期信息 * @author: 琴时 * @return {Boolean} true:未过期 false:已过期 */ var getExpires = exports.getExpires = function getExpires() { var lastTime = session.get('user_last_time'); //最后登录时间 var expires = session.get('user_expires'); //过期时间 if (!lastTime || !expires) return false; //无记录==>过期 var nowTime = +new Date(); // 当前时间戳 var times = nowTime - (lastTime + expires); // 剩余时间总毫秒数 return times < 0; }; /******* * @description: 移除有效期信息 * @author: 琴时 */ var removeExpires = exports.removeExpires = function removeExpires() { session.remove('user_last_time'); session.remove('user_expires'); }; /******* * @description: 获取cookie * @author: 琴时 * @param {String} key * @return {String} */ var getCookie = exports.getCookie = function getCookie(key) { if (typeof document === 'undefined') return ''; var name = key + '='; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name) === 0) { return c.substring(name.length, c.length); } } return ''; }; /******* * @description: 获取所有cookie * @author: 琴时 * @return {Array} */ var getCookies = exports.getCookies = function getCookies() { var cookies = []; if (typeof document === 'undefined') return cookies; if (document.cookie.length === 0) return cookies; var array = document.cookie.split('; '); //通过分号连空格将字符串切割成数组 cookies = array.map(function (item) { var _item$split = item.split('='), _item$split2 = _slicedToArray(_item$split, 2), key = _item$split2[0], value = _item$split2[1]; // 通过=再次切割 return { key: key, value: value }; }); return cookies; }; /******* * @description: 设置cookie * @author: 琴时 * @param {String} key [键名] * @param {String} value [键值] * @param {Number} day [有效期/天] | 不传默认当前会话有效 * @return {*} */ var setCookie = exports.setCookie = function setCookie(key, value, day) { var cookie = key + '=' + value + '; path=/'; if (day != undefined) { var d = new Date(); d.setTime(d.getTime() + day * 24 * 60 * 60 * 1000); var expires = '; expires=' + d.toGMTString(); cookie += expires; } if (typeof document === 'undefined') return; document.cookie = cookie; }; /******* * @description: 删除指定cookie * @author: 琴时 * @param {*} key [指定cookies的键] * @return {*} */ var removeCookie = exports.removeCookie = function removeCookie(key) { setCookie(key, '', -1); // 将生命周期改为-1 }; /******* * @description:删除所有cookie * @author: 琴时 * @return {*} */ var removeCookies = exports.removeCookies = function removeCookies() { getCookies().forEach(function (cookie) { setCookie(cookie.key, '', -1); //将生命周期改为-1==>使其失效 }); };