import "server-only"; import { request as graphqlRequest } from "graphql-request"; import { env } from "@/env/server.mjs"; import type { Data } from "@/types/request"; import type { DocumentNode } from "graphql"; import ContentstackLivePreview from "@contentstack/live-preview-utils"; export async function request( query: string | DocumentNode, variables?: {} ): Promise> { try { const hash = ContentstackLivePreview.hash; const response = await graphqlRequest({ document: query, requestHeaders: { access_token: env.CMS_ACCESS_TOKEN, "Content-Type": "application/json", preview_token: env.CMS_PREVIEW_TOKEN, live_preview: hash, }, url: env.CMS_PREVIEW_URL, variables, }); return { data: response }; } catch (error) { console.error(error); throw new Error("Something went wrong"); } }