lilybird
Version:
A bun-first discord api wrapper written in TS
79 lines (78 loc) • 4.62 kB
JavaScript
const CDNURL = "https://cdn.discordapp.com/";
function getFormat(hash, format, allowsGIF = true) {
if (!allowsGIF && format === ".gif")
throw new Error("Invalid image format");
if (typeof format !== "undefined")
return format;
if (hash.startsWith("a_"))
return ".gif";
return ".jpg";
}
function getSize(size) {
if (typeof size === "undefined")
return "";
return `?size=${size}`;
}
export function customEmojiURL(emojiId, options) {
return `${CDNURL}emojis/${emojiId}${getFormat(emojiId, options?.format)}${getSize(options?.size)}`;
}
export function guildIconURL(guildId, guildIcon, options) {
return `${CDNURL}icons/${guildId}/${guildIcon}${getFormat(guildIcon, options?.format)}${getSize(options?.size)}`;
}
export function guildSplashURL(guildId, guildSplash, options) {
return `${CDNURL}splashes/${guildId}/${guildSplash}${getFormat(guildSplash, options?.format, false)}${getSize(options?.size)}`;
}
export function guildDiscoverySplashURL(guildId, guildDiscoverySplash, options) {
return `${CDNURL}discovery-splashes/${guildId}/${guildDiscoverySplash}${getFormat(guildDiscoverySplash, options?.format, false)}${getSize(options?.size)}`;
}
export function guildBannerURL(guildId, guildBanner, options) {
return `${CDNURL}banners/${guildId}/${guildBanner}${getFormat(guildBanner, options?.format)}${getSize(options?.size)}`;
}
export function userBannerURL(userId, userBanner, options) {
return `${CDNURL}banners/${userId}/${userBanner}${getFormat(userBanner, options?.format)}${getSize(options?.size)}`;
}
export function defaultUserAvatarURL(index, options) {
return `${CDNURL}embed/avatars/${index}${".png"}${getSize(options?.size)}`;
}
export function userAvatarURL(userId, userAvatar, options) {
return `${CDNURL}avatars/${userId}/${userAvatar}${getFormat(userAvatar, options?.format)}${getSize(options?.size)}`;
}
export function guildMemberAvatarURL(guildId, userId, memberAvatar, options) {
return `${CDNURL}guilds/${guildId}/users/${userId}/avatars/${memberAvatar}${getFormat(memberAvatar, options?.format)}${getSize(options?.size)}`;
}
export function userAvatarDecorationURL(userId, userAvatarDecoration, options) {
return `${CDNURL}avatar-decorations/${userId}/${userAvatarDecoration}${".png"}${getSize(options?.size)}`;
}
export function applicationIconURL(applicationId, icon, options) {
return `${CDNURL}app-icons/${applicationId}/${icon}${getFormat(icon, options?.format, false)}${getSize(options?.size)}`;
}
export function applicationCoverURL(applicationId, cover, options) {
return `${CDNURL}app-icons/${applicationId}/${cover}${getFormat(cover, options?.format, false)}${getSize(options?.size)}`;
}
export function applicationAssetURL(applicationId, assetId, options) {
return `${CDNURL}app-assets/${applicationId}/${assetId}${getFormat(assetId, options?.format, false)}${getSize(options?.size)}`;
}
export function achievementIconURL(applicationId, achievementId, icon, options) {
return `${CDNURL}app-assets/${applicationId}/achievements/${achievementId}/icons/${icon}${getFormat(icon, options?.format, false)}${getSize(options?.size)}`;
}
export function storePageAssetURL(applicationId, assetId, options) {
return `${CDNURL}app-assets/${applicationId}/store/${assetId}${getFormat(assetId, options?.format, false)}${getSize(options?.size)}`;
}
export function stickerPackBannerURL(applicationId, stickerPackBannerAssetId, options) {
return `${CDNURL}app-assets/${applicationId}/store/${stickerPackBannerAssetId}${getFormat(stickerPackBannerAssetId, options?.format, false)}${getSize(options?.size)}`;
}
export function teamIconURL(teamId, teamIcon, options) {
return `${CDNURL}team-icons/${teamId}/${teamIcon}${getFormat(teamIcon, options?.format, false)}${getSize(options?.size)}`;
}
export function stickerURL(stickerId, options) {
return `${CDNURL}sticker/${stickerId}${getFormat(stickerId, options?.format)}${getSize(options?.size)}`;
}
export function roleIconURL(roleId, roleIcon, options) {
return `${CDNURL}role-icons/${roleId}/${roleIcon}${getFormat(roleIcon, options?.format, false)}${getSize(options?.size)}`;
}
export function guildScheduledEventCoverURL(eventId, eventCover, options) {
return `${CDNURL}guild-events/${eventId}/${eventCover}${getFormat(eventCover, options?.format, false)}${getSize(options?.size)}`;
}
export function guildMemberBannerURL(guildId, userId, memberBanner, options) {
return `${CDNURL}guilds/${guildId}/users/${userId}/banners/${memberBanner}${getFormat(memberBanner, options?.format)}${getSize(options?.size)}`;
}