summary refs log tree commit diff
path: root/src/util
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-03-09 17:35:52 +0100
committerRory& <root@rory.gay>2026-03-20 18:18:41 +0100
commit339a0fcbf42ce56e768bcd55ef036e78be2d2676 (patch)
tree3a63ef4e1647d1a5ed1ff6138180346eac21e0fe /src/util
parentMigrate MessageDelete*Event to satisfies, part of #1577 (diff)
downloadserver-ts-339a0fcbf42ce56e768bcd55ef036e78be2d2676.tar.xz
Migrate Thread*Event to satisfies, part of #1577
Diffstat (limited to 'src/util')
-rw-r--r--src/util/entities/Channel.ts15
-rw-r--r--src/util/entities/ThreadMember.ts6
-rw-r--r--src/util/interfaces/Event.ts13
3 files changed, 19 insertions, 15 deletions
diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts

index 4e7123f0..1fa552b2 100644 --- a/src/util/entities/Channel.ts +++ b/src/util/entities/Channel.ts
@@ -32,7 +32,7 @@ import { User } from "./User"; import { VoiceState } from "./VoiceState"; import { Webhook } from "./Webhook"; import { Member } from "./Member"; -import { ChannelPermissionOverwrite, ChannelType, PublicUserProjection, ThreadMetadata } from "@spacebar/schemas"; +import { ChannelPermissionOverwrite, ChannelType, PublicChannel, PublicUserProjection, ThreadMetadata } from "@spacebar/schemas"; import { OrmUtils } from "../imports"; import { ThreadMember } from "./ThreadMember"; @@ -409,18 +409,18 @@ export class Channel extends BaseClass { newly_created: true, }, guild_id: channel.guild_id, - } as ThreadCreateEvent), + } satisfies ThreadCreateEvent), emitEvent({ event: "THREAD_MEMBERS_UPDATE", data: { - guild_id: channel.guild_id, + guild_id: channel.guild_id!, // TODO: is this the right fix? id: thread.id, - member_count: channel.member_count, + member_count: channel.member_count ?? 0, //TODO: is this the right fix? added_members: [threadMember], removed_member_ids: [], }, guild_id: channel.guild_id, - } as ThreadMembersUpdateEvent), + } satisfies ThreadMembersUpdateEvent), ]); } @@ -703,9 +703,12 @@ export class Channel extends BaseClass { } } - toJSON() { + toJSON(): PublicChannel { return { ...this, + last_pin_timestamp: this.last_pin_timestamp?.toISOString(), + recipients: undefined, //this.recipients?.map(x=>x.user.toPublicUser()), // TODO: fix me + owner: undefined, // TODO: fix me - this is thread owner // these fields are not returned depending on the type of channel bitrate: this.bitrate || undefined, diff --git a/src/util/entities/ThreadMember.ts b/src/util/entities/ThreadMember.ts
index 22741bd6..a24ba3e9 100644 --- a/src/util/entities/ThreadMember.ts +++ b/src/util/entities/ThreadMember.ts
@@ -106,13 +106,13 @@ export class ThreadMember extends BaseClassWithoutId { emitEvent({ event: "THREAD_MEMBERS_UPDATE", data: { - guild_id: channel.guild_id, + guild_id: channel.guild_id!, // TODO: is this the right fix? id: channel.id, - member_count: channel.member_count, + member_count: channel.member_count ?? 0, removed_member_ids: [member_id], }, channel_id: thread_id, - } as ThreadMembersUpdateEvent), + } satisfies ThreadMembersUpdateEvent), ]); } diff --git a/src/util/interfaces/Event.ts b/src/util/interfaces/Event.ts
index 87c8c812..0072bb25 100644 --- a/src/util/interfaces/Event.ts +++ b/src/util/interfaces/Event.ts
@@ -44,6 +44,7 @@ import { GuildCreateResponse, InteractionFailureReason, PartialEmoji, + PublicChannel, PublicMember, PublicUser, PublicVoiceState, @@ -161,17 +162,17 @@ export interface ReadyEvent extends Event { export interface ChannelCreateEvent extends Event { event: "CHANNEL_CREATE"; - data: Channel; + data: PublicChannel; } export interface ChannelUpdateEvent extends Event { event: "CHANNEL_UPDATE"; - data: Channel; + data: PublicChannel; } export interface ChannelDeleteEvent extends Event { event: "CHANNEL_DELETE"; - data: Channel; + data: PublicChannel; } export interface ChannelPinsUpdateEvent extends Event { @@ -630,17 +631,17 @@ export interface GuildMemberListUpdate extends Event { export interface ThreadCreateEvent extends Event { event: "THREAD_CREATE"; - data: Channel & { newly_created: boolean }; + data: PublicChannel & { newly_created: boolean }; } export interface ThreadUpdatEvent extends Event { event: "THREAD_UPDATE"; - data: Channel; + data: PublicChannel; } export interface ThreadDeleteEvent extends Event { event: "THREAD_DELETE"; - data: Pick<Channel, "id" | "guild_id" | "parent_id" | "type">; + data: Pick<PublicChannel, "id" | "guild_id" | "parent_id" | "type">; } export interface ThreadListSyncEvent extends Event {