You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matrix-chat/src/lib/cookieHandler.js

38 lines
903 B
JavaScript

export class cookieHandler {
constructor(expires) {
this.expires = expires;
this.reload();
}
getCookie(key){
if (!this.cookies) return undefined;
let cookie = this.cookies.find(cookie => cookie.split('=')[0] === key);
return cookie ? cookie.split('=')[1] : false;
}
setCookie(object){
object.forEach((value, key) => {
this.cookies[key] = value;
})
}
parseCookie(string){
let cookies;
string.replace(/ /g, '').split(';').forEach(cookie => {
let arr = cookie.split('=');
cookies[arr[0]] = arr[1];
})
return cookies;
}
reload(){
if (document.cookie) this.cookies = this.parseCookie(document.cookie);
}
store(){
document.cookie = this.toString();
}
toString(cookies = this.cookies){
let string = '';
cookies.forEach((value, key) => {
string += `${key}=${value}; `;
})
return string;
}
}