next-sanity
Version:
Sanity.io toolkit for Next.js
26 lines (25 loc) • 958 B
JavaScript
import { SIGNATURE_HEADER_NAME, isValidSignature } from "@sanity/webhook";
/**
* Handles parsing the body JSON, and validating its signature. Also waits for Content Lake eventual consistency so you can run your queries
* without worrying about getting stale data.
* @public
*/
async function parseBody(req, secret, waitForContentLakeEventualConsistency = true) {
const signature = req.headers.get(SIGNATURE_HEADER_NAME);
if (!signature) {
console.error("Missing signature header");
return {
body: null,
isValidSignature: null
};
}
const body = await req.text();
const validSignature = secret ? await isValidSignature(body, signature, secret.trim()) : null;
if (validSignature !== false && waitForContentLakeEventualConsistency) await new Promise((resolve) => setTimeout(resolve, 3e3));
return {
body: body.trim() ? JSON.parse(body) : null,
isValidSignature: validSignature
};
}
export { parseBody };
//# sourceMappingURL=index.js.map