From f62b8c1854c18d10b9d7f991731c170a7fe0124a Mon Sep 17 00:00:00 2001 From: Yuzu Date: Sat, 20 Aug 2022 02:36:42 -0500 Subject: [PATCH] fix: embed reverse transformer which fixes embeds being in snake case --- packages/core/src/structures/embed.ts | 56 ++++++++++++++++++++++++- packages/core/src/structures/message.ts | 11 ++--- 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/packages/core/src/structures/embed.ts b/packages/core/src/structures/embed.ts index 7d2d495..dbf6c74 100644 --- a/packages/core/src/structures/embed.ts +++ b/packages/core/src/structures/embed.ts @@ -47,7 +47,7 @@ export interface Embed { }; } -export function embed(data: Embed): DiscordEmbed { +export function NewEmbed(data: Embed): DiscordEmbed { return { title: data.title, timestamp: data.timestamp, @@ -98,3 +98,57 @@ export function embed(data: Embed): DiscordEmbed { }; } +export const embed = NewEmbed; + +export function NewEmbedR(data: DiscordEmbed): Embed { + return { + title: data.title, + timestamp: data.timestamp, + type: data.type, + url: data.url, + color: data.color, + description: data.description, + author: data.author && { + name: data.author.name, + url: data.author.url, + iconURL: data.author.icon_url, + proxyIconURL: data.author.proxy_icon_url, + }, + footer: data.footer && { + text: data.footer.text, + iconURL: data.footer.icon_url, + proxyIconURL: data.footer.proxy_icon_url, + }, + fields: data.fields?.map(f => { + return { + name: f.name, + value: f.value, + inline: f.inline, + }; + }), + thumbnail: data.thumbnail && { + url: data.thumbnail.url, + proxyURL: data.thumbnail.proxy_url, + width: data.thumbnail.width, + height: data.thumbnail.height, + }, + video: { + url: data.video?.url, + proxyURL: data.video?.proxy_url, + width: data.video?.width, + height: data.video?.height, + }, + image: data.image && { + url: data.image.url, + proxyURL: data.image.proxy_url, + width: data.image.width, + height: data.image.height, + }, + provider: { + url: data.provider?.url, + name: data.provider?.name, + }, + }; +} + +export const embed_ = NewEmbedR; diff --git a/packages/core/src/structures/message.ts b/packages/core/src/structures/message.ts index 6321306..91ad867 100644 --- a/packages/core/src/structures/message.ts +++ b/packages/core/src/structures/message.ts @@ -3,7 +3,6 @@ import type { Model } from './base'; import type { Session } from '../biscuit'; import type { AllowedMentionsTypes, - DiscordEmbed, DiscordMessage, DiscordMessageComponents, DiscordUser, @@ -15,6 +14,8 @@ import type { import type { Channel } from './channels'; import type { Component } from './components'; import type { MessageInteraction } from './interactions'; +import type { StickerItem } from './sticker'; +import type { Embed } from './embed'; import { MessageFlags } from '../utils/util'; import { Snowflake } from '../snowflakes'; import { ChannelFactory, ThreadChannel } from './channels'; @@ -25,7 +26,7 @@ import { ComponentFactory } from './components'; import { MessageReaction } from './message-reaction'; import { Application, NewTeam } from './application'; import { InteractionFactory } from './interactions'; -import type { StickerItem } from './sticker'; +import { NewEmbedR } from './embed'; import { CHANNEL_PIN, @@ -79,7 +80,7 @@ export interface CreateMessageReference { * Posts a message to a guild text or DM channel. Returns a message object. Fires a Message Create Gateway event. */ export interface CreateMessage { - embeds?: DiscordEmbed[]; + embeds?: Embed[]; content?: string; allowedMentions?: AllowedMentions; files?: FileContent[]; @@ -163,7 +164,7 @@ export class Message implements Model { this.attachments = data.attachments.map( attachment => new Attachment(session, attachment) ); - this.embeds = data.embeds; + this.embeds = data.embeds.map(NewEmbedR); if (data.interaction) { this.interaction = InteractionFactory.fromMessage( @@ -328,7 +329,7 @@ export class Message implements Model { attachments: Attachment[]; /** any embedded content */ - embeds: DiscordEmbed[]; + embeds: Embed[]; /** member properties for this message's author */ member?: Member;