mirror of
https://github.com/jaronpate/unicord.git
synced 2026-10-18 21:47:40 +00:00
feat: Add channel property to HydratedMessage and HydratedContext types
This commit is contained in:
@@ -4,6 +4,7 @@ import { hydrate, hydrator, type Hydrateable, type Hydrated } from "../services/
|
||||
import { isNil, exists } from "../utils";
|
||||
import { fromDiscord, InteractionResponseType, type Expectation } from "./common";
|
||||
import type { Guild } from "./guild";
|
||||
import { Channel } from "./channel";
|
||||
import type { InteractionPayload } from "./handler";
|
||||
import { type DiscordMessage, Message, type MessagePayload } from "./message";
|
||||
/**
|
||||
@@ -28,6 +29,7 @@ import { type DiscordMessage, Message, type MessagePayload } from "./message";
|
||||
export type HydratedContext<T extends Array<Expectation>> = Context & {
|
||||
guild: Extract<Expectation.Guild, T[number]> extends never ? undefined : Guild;
|
||||
message: Extract<Expectation.Message, T[number]> extends never ? undefined : Message;
|
||||
channel: Extract<Expectation.Channel, T[number]> extends never ? undefined : Channel;
|
||||
};
|
||||
|
||||
export type ContextData =
|
||||
@@ -174,4 +176,4 @@ export class Context<D extends ContextData = ContextData> {
|
||||
public defer = async () => {
|
||||
return this.ack(InteractionResponseType.DeferredMessage);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import { GatewayObject } from './base';
|
||||
import { fromDiscord, Trait, type Expectation, type Expects } from './common';
|
||||
import type { Embed } from './embed';
|
||||
import type { Guild } from './guild';
|
||||
import { Channel } from './channel';
|
||||
import { type DiscordUser, User } from './user';
|
||||
|
||||
export type Component = Partial<Button | SelectMenu> & {
|
||||
@@ -88,7 +89,7 @@ export enum ComponentType {
|
||||
}
|
||||
|
||||
export type HydratedMessage<T extends Array<Expectation>> = MessagePayload & {
|
||||
// channel: Extract<Expectation.Channel, T[number]> extends never ? undefined : Channel;
|
||||
channel: Extract<Expectation.Channel, T[number]> extends never ? undefined : Channel;
|
||||
reference: Extract<Expectation.Message, T[number]> extends never ? undefined : MessagePayload;
|
||||
guild: Extract<Expectation.Guild, T[number]> extends never ? undefined : Guild;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user