UNPKG

alinea

Version:
29 lines (27 loc) 980 B
import { parse } from "../../chunks/chunk-5LTN67OE.js"; import "../../chunks/chunk-NZLE2WMY.js"; // src/adapter/core/preview.tsx import { getPreviewPayloadFromCookies } from "alinea/preview/PreviewCookies"; import { previewStore } from "./previewContext.js"; async function preview(cms, request, run) { const { AsyncLocalStorage } = await import("node:async_hooks"); const storage = previewStore.get(cms) ?? new AsyncLocalStorage(); previewStore.set(cms, storage); const context = {}; const searchParams = new URL(request.url).searchParams; const previewToken = searchParams.get("preview"); const cookieHeader = request.headers.get("cookie"); if (previewToken && cookieHeader) { const cookies = parse(cookieHeader); const payload = getPreviewPayloadFromCookies( Object.entries(cookies).map(([name, value]) => ({ name, value })) ); if (payload) context.preview = { payload }; } return storage.run(context, run); } export { preview };