import { postJson } from '../utils/request' ; export type Webhook = { url : string ; type : string ; } ; export type WebhookPayload = { message : string ; level ? : string ; } ; type DiscordPayload = { content : string ; username ? : string ; avatar_url ? : string ; tts ? : boolean ; payload_json ? : string ; allowed_mentions ? : boolean ; } ; export const asDiscordPayload = ( { level , message } ) : DiscordPayload => { let prefix = '' ; switch ( level ) { case 'warn' : prefix = ':warning: ' ; break ; default : prefix = ':question: ' ; break ; } return { content : `${ prefix }${ message }` } ; } ; export const triggerWebhook = async ( webhook , { message , level = 'info' } ) : Promise < void > => { const { url , type } = webhook ; switch ( type ) { case 'discord' : { const res = await postJson ( { url , json : asDiscordPayload ( { message , level } ) } ) ; console . dir ( { res } ) ; break ; } default : break ; } } ;