This repository has been archived on 2025-02-06. You can view files and clone it, but cannot push or open issues or pull requests.
Files
sd-telegram-bot/src/context.ts
2023-09-08 22:09:35 +03:00

36 lines
1.0 KiB
TypeScript

import { AutoChatActionFlavor } from "@grammyjs/auto-chat-action";
import { HydrateFlavor } from "@grammyjs/hydrate";
import { ParseModeFlavor } from "@grammyjs/parse-mode";
import { Api, Context as DefaultContext } from "grammy";
import { Update, UserFromGetMe } from "grammy/types";
import { Logger } from "pino";
type ExtendedContextFlavor = {
logger: Logger;
};
export type Context = ParseModeFlavor<
HydrateFlavor<
DefaultContext &
ExtendedContextFlavor &
AutoChatActionFlavor
>
>;
interface Dependencies {
logger: Logger;
}
export function createContextConstructor({ logger }: Dependencies) {
return class extends DefaultContext implements ExtendedContextFlavor {
logger: Logger;
constructor(update: Update, api: Api, me: UserFromGetMe) {
super(update, api, me);
this.logger = logger.child({
update_id: this.update.update_id,
});
}
} as unknown as new (update: Update, api: Api, me: UserFromGetMe) => Context;
}