storage.js

const EXP_TIME = 24 * 1000 * 60 * 60;

/**
 *
 * @param key 键值
 * @param exp 过期时间
 * @returns {boolean | any} 返回结果
 * @example
 * Peanut.getStorage('name');
 * @description 获取localStorage值
 */
function getStorage(key, exp) {
    exp = exp || EXP_TIME
    let data = localStorage.getItem(key)
    if(!data) {
        localStorage.removeItem(key)
        return false;
    }
    data = JSON.parse(data)
    if(exp && new Date().getTime() - data.time > exp) {
        localStorage.removeItem(key)
        return false
    }
    return data.data
}

/**
 * @param key
 * @param value
 * @returns {number} number - 返回结果
 * @example
 * Peanut.setStorage('name', 'peanut');
 * @description 设置localStorage
 *
 */
function setStorage(key, value) {
    let curTime = new Date().getTime()
    localStorage.setItem(key, JSON.stringify({data: value, time: curTime}))
}

/**
 * 存储sessionStorage
 */
const setSessionStorage = (name, content) => {
    if (!name) return;
    if (typeof content !== 'string') {
        content = JSON.stringify(content);
    }
    window.sessionStorage.setItem(name, content);
};

/**
 * 获取sessionStorage
 */
const getSessionStorage = name => {
    if (!name) return;
    let value = window.sessionStorage.getItem(name);
    if (!value || value == '') {
        return null;
    }
    return value;
};

/**
 * 删除sessionStorage
 */
const removeSessionStorage = name => {
    if (!name) return;
    window.sessionStorage.removeItem(name);
};

function getCookie(name){
    let arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(arr[2]);
    else
        return '';
}
function setCookie(name,value,days){
    if (days) {
        let date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        let expires = "; expires="+date.toGMTString();
    }else{
        let expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/;domain=qq.com";
}
function delCookie(name) {
    let exp = new Date();
    exp.setTime(exp.getTime() - 1);
    let cval= getCookie(name);
    if(cval!='')
        document.cookie= name + "="+cval+";expires="+exp.toGMTString()+"; path=/;domain=qq.com";
}


export {
    setStorage,
    getStorage,
    getSessionStorage,
    setSessionStorage,
    removeSessionStorage,
    delCookie,
    setCookie,
    getCookie
}