mirror of
https://github.com/vercel/next.js.git
synced 2026-09-20 02:25:18 +08:00
4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
32 lines
996 B
TypeScript
32 lines
996 B
TypeScript
import { getPreviewPostBySlug } from "@lib/api";
|
|
|
|
export default async function preview(req, res) {
|
|
const { secret, slug } = req.query;
|
|
|
|
if (secret !== process.env.DOTCMS_PREVIEW_SECRET || !slug) {
|
|
return res.status(401).json({ message: "Invalid token" });
|
|
}
|
|
|
|
// Fetch the headless CMS to check if the provided `slug` exists
|
|
const post = await getPreviewPostBySlug(slug, true);
|
|
|
|
// If the slug doesn't exist prevent preview mode from being enabled
|
|
if (Object.keys(post.post).length < 1) {
|
|
return res.status(401).json({ message: "Invalid slug" });
|
|
}
|
|
|
|
// Enable Draft Mode by setting the cookie
|
|
res.setDraftMode({ enable: true });
|
|
|
|
// Redirect to the path from the fetched post
|
|
const url = `/posts/${post.post.urlTitle}`;
|
|
res.setHeader("Content-Type", "text/html");
|
|
res.write(
|
|
`<!DOCTYPE html><html><head><meta http-equiv="Refresh" content="0; url=${url}" />
|
|
<script>window.location.href = '${url}'</script>
|
|
</head>
|
|
</html>`,
|
|
);
|
|
res.end();
|
|
}
|