chore: migrate to oxlint and oxfmt
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
This commit is contained in:
@@ -2,33 +2,17 @@ import { Routes } from "discord-api-types/v10";
|
||||
|
||||
import { loadWebMediaRaw } from "../web/media.js";
|
||||
import { normalizeEmojiName, resolveDiscordRest } from "./send.shared.js";
|
||||
import type {
|
||||
DiscordEmojiUpload,
|
||||
DiscordReactOpts,
|
||||
DiscordStickerUpload,
|
||||
} from "./send.types.js";
|
||||
import {
|
||||
DISCORD_MAX_EMOJI_BYTES,
|
||||
DISCORD_MAX_STICKER_BYTES,
|
||||
} from "./send.types.js";
|
||||
import type { DiscordEmojiUpload, DiscordReactOpts, DiscordStickerUpload } from "./send.types.js";
|
||||
import { DISCORD_MAX_EMOJI_BYTES, DISCORD_MAX_STICKER_BYTES } from "./send.types.js";
|
||||
|
||||
export async function listGuildEmojisDiscord(
|
||||
guildId: string,
|
||||
opts: DiscordReactOpts = {},
|
||||
) {
|
||||
export async function listGuildEmojisDiscord(guildId: string, opts: DiscordReactOpts = {}) {
|
||||
const rest = resolveDiscordRest(opts);
|
||||
return await rest.get(Routes.guildEmojis(guildId));
|
||||
}
|
||||
|
||||
export async function uploadEmojiDiscord(
|
||||
payload: DiscordEmojiUpload,
|
||||
opts: DiscordReactOpts = {},
|
||||
) {
|
||||
export async function uploadEmojiDiscord(payload: DiscordEmojiUpload, opts: DiscordReactOpts = {}) {
|
||||
const rest = resolveDiscordRest(opts);
|
||||
const media = await loadWebMediaRaw(
|
||||
payload.mediaUrl,
|
||||
DISCORD_MAX_EMOJI_BYTES,
|
||||
);
|
||||
const media = await loadWebMediaRaw(payload.mediaUrl, DISCORD_MAX_EMOJI_BYTES);
|
||||
const contentType = media.contentType?.toLowerCase();
|
||||
if (
|
||||
!contentType ||
|
||||
@@ -37,9 +21,7 @@ export async function uploadEmojiDiscord(
|
||||
throw new Error("Discord emoji uploads require a PNG, JPG, or GIF image");
|
||||
}
|
||||
const image = `data:${contentType};base64,${media.buffer.toString("base64")}`;
|
||||
const roleIds = (payload.roleIds ?? [])
|
||||
.map((id) => id.trim())
|
||||
.filter(Boolean);
|
||||
const roleIds = (payload.roleIds ?? []).map((id) => id.trim()).filter(Boolean);
|
||||
return await rest.post(Routes.guildEmojis(payload.guildId), {
|
||||
body: {
|
||||
name: normalizeEmojiName(payload.name, "Emoji name"),
|
||||
@@ -54,26 +36,15 @@ export async function uploadStickerDiscord(
|
||||
opts: DiscordReactOpts = {},
|
||||
) {
|
||||
const rest = resolveDiscordRest(opts);
|
||||
const media = await loadWebMediaRaw(
|
||||
payload.mediaUrl,
|
||||
DISCORD_MAX_STICKER_BYTES,
|
||||
);
|
||||
const media = await loadWebMediaRaw(payload.mediaUrl, DISCORD_MAX_STICKER_BYTES);
|
||||
const contentType = media.contentType?.toLowerCase();
|
||||
if (
|
||||
!contentType ||
|
||||
!["image/png", "image/apng", "application/json"].includes(contentType)
|
||||
) {
|
||||
throw new Error(
|
||||
"Discord sticker uploads require a PNG, APNG, or Lottie JSON file",
|
||||
);
|
||||
if (!contentType || !["image/png", "image/apng", "application/json"].includes(contentType)) {
|
||||
throw new Error("Discord sticker uploads require a PNG, APNG, or Lottie JSON file");
|
||||
}
|
||||
return await rest.post(Routes.guildStickers(payload.guildId), {
|
||||
body: {
|
||||
name: normalizeEmojiName(payload.name, "Sticker name"),
|
||||
description: normalizeEmojiName(
|
||||
payload.description,
|
||||
"Sticker description",
|
||||
),
|
||||
description: normalizeEmojiName(payload.description, "Sticker description"),
|
||||
tags: normalizeEmojiName(payload.tags, "Sticker tags"),
|
||||
files: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user