UNPKG

next-sanity

Version:
38 lines (37 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); var previewUrlSecret = require("@sanity/preview-url-secret"), constants = require("@sanity/preview-url-secret/constants"), headers = require("next/headers"), navigation = require("next/navigation"); function defineEnableDraftMode(options) { const { client } = options; return { GET: async (request) => { const { isValid, redirectTo = "/", studioPreviewPerspective } = await previewUrlSecret.validatePreviewUrl(client, request.url); if (!isValid) return new Response("Invalid secret", { status: 401 }); const draftModeStore = await headers.draftMode(); draftModeStore.isEnabled || draftModeStore.enable(); const dev = process.env.NODE_ENV !== "production", cookieStore = await headers.cookies(), cookie = cookieStore.get("__prerender_bypass"); return cookieStore.set({ name: "__prerender_bypass", value: cookie?.value, httpOnly: !0, path: "/", secure: !dev, sameSite: dev ? "lax" : "none" }), studioPreviewPerspective && cookieStore.set({ name: constants.perspectiveCookieName, value: studioPreviewPerspective, httpOnly: !0, path: "/", secure: !dev, sameSite: dev ? "lax" : "none" }), navigation.redirect(redirectTo); } }; } exports.defineEnableDraftMode = defineEnableDraftMode; //# sourceMappingURL=draft-mode.cjs.map