3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-25 18:25:03 +00:00
zeppelin/backend/src/utils/resolveChannelIds.ts

53 lines
1.2 KiB
TypeScript

import { ChannelType } from "discord-api-types/v9";
import { CategoryChannel, Channel } from "discord.js";
import { ChannelTypes } from "discord.js/typings/enums";
import { ChannelTypeStrings } from "src/types";
import { isDmChannel } from "./isDmChannel";
import { isGuildChannel } from "./isGuildChannel";
import { isThreadChannel } from "./isThreadChannel";
type ResolvedChannelIds = {
category: string | null;
channel: string | null;
thread: string | null;
};
export function resolveChannelIds(channel: Channel): ResolvedChannelIds {
if (isDmChannel(channel)) {
return {
category: null,
channel: channel.id,
thread: null,
};
}
if (isThreadChannel(channel)) {
return {
category: channel.parent?.parentId || null,
channel: channel.parentId,
thread: channel.id,
};
}
if (channel instanceof CategoryChannel) {
return {
category: channel.id,
channel: null,
thread: null,
};
}
if (isGuildChannel(channel)) {
return {
category: channel.parentId,
channel: channel.id,
thread: null,
};
}
return {
category: null,
channel: channel.id,
thread: null,
};
}