UNPKG

grammy-guard

Version:
31 lines (30 loc) 1.25 kB
import { Chat, ChatMember, ChatMemberUpdated, Context, Filter, User } from "./deps.js"; export type MaybePromise<T> = T | Promise<T>; export type Predicate<C extends Context> = (ctx: C) => MaybePromise<boolean>; type UserType = { from: User; }; export type UserContext<C extends Context = Context> = C & UserType; type SenderChatType = { senderChat: Chat; }; export type SenderChatContext<C extends Context = Context> = C & SenderChatType; type MyChatMemberType<T extends ChatMember["status"]> = { myChatMember: ChatMemberUpdated & { new_chat_member: { status: T; }; }; }; export type MyChatMemberContext<C extends Context = Context, T extends ChatMember["status"] = ChatMember["status"]> = C & MyChatMemberType<T>; type ChatMemberType<T extends ChatMember["status"]> = { chatMember: ChatMemberUpdated & { new_chat_member: { status: T; }; }; }; export type ChatMemberContext<C extends Context = Context, T extends ChatMember["status"] = ChatMember["status"]> = C & ChatMemberType<T>; export type UserSharedContext<C extends Context = Context> = Filter<C, ":user_shared">; export type ChatSharedContext<C extends Context = Context> = Filter<C, ":chat_shared">; export {};