/**
* Configures cookies for maintenance tasks with manual overrides.
*
* @param {object} options - Configuration options for the cookies.
* @param {object} [options.defaults] - Default cookie values.
* @param {object} [options.overrides] - Manual overrides for specific cookies.
* @param {string} [options.domain] - The domain for the cookies (optional).
* @param {string} [options.path] - The path for the cookies (optional).
* @param {boolean} [options.secure] - Whether to set the cookie securely (HTTPS only) (optional).
* @param {boolean} [options.httpOnly] - Whether to set the cookie as HTTPOnly (optional).
*/
function configureMaintenanceCookies(options) {
const defaults = options.defaults || {};
const overrides = options.overrides || {};
const domain = options.domain;
const path = options.path || '/';
const secure = options.secure || false;
const httpOnly = options.httpOnly || false;
for (const cookieName in defaults) {
document.cookie = `${cookieName}=${defaults[cookieName]}; path=${path}`;
}
for (const cookieName in overrides) {
document.cookie = `${cookieName}=${overrides[cookieName]}; path=${path}`;
}
if (domain) {
document.cookie = `${defaults.sessionCookie}=${defaults.sessionValue}; domain=${domain}; path=${path}`;
}
if (secure) {
document.cookie = `${defaults.sessionCookie}=${defaults.sessionValue}; secure; path=${path}`;
}
if (httpOnly) {
document.cookie = `${defaults.sessionCookie}=${defaults.sessionValue}; httpOnly; path=${path}`;
}
}
Add your comment