UNPKG

@prismicio/next

Version:

Helpers to integrate Prismic into Next.js apps

45 lines (38 loc) 1.11 kB
import type { NextApiRequestLike, NextApiResponseLike } from "./types" /** Configuration for `exitPreview()`. */ export type ExitPreviewAPIRouteConfig = { /** * The `req` object from a Next.js API route. * * @see Next.js API route docs: \<https://nextjs.org/docs/api-routes/introduction\> */ req?: NextApiRequestLike /** * The `res` object from a Next.js API route. * * @see Next.js API route docs: \<https://nextjs.org/docs/api-routes/introduction\> */ res: NextApiResponseLike } /** * Ends a Prismic preview session within a Next.js app. This function should be used in an API * route. * * @example * ;```typescript * // src/pages/api/exit-preview.js * * import { exitPreview } from "@prismicio/next" * * export default function handler(_req, res) { * return exitPreview({ res }) * } * ``` */ export function exitPreview(config: ExitPreviewAPIRouteConfig): void { config.res.clearPreviewData() // `Cache-Control` header is used to prevent CDN-level caching. config.res.setHeader("Cache-Control", "no-store") config.res.json({ success: true }) return }