From e843b72edb442b4ae04ab273d46b44d92e583806 Mon Sep 17 00:00:00 2001 From: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com> Date: Tue, 23 Aug 2022 14:56:48 +0000 Subject: [PATCH] fix: type errors --- bot.ts | 2 ++ handlers/members/GUILD_MEMBERS_CHUNK.ts | 4 ++-- helpers/interactions/sendInteractionResponse.ts | 8 -------- transformers/presence.ts | 13 ++----------- transformers/reverse/applicationCommand.ts | 2 +- transformers/reverse/applicationCommandOption.ts | 2 +- .../reverse/applicationCommandOptionChoice.ts | 2 +- .../reverse/applicationCommandPermission.ts | 2 +- transformers/reverse/attachment.ts | 2 +- transformers/reverse/auditLogEntry.ts | 2 +- transformers/reverse/emoji.ts | 2 +- transformers/reverse/gatewayBot.ts | 2 +- transformers/reverse/presence.ts | 6 ++++-- transformers/reverse/widgetSettings.ts | 2 +- types/shared.ts | 16 ++++++++++++++++ 15 files changed, 35 insertions(+), 32 deletions(-) diff --git a/bot.ts b/bot.ts index ce19dd5f2..e9f9dc1d3 100644 --- a/bot.ts +++ b/bot.ts @@ -409,6 +409,7 @@ export interface Transformers { user: (bot: Bot, payload: User) => DiscordUser; team: (bot: Bot, payload: Team) => DiscordTeam; application: (bot: Bot, payload: Application) => DiscordApplication; + snowflake: (snowflake: bigint) => string; }; snowflake: (snowflake: string) => bigint; gatewayBot: (payload: DiscordGetGatewayBot) => GetGatewayBot; @@ -468,6 +469,7 @@ export function createTransformers(options: Partial) { user: options.reverse?.user || transformUserToDiscordUser, team: options.reverse?.team || transformTeamToDiscordTeam, application: options.reverse?.application || transformApplicationToDiscordApplication, + snowflake: options.reverse?.snowflake || bigintToSnowflake, }, automodRule: options.automodRule || transformAutoModerationRule, automodActionExecution: options.automodActionExecution || transformAutoModerationActionExecution, diff --git a/handlers/members/GUILD_MEMBERS_CHUNK.ts b/handlers/members/GUILD_MEMBERS_CHUNK.ts index 4e0fba27a..99aa05695 100644 --- a/handlers/members/GUILD_MEMBERS_CHUNK.ts +++ b/handlers/members/GUILD_MEMBERS_CHUNK.ts @@ -1,6 +1,6 @@ import { Bot } from "../../bot.ts"; -import { statusTypes } from "../../transformers/presence.ts"; import { DiscordGatewayPayload, DiscordGuildMembersChunk } from "../../types/discord.ts"; +import { PresenceStatus } from "../../types/shared.ts"; export async function handleGuildMembersChunk(bot: Bot, data: DiscordGatewayPayload) { const payload = data.d as DiscordGuildMembersChunk; @@ -24,7 +24,7 @@ export async function handleGuildMembersChunk(bot: Bot, data: DiscordGatewayPayl presences: payload.presences?.map((presence) => ({ user: bot.transformers.user(bot, presence.user), guildId, - status: statusTypes[presence.status], + status: PresenceStatus[presence.status], activities: presence.activities.map((activity) => bot.transformers.activity(bot, activity)), clientStatus: { desktop: presence.client_status.desktop, diff --git a/helpers/interactions/sendInteractionResponse.ts b/helpers/interactions/sendInteractionResponse.ts index bd7247965..97392cd03 100644 --- a/helpers/interactions/sendInteractionResponse.ts +++ b/helpers/interactions/sendInteractionResponse.ts @@ -99,14 +99,6 @@ export interface InteractionApplicationCommandCallbackData { choices?: ApplicationCommandOptionChoice[]; } -/* https://discord.com/developers/docs/resources/channel#message-object-message-flags */ -export enum ApplicationCommandFlags { - /* Do not include any embeds when serialising this message */ - SuppressEmbeds = 1 << 2, - /** Only visible to the user who invoked the interaction */ - Ephemeral = 1 << 6, -} - /** https://discord.com/developers/docs/interactions/slash-commands#applicationcommandoptionchoice */ export interface ApplicationCommandOptionChoice { /** 1-100 character choice name */ diff --git a/transformers/presence.ts b/transformers/presence.ts index 403ff7e3e..b8e2e13f5 100644 --- a/transformers/presence.ts +++ b/transformers/presence.ts @@ -1,16 +1,8 @@ import { Bot } from "../bot.ts"; import { DiscordPresenceUpdate } from "../types/discord.ts"; -import { Optionalize } from "../types/shared.ts"; +import { Optionalize, PresenceStatus } from "../types/shared.ts"; import { UserToggles } from "./toggles/user.ts"; -export const statusTypes = Object.freeze({ - online: 0, - dnd: 1, - idle: 2, - invisible: 3, - offline: 4, -}); - export function transformPresence(bot: Bot, payload: DiscordPresenceUpdate) { const presence = { user: { @@ -26,7 +18,7 @@ export function transformPresence(bot: Bot, payload: DiscordPresenceUpdate) { toggles: new UserToggles(payload.user), }, guildId: bot.transformers.snowflake(payload.guild_id), - status: statusTypes[payload.status], + status: PresenceStatus[payload.status], activities: payload.activities.map((activity) => bot.transformers.activity(bot, activity)), desktop: payload.client_status.desktop, mobile: payload.client_status.mobile, @@ -37,4 +29,3 @@ export function transformPresence(bot: Bot, payload: DiscordPresenceUpdate) { } export interface PresenceUpdate extends ReturnType {} -export type StatusTypes = keyof typeof statusTypes; diff --git a/transformers/reverse/applicationCommand.ts b/transformers/reverse/applicationCommand.ts index 593b7afa6..153ade139 100644 --- a/transformers/reverse/applicationCommand.ts +++ b/transformers/reverse/applicationCommand.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordApplicationCommand } from "../../deps.ts"; +import { DiscordApplicationCommand } from "../../types/discord.ts"; import { ApplicationCommand } from "../applicationCommand.ts"; export function transformApplicationCommandToDiscordApplicationCommand( diff --git a/transformers/reverse/applicationCommandOption.ts b/transformers/reverse/applicationCommandOption.ts index 4954b163e..044e2186b 100644 --- a/transformers/reverse/applicationCommandOption.ts +++ b/transformers/reverse/applicationCommandOption.ts @@ -1,6 +1,6 @@ import { Bot } from "../../bot.ts"; +import { DiscordApplicationCommandOption } from "../../types/discord.ts"; import { ApplicationCommandOption } from "../applicationCommandOption.ts"; -import { DiscordApplicationCommandOption } from "../../deps.ts"; export function transformApplicationCommandOptionToDiscordApplicationCommandOption( bot: Bot, diff --git a/transformers/reverse/applicationCommandOptionChoice.ts b/transformers/reverse/applicationCommandOptionChoice.ts index 1a0bed084..5334c4488 100644 --- a/transformers/reverse/applicationCommandOptionChoice.ts +++ b/transformers/reverse/applicationCommandOptionChoice.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordApplicationCommandOptionChoice } from "../../deps.ts"; +import { DiscordApplicationCommandOptionChoice } from "../../types/discord.ts"; import { ApplicationCommandOptionChoice } from "../applicationCommandOptionChoice.ts"; export function transformApplicationCommandOptionChoiceToDiscordApplicationCommandOptionChoice( diff --git a/transformers/reverse/applicationCommandPermission.ts b/transformers/reverse/applicationCommandPermission.ts index 8629939cd..5bf9d347d 100644 --- a/transformers/reverse/applicationCommandPermission.ts +++ b/transformers/reverse/applicationCommandPermission.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordGuildApplicationCommandPermissions } from "../../deps.ts"; +import { DiscordGuildApplicationCommandPermissions } from "../../types/discord.ts"; import { ApplicationCommandPermission } from "../applicationCommandPermission.ts"; export function transformApplicationCommandPermissionToDiscordApplicationCommandPermission( diff --git a/transformers/reverse/attachment.ts b/transformers/reverse/attachment.ts index 782004285..374713cd2 100644 --- a/transformers/reverse/attachment.ts +++ b/transformers/reverse/attachment.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordAttachment } from "../../deps.ts"; +import { DiscordAttachment } from "../../types/discord.ts"; import { Attachment } from "../attachment.ts"; export function transformAttachmentToDiscordAttachment(bot: Bot, payload: Attachment): DiscordAttachment { diff --git a/transformers/reverse/auditLogEntry.ts b/transformers/reverse/auditLogEntry.ts index 3a6f5a9dd..570bc1229 100644 --- a/transformers/reverse/auditLogEntry.ts +++ b/transformers/reverse/auditLogEntry.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordAuditLogEntry } from "../../deps.ts"; +import { DiscordAuditLogEntry } from "../../types/discord.ts"; import { AuditLogEntry } from "../auditLogEntry.ts"; export function transformAuditLogEntryToDiscordAuditLogEntry(bot: Bot, payload: AuditLogEntry): DiscordAuditLogEntry { diff --git a/transformers/reverse/emoji.ts b/transformers/reverse/emoji.ts index d5a70b38d..f7f6217fe 100644 --- a/transformers/reverse/emoji.ts +++ b/transformers/reverse/emoji.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordEmoji } from "../../deps.ts"; +import { DiscordEmoji } from "../../types/discord.ts"; import { Emoji } from "../emoji.ts"; export function transformEmojiToDiscordEmoji(bot: Bot, payload: Emoji): DiscordEmoji { diff --git a/transformers/reverse/gatewayBot.ts b/transformers/reverse/gatewayBot.ts index 991764cb2..a6d59c698 100644 --- a/transformers/reverse/gatewayBot.ts +++ b/transformers/reverse/gatewayBot.ts @@ -1,4 +1,4 @@ -import { DiscordGetGatewayBot } from "../../deps.ts"; +import { DiscordGetGatewayBot } from "../../types/discord.ts"; import { GetGatewayBot } from "../gatewayBot.ts"; export function transformGatewayBotToDiscordGatewayBot(payload: GetGatewayBot): DiscordGetGatewayBot { diff --git a/transformers/reverse/presence.ts b/transformers/reverse/presence.ts index 4a92e9d8f..5ccdd3700 100644 --- a/transformers/reverse/presence.ts +++ b/transformers/reverse/presence.ts @@ -1,5 +1,6 @@ import { Bot } from "../../bot.ts"; -import { DiscordPresenceUpdate } from "../../deps.ts"; +import { DiscordPresenceUpdate } from "../../types/discord.ts"; +import { PresenceStatus } from "../../types/shared.ts"; import { PresenceUpdate } from "../presence.ts"; export const reverseStatusTypes = Object.freeze( @@ -15,7 +16,8 @@ export function transformPresenceToDiscordPresence(bot: Bot, payload: PresenceUp return { user: bot.transformers.reverse.user(bot, payload.user), guild_id: bot.transformers.reverse.snowflake(payload.guildId), - status: reverseStatusTypes[payload.status] ?? "offline", + // TODO: find better way + status: (PresenceStatus[payload.status] ?? "offline") as "offline", activities: payload.activities.map((activity) => bot.transformers.reverse.activity(bot, activity)), client_status: { desktop: payload.desktop, diff --git a/transformers/reverse/widgetSettings.ts b/transformers/reverse/widgetSettings.ts index 44348088a..ea77a9835 100644 --- a/transformers/reverse/widgetSettings.ts +++ b/transformers/reverse/widgetSettings.ts @@ -1,5 +1,5 @@ import { Bot } from "../../bot.ts"; -import { DiscordGuildWidgetSettings } from "../../deps.ts"; +import { DiscordGuildWidgetSettings } from "../../types/discord.ts"; import { GuildWidgetSettings } from "../widgetSettings.ts"; export function transformWidgetSettingsToDiscordWidgetSettings( diff --git a/types/shared.ts b/types/shared.ts index 7d4c20d92..219d34135 100644 --- a/types/shared.ts +++ b/types/shared.ts @@ -1,3 +1,19 @@ +export enum PresenceStatus { + online, + dnd, + idle, + invisible, + offline, +} + +/* https://discord.com/developers/docs/resources/channel#message-object-message-flags */ +export enum ApplicationCommandFlags { + /** Do not include any embeds when serialising this message */ + SuppressEmbeds = 1 << 2, + /** Only visible to the user who invoked the interaction */ + Ephemeral = 1 << 6, +} + /** https://discord.com/developers/docs/resources/user#user-object-premium-types */ export enum PremiumTypes { None,