feat: add support for policy changes / ack

This commit is contained in:
izzy
2025-06-10 11:19:58 +01:00
parent 3b6e231c8c
commit e48d2127e4
2 changed files with 18 additions and 1 deletions
+6 -1
View File
@@ -27,7 +27,7 @@ import {
EventClient,
type EventClientOptions,
} from "./events/EventClient.js";
import { handleEvent } from "./events/v1.js";
import { ProtocolV1, handleEvent } from "./events/v1.js";
import type { HydratedChannel } from "./hydration/channel.js";
import type { HydratedEmoji } from "./hydration/emoji.js";
import type { HydratedMessage } from "./hydration/message.js";
@@ -51,6 +51,11 @@ export type Events = {
ready: [];
logout: [];
policyChanges: [
policyChanges: (ProtocolV1["server"] & { type: "Ready" })["policy_changes"],
acknowledge: () => Promise<void>,
];
messageCreate: [message: Message];
messageUpdate: [message: Message, previousMessage: HydratedMessage];
messageDelete: [message: HydratedMessage];
+12
View File
@@ -180,6 +180,12 @@ type ReadyData = {
channels: Channel[];
members: Member[];
emojis: Emoji[];
policy_changes: {
created_time: string;
effective_time: string;
description: string;
url: string;
}[];
};
/**
@@ -238,6 +244,12 @@ export async function handleEvent(
setReady(true);
client.emit("ready");
if (event.policy_changes.length) {
client.emit("policyChanges", event.policy_changes, async () =>
client.api.post("/policy/acknowledge"),
);
}
break;
}
case "Message": {