declare interface ICookieUtil {
    setCookie(name:string,value:any,expires:number):void;
    getCookie(name:string):string;
    removeCookie(name:string):void;
    clearCookie():void
}

export class cookieUtil implements ICookieUtil {
    setCookie(name:string,value:any,expires:number = 0):void{
        let timeStr = '';
        if (expires) {
            const time = new Date()
            time.setTime(time.getTime() + expires)
            timeStr = `; expires=${time.toUTCString()}`
        }
        const str = `${name}=${value}${timeStr}; path=/`
        document.cookie = str
    }
    getCookie(name:string):string{
        var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
        if (arr = document.cookie.match(reg))
            return unescape(arr[2]);
        else
            return '';
    }
    removeCookie(name:string):void {
        this.setCookie(name, '', -1);
    }
    clearCookie():void{
        document.cookie = '';
    }
}