const useStorage = () => {
    /**
     * 设置储存数据
     * @param key 键
     * @param data 值
     * @param expire 过期时间（秒）
     * @returns Promise
     */
    const set = (key, data, expire) => {
        return new Promise((resolve, reject) => {
            const obj = {
                expire: 0,
                data: data,
            }
            if (expire !== undefined) {
                obj.expire = Date.now() + expire * 1000
            }
            globalThis.localStorage.setItem(key, JSON.stringify(obj));
            if (get(key) === null) {
                reject();
            } else {
                resolve(true);
            }
        })
    }
    /**
     * 获取储存数据
     * @param key 键
     * @returns StorageInterface
     */
    const get = (key) => {
        const data = globalThis.localStorage.getItem(key);

        if (data === null) {
            return null;
        }
        const ret = JSON.parse(data);

        if (ret?.expire > 0 && ret?.expire < Date.now()) {
            return null;
        }
        return ret?.data;
    }
    return { set, get };
}
function icodeRun(){
    // 获取地址栏参数
    const url = new URL(globalThis.location.href);
    const icode = url.searchParams.get('icode');
    const storage = useStorage();
    // 保存到本地存储
    if (icode&&!storage.get('CONTROL.ICODE')) {
        storage.set('CONTROL.ICODE', icode);
        console.log('icode.js loaded')
    }
}
icodeRun()