@cloudcome/utils-browser
Version:
cloudcome utils for browser
51 lines (50 loc) • 1.28 kB
JavaScript
import { dateParse } from "@cloudcome/utils-core/date";
function cookieGet(name) {
const cookies = document.cookie.split(";");
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.startsWith(`${name}=`)) {
return decodeURIComponent(cookie.slice(name.length + 1));
}
}
return "";
}
function cookieSet(name, value, options) {
const { expires, maxAge, path, domain, httpOnly, sameSite, secure } = options || {};
let cookie = `${name}=${encodeURIComponent(value)}`;
const expiresAt = expires ? dateParse(expires) : maxAge ? dateParse(Date.now() + maxAge) : null;
const metas = [];
if (expiresAt) {
metas.push(["expires", expiresAt.toISOString()]);
}
if (path) {
metas.push(["path", path]);
}
if (domain) {
metas.push(["domain", domain]);
}
if (httpOnly) {
metas.push(["httpOnly", "true"]);
}
if (sameSite) {
metas.push(["sameSite", sameSite]);
}
if (secure) {
metas.push(["secure", "true"]);
}
for (const [key, value2] of metas) {
cookie += `; ${key}=${value2}`;
}
document.cookie = cookie;
}
function cookieDel(name) {
cookieSet(name, "", {
expires: 0
});
}
export {
cookieDel,
cookieGet,
cookieSet
};
//# sourceMappingURL=cookie.mjs.map