All files local.ts

100% Statements 22/22
100% Branches 11/11
100% Functions 5/5
100% Lines 22/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59              7x 7x 7x 7x 2x   1x 1x   1x     5x   7x                   4x 4x 2x 2x 2x 2x   2x   4x 4x             1x     1x         1x    
export default {
    /**
     * 获取对应key的localStorage
     * @param {string} key 键值
     * @returns {any}
     */
    get: (key: string): any => {
        let result = null
        let _local = JSON.parse(localStorage.getItem(key))
        let isObj = Object.prototype.toString.call(_local) === '[object Object]'
        if (isObj && _local.$$ExpiryTime) {
            if (new Date().getTime() > new Date(_local.$$ExpiryTime).getTime()) {
                // 过期
                result = null
                localStorage.removeItem(key)
            } else {
                result = _local.data
            }
        } else {
            result = _local
        }
        return result
    },
    /**
     * 设置localStorage (可存对象)
     * @param {string} key 键值
     * @param {string} dataSource 数据
     * @param {number} second 过期时间(s)
     * @returns {any}
     */
    set: (key: string, dataSource: string = null, second?: number): object => {
        let result: any = {}
        if (second) {
            const d = new Date()
            d.setTime(d.getTime() + second * 1000)
            result.data = dataSource
            result.$$ExpiryTime = d
        } else {
            result = dataSource
        }
        localStorage.setItem(key, JSON.stringify(result))
        return result
    },
    /**
     * 移除对应key的localStorage
     * @param {string} key 键值
     */
    remove: (key: string) => {
        key && localStorage.removeItem(key)
    },
    /** 清空localStorage */
    clear: () => localStorage.clear(),
    /**
     * 获取localStorage中第n+1个的key
     * @param {number} n
     */
    key: (n: number) => localStorage.key(n),
}