UNPKG

next-sanity

Version:
41 lines (40 loc) 1.44 kB
import { validatePreviewUrl } from "@sanity/preview-url-secret"; import { perspectiveCookieName } from "@sanity/preview-url-secret/constants"; import { draftMode, cookies } from "next/headers"; import { redirect } from "next/navigation"; function defineEnableDraftMode(options) { const { client } = options; return { GET: async (request) => { const { isValid, redirectTo = "/", studioPreviewPerspective } = await validatePreviewUrl(client, request.url); if (!isValid) return new Response("Invalid secret", { status: 401 }); const draftModeStore = await draftMode(); draftModeStore.isEnabled || draftModeStore.enable(); const isSecure = process.env.NODE_ENV === "production" || (options.secureDevMode ?? !1), cookieStore = await cookies(), cookie = cookieStore.get("__prerender_bypass"); return cookieStore.set({ name: "__prerender_bypass", value: cookie?.value, httpOnly: !0, path: "/", secure: isSecure, sameSite: isSecure ? "none" : "lax" }), studioPreviewPerspective && cookieStore.set({ name: perspectiveCookieName, value: studioPreviewPerspective, httpOnly: !0, path: "/", secure: isSecure, sameSite: isSecure ? "none" : "lax" }), redirect(redirectTo); } }; } export { defineEnableDraftMode }; //# sourceMappingURL=draft-mode.js.map