码桶
发现社区成员的开源项目
_webhook.js893 B
export async function fireWebhook(kv, event) {
if (!kv) return;
try {
const raw = await kv.get('APP_SETTINGS');
if (!raw) return;
const settings = JSON.parse(raw);
if (!settings.webhookUrl) return;
await fetch(settings.webhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ event: event.type, timestamp: new Date().toISOString(), ...event })
});
} catch (e) {
console.error('Webhook delivery failed:', e.message);
try {
await kv.put('WEBHOOK_LAST_ERROR', JSON.stringify({
timestamp: new Date().toISOString(),
error: e.message
}), { expirationTtl: 86400 });
} catch (_kvErr) {
// Ignore KV write failures to avoid masking the original error
}
}
}