alinea
Version:
Headless git-based CMS
27 lines (25 loc) • 822 B
JavaScript
import "../chunks/chunk-NZLE2WMY.js";
// src/preview/PreviewCookies.ts
import { chunkCookieValue, parseChunkedCookies } from "./ChunkCookieValue.js";
var PREVIEW_COOKIE_NAME = "@a/p";
var MAX_CHUNKS = 4;
async function setPreviewCookies(payload, expiresIn = 1e4) {
const chunks = chunkCookieValue(PREVIEW_COOKIE_NAME, payload);
if (chunks.length > MAX_CHUNKS) return false;
try {
const expiry = new Date(Date.now() + expiresIn);
for (const { name, value } of chunks)
document.cookie = `${name}=${value};path=/;expires=${expiry.toUTCString()}`;
return true;
} catch {
return false;
}
}
function getPreviewPayloadFromCookies(allCookies) {
return parseChunkedCookies(PREVIEW_COOKIE_NAME, allCookies);
}
export {
PREVIEW_COOKIE_NAME,
getPreviewPayloadFromCookies,
setPreviewCookies
};