next-sanity
Version:
Sanity.io toolkit for Next.js
27 lines (26 loc) • 1.07 kB
JavaScript
"use server";
import { t as sanitizePerspective } from "../../utils.js";
import { perspectiveCookieName } from "@sanity/preview-url-secret/constants";
import { cookies, draftMode } from "next/headers";
import { revalidateTag } from "next/cache";
async function revalidateSyncTags(tags) {
revalidateTag("sanity:fetch-sync-tags", "max");
for (const _tag of tags) {
const tag = `sanity:${_tag}`;
revalidateTag(tag, { expire: 0 });
console.log(`<SanityLive /> revalidated tag: ${tag}`);
}
}
async function setPerspectiveCookie(perspective) {
if (!(await draftMode()).isEnabled) return;
const sanitizedPerspective = sanitizePerspective(perspective, "drafts");
if (perspective !== sanitizedPerspective) throw new Error(`Invalid perspective`, { cause: perspective });
(await cookies()).set(perspectiveCookieName, Array.isArray(sanitizedPerspective) ? sanitizedPerspective.join(",") : sanitizedPerspective, {
httpOnly: true,
path: "/",
secure: true,
sameSite: "none"
});
}
export { revalidateSyncTags, setPerspectiveCookie };
//# sourceMappingURL=index.js.map