UNPKG

next-sanity

Version:
49 lines (47 loc) 1.46 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var sanityWebhook = require('@sanity/webhook'); function _interopDefaultCompat(e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var sanityWebhook__default = /*#__PURE__*/_interopDefaultCompat(sanityWebhook); 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__default.default; 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 }; } exports.config = config; exports.parseBody = parseBody; //# sourceMappingURL=webhook.cjs.map