54 lines
1.6 KiB
JavaScript
Executable File
54 lines
1.6 KiB
JavaScript
Executable File
/**
|
|
* A simple cookie reader/writer with JSON support.
|
|
*
|
|
* @example
|
|
* // Create a cookie
|
|
* CookieManager.setCookie('username', 'JohnDoe', 7);
|
|
*
|
|
* @example
|
|
* // Read a cookie
|
|
* const username = CookieManager.getCookie('username');
|
|
* console.log(username); // Outputs: JohnDoe
|
|
*
|
|
* @example
|
|
* // Erase a cookie
|
|
* CookieManager.eraseCookie('username');
|
|
*
|
|
* @example
|
|
* // Set a JSON object as a cookie
|
|
* const user = { name: 'John Doe', age: 30 };
|
|
* CookieManager.setJSONCookie('user', user, 7);
|
|
*
|
|
* @example
|
|
* // Get a JSON object from a cookie
|
|
* const user = CookieManager.getJSONCookie('user');
|
|
* console.log(user); // Outputs: { name: 'John Doe', age: 30 }
|
|
*/
|
|
// a simple cookie reader/writer with json support
|
|
class CookieManager {
|
|
static setCookie(name, value, days) {
|
|
let expires = "";
|
|
if (days) {
|
|
const date = new Date();
|
|
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
|
expires = "; expires=" + date.toUTCString();
|
|
}
|
|
document.cookie = name + "=" + value + expires + "; path=/";
|
|
}
|
|
|
|
static getCookie(name) {
|
|
const nameEQ = name + "=";
|
|
const ca = document.cookie.split(';');
|
|
for(let i = 0; i < ca.length; i++) {
|
|
let c = ca[i];
|
|
while (c.charAt(0) == ' ') c = c.substring(1,c.length);
|
|
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static deleteCookie(name) {
|
|
document.cookie = name + '=; Max-Age=-99999999;';
|
|
}
|
|
}
|