You can implement solution like this for cookie management:
class CookieManager {
constructor() {}
/**
* Set cookie (add new or edit already added one)
* @param name name of cookie property
* @param value cookie value
* @param expireTimeInMs cookie expire time in milliseconds (1 day by default)
*/
static set(name, value, expireTimeInMs = 24 * 36e5) {
var d = new Date();
d.setTime(d.getTime() + expireTimeInMs);
var expires = "expires="+ d.toUTCString();
document.cookie = name + "=" + value + ";" + expires + ";path=/";
}
/**
* Get current cookie value
* @param name name of cookie property
* @returns value or 'null' if cookie not found
*/
static get(name) {
name = name + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return null;
}
/**
* Increment integer cookie value
* @param name name of cookie property
*/
static inc(name) {
var value = parseInt(this.get(name))
if (!value || Number.isNaN(value)) value = 0;
this.set(name, value + 1);
}
}
So you can store & increment any int cookie like this:
CookieManager.inc(cookieName);