UNPKG

next-sanity

Version:
37 lines (36 loc) 1.13 kB
import sanityWebhook from '@sanity/webhook'; const config = { api: { bodyParser: false }, runtime: "nodejs" }; async function _readBody(readable) { const chunks = []; for await (const chunk of readable) { chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk); } return Buffer.concat(chunks).toString("utf8"); } const { isValidSignature, SIGNATURE_HEADER_NAME } = sanityWebhook; async function parseBody(req, secret) { let waitForContentLakeEventualConsistency = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; let signature = req.headers[SIGNATURE_HEADER_NAME]; if (Array.isArray(signature)) { signature = signature[0]; } const body = await _readBody(req); const validSignature = secret ? isValidSignature(body, signature, secret.trim()) : null; if (validSignature !== false && waitForContentLakeEventualConsistency) { await new Promise(resolve => setTimeout(resolve, 1e3)); } return { body: body.trim() && JSON.parse(body), isValidSignature: validSignature }; } export { config, parseBody }; //# sourceMappingURL=webhook.js.map