UNPKG

webhok

Version:

An under-maintenance webhook client for discord to assist you into sending requests to webhooks.

78 lines (77 loc) 3.45 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.webhookClient = void 0; const axios_1 = __importDefault(require("axios")); const helper_1 = require("./helper"); var webhookClient; (function (webhookClient) { class WebhookController { options; constructor(options) { this.options = options; } async executeWebhook(url, data) { return new Promise(async (resolve, reject) => { await axios_1.default.post(url, data, { headers: { "Content-Type": "application/json", "User-Agent": "EasyWebhook_V1" }, responseType: "json" }).then((response) => { if (response.status === 204) { resolve({ response: { data: { message: "Successfully sent", payloadType: data.embeds == undefined || null ? "content" : "Embed", input: JSON.stringify(data) } } /* Soontm */ }); } }).catch((errorResponse) => { const errorData = errorResponse.response?.data; /* Just to be safe */ if (errorData.retry_after && errorResponse.response?.headers?.["x-ratelimit-reset-after"] && errorResponse.status == 429) { /* We know the individual is ratelimited 50% */ reject({ error: { data: { message: errorData.message, ratelimitType: !errorData.global ? "Local" : "Global", duration: helper_1.Helper.formatTime(errorResponse.response?.headers?.["x-ratelimit-reset-after"]) } } }); /* We know the individual is ratelimited 100% */ } else if (errorData.code !== undefined && errorData.code === 0 && errorData.message.includes("blocked")) { reject({ error: { data: { message: errorData.message, ratelimitType: "Global + Aggressive (IP Ban mode)", duration: "Unknown" } } }); } else { reject({ error: { data: { message: errorData.message, } } }); } }); }); } } webhookClient.WebhookController = WebhookController; })(webhookClient || (exports.webhookClient = webhookClient = {}));