All files / discord/src/utils payloads.ts

0% Statements 0/8
0% Branches 0/4
0% Functions 0/4
0% Lines 0/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                                                                                 
import { FlarieMessageEphemeral } from '@flarie/core';
import { toFlarieMessageEphemeral } from '@flarie/core';
import { toFlarieMessage } from '@flarie/core';
import { FlarieMessage } from '@flarie/core';
import { BaseMessageOptions, InteractionReplyOptions, MessageCreateOptions } from 'discord.js';
 
function toDiscordBasePayload(message: string | FlarieMessage): BaseMessageOptions {
  if (typeof message === 'string') {
    return {
      content: message,
    };
  }
 
  return {
    content: message.content,
    embeds: message.embeds?.map((embed) => ({
      title: embed.title,
      description: embed.description,
      // TODO: Convert hex to whatever format discord wants
      // color: embed.color
    })),
  };
}
 
export function toDiscordSendPayload(rawMessage: string | FlarieMessage): MessageCreateOptions {
  const message = toFlarieMessage(rawMessage);
 
  return {
    ...toDiscordBasePayload(message),
  };
}
 
export function toDiscordReplyPayload(rawMessage: string | FlarieMessageEphemeral): InteractionReplyOptions {
  const message = toFlarieMessageEphemeral(rawMessage);
 
  return {
    ...toDiscordBasePayload(message),
    ephemeral: message.ephemeral ?? false,
  };
}