UNPKG

constatic

Version:

Constatic is a CLI for creating and managing modern TypeScript projects, providing an organized structure and features that streamline development.

57 lines (56 loc) 1.72 kB
// src/helpers/discord/emojis.ts import { Result } from "#lib/result.js"; var baseURL = "https://discord.com/api/v10"; async function getDiscordEmojis(token) { const response = await fetch(`${baseURL}/applications/${token.id}/emojis`, { headers: { Authorization: `Bot ${token.token}` } }); if (response.status !== 200) { return Result.fail("The provided token is invalid"); } const data = await response.json(); return Result.ok(data.items); } async function createDiscordEmoji(token, props) { const response = await fetch(`${baseURL}/applications/${token.id}/emojis`, { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bot ${token.token}` }, body: JSON.stringify(props) }); const data = await response.json(); if (response.status === 400 && data.code && data.code === 50035) { return Result.fail(data.code, 1); } if (!response.ok) { return Result.fail(data.message ?? response.statusText); } return Result.ok(data); } async function deleteDiscordEmoji(token, id) { const response = await fetch(`${baseURL}/applications/${token.id}/emojis/${id}`, { method: "DELETE", headers: { "Content-Type": "application/json", Authorization: `Bot ${token.token}` } }); if (response.status !== 204) { return Result.fail(response.statusText); } return Result.ok(true); } function formatEmojiName(name) { return name.trim().replaceAll(" ", "_").replaceAll("-", "_").split("_").filter((w) => w.length).join("_").toLowerCase(); } var discordEmojis = { get: getDiscordEmojis, create: createDiscordEmoji, delete: deleteDiscordEmoji, formatName: formatEmojiName }; export { discordEmojis };