Openstatus www.openstatus.dev
at main 123 lines 3.6 kB view raw
1import type { NotificationProvider } from "@openstatus/db/src/schema"; 2import type { NotificationContext } from "@openstatus/notification-base"; 3import { 4 sendAlert as sendDiscordAlert, 5 sendDegraded as sendDiscordDegraded, 6 sendRecovery as sendDiscordRecovery, 7} from "@openstatus/notification-discord"; 8import { 9 sendAlert as sendEmailAlert, 10 sendDegraded as sendEmailDegraded, 11 sendRecovery as sendEmailRecovery, 12} from "@openstatus/notification-emails"; 13import { 14 sendAlert as sendGoogleChatAlert, 15 sendDegraded as sendGoogleChatDegraded, 16 sendRecovery as sendGoogleChatRecovery, 17} from "@openstatus/notification-google-chat"; 18import { 19 sendAlert as sendNtfyAlert, 20 sendDegraded as sendNtfyDegraded, 21 sendRecovery as sendNtfyRecovery, 22} from "@openstatus/notification-ntfy"; 23import { 24 sendAlert as sendOpsGenieAlert, 25 sendDegraded as sendOpsGenieDegraded, 26 sendRecovery as sendOpsGenieRecovery, 27} from "@openstatus/notification-opsgenie"; 28import { 29 sendDegraded as sendPagerDutyDegraded, 30 sendRecovery as sendPagerDutyRecovery, 31 sendAlert as sendPagerdutyAlert, 32} from "@openstatus/notification-pagerduty"; 33import { 34 sendAlert as sendSlackAlert, 35 sendDegraded as sendSlackDegraded, 36 sendRecovery as sendSlackRecovery, 37} from "@openstatus/notification-slack"; 38import { 39 sendAlert as sendTelegramAlert, 40 sendDegraded as sendTelegramDegraded, 41 sendRecovery as sendTelegramRecovery, 42} from "@openstatus/notification-telegram"; 43import { 44 sendAlert as sendSmsAlert, 45 sendDegraded as sendSmsDegraded, 46 sendRecovery as sendSmsRecovery, 47} from "@openstatus/notification-twillio-sms"; 48import { 49 sendAlert as sendWhatsappAlert, 50 sendDegraded as sendWhatsappDegraded, 51 sendRecovery as sendWhatsappRecovery, 52} from "@openstatus/notification-twillio-whatsapp"; 53import { 54 sendAlert as sendWebhookAlert, 55 sendDegraded as sendWebhookDegraded, 56 sendRecovery as sendWebhookRecovery, 57} from "@openstatus/notification-webhook"; 58 59type SendNotification = (props: NotificationContext) => Promise<void>; 60 61type Notif = { 62 sendAlert: SendNotification; 63 sendRecovery: SendNotification; 64 sendDegraded: SendNotification; 65}; 66 67export const providerToFunction: Record<NotificationProvider, Notif> = { 68 discord: { 69 sendAlert: sendDiscordAlert, 70 sendRecovery: sendDiscordRecovery, 71 sendDegraded: sendDiscordDegraded, 72 }, 73 email: { 74 sendAlert: sendEmailAlert, 75 sendRecovery: sendEmailRecovery, 76 sendDegraded: sendEmailDegraded, 77 }, 78 "google-chat": { 79 sendAlert: sendGoogleChatAlert, 80 sendRecovery: sendGoogleChatRecovery, 81 sendDegraded: sendGoogleChatDegraded, 82 }, 83 ntfy: { 84 sendAlert: sendNtfyAlert, 85 sendRecovery: sendNtfyRecovery, 86 sendDegraded: sendNtfyDegraded, 87 }, 88 opsgenie: { 89 sendAlert: sendOpsGenieAlert, 90 sendRecovery: sendOpsGenieRecovery, 91 sendDegraded: sendOpsGenieDegraded, 92 }, 93 pagerduty: { 94 sendAlert: sendPagerdutyAlert, 95 sendRecovery: sendPagerDutyRecovery, 96 sendDegraded: sendPagerDutyDegraded, 97 }, 98 slack: { 99 sendAlert: sendSlackAlert, 100 sendRecovery: sendSlackRecovery, 101 sendDegraded: sendSlackDegraded, 102 }, 103 sms: { 104 sendAlert: sendSmsAlert, 105 sendRecovery: sendSmsRecovery, 106 sendDegraded: sendSmsDegraded, 107 }, 108 webhook: { 109 sendAlert: sendWebhookAlert, 110 sendRecovery: sendWebhookRecovery, 111 sendDegraded: sendWebhookDegraded, 112 }, 113 whatsapp: { 114 sendAlert: sendWhatsappAlert, 115 sendRecovery: sendWhatsappRecovery, 116 sendDegraded: sendWhatsappDegraded, 117 }, 118 telegram: { 119 sendAlert: sendTelegramAlert, 120 sendRecovery: sendTelegramRecovery, 121 sendDegraded: sendTelegramDegraded, 122 }, 123};