tgify.js - v1.3.0
    Preparing search index...

    Class Composer<C>

    Type Parameters

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    mount: {
        <
            Ctx extends Context<Update>,
            Filter extends UpdateType | Guard<Ctx["update"]>,
        >(
            filters: MaybeArray<Filter>,
            ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<Ctx, Filter>>>,
        ): MiddlewareFn<Ctx>;
        <
            Ctx extends Context<Update>,
            Filter extends
            
                    | "text"
                    | "sticker"
                    | "animation"
                    | "show_caption_above_media"
                    | "audio"
                    | "document"
                    | "photo"
                    | "checklist"
                    | "video"
                    | "video_note"
                    | "voice"
                    | "callback_query"
                    | "channel_post"
                    | "chat_member"
                    | "chosen_inline_result"
                    | "edited_channel_post"
                    | "business_connection"
                    | "business_message"
                    | "edited_business_message"
                    | "deleted_business_messages"
                    | "message_reaction"
                    | "message_reaction_count"
                    | "edited_message"
                    | "inline_query"
                    | "message"
                    | "my_chat_member"
                    | "pre_checkout_query"
                    | "purchased_paid_media"
                    | "poll_answer"
                    | "poll"
                    | "shipping_query"
                    | "chat_join_request"
                    | "chat_boost"
                    | "removed_chat_boost"
                    | "new_chat_members"
                    | "left_chat_member"
                    | "chat_owner_left"
                    | "chat_owner_changed"
                    | "new_chat_title"
                    | "new_chat_photo"
                    | "delete_chat_photo"
                    | "group_chat_created"
                    | "supergroup_chat_created"
                    | "refunded_payment"
                    | "channel_chat_created"
                    | "message_auto_delete_timer_changed"
                    | "migrate_to_chat_id"
                    | "migrate_from_chat_id"
                    | "pinned_message"
                    | "invoice"
                    | "successful_payment"
                    | "users_shared"
                    | "chat_shared"
                    | "gift"
                    | "unique_gift"
                    | "gift_upgrade_sent"
                    | "connected_website"
                    | "write_access_allowed"
                    | "passport_data"
                    | "proximity_alert_triggered"
                    | "boost_added"
                    | "chat_background_set"
                    | "checklist_tasks_done"
                    | "checklist_tasks_added"
                    | "direct_message_price_changed"
                    | "forum_topic_created"
                    | "forum_topic_edited"
                    | "forum_topic_closed"
                    | "forum_topic_reopened"
                    | "general_forum_topic_hidden"
                    | "general_forum_topic_unhidden"
                    | "giveaway_created"
                    | "giveaway"
                    | "giveaway_winners"
                    | "giveaway_completed"
                    | "paid_message_price_changed"
                    | "suggested_post_approved"
                    | "suggested_post_approval_failed"
                    | "suggested_post_declined"
                    | "suggested_post_paid"
                    | "suggested_post_refunded"
                    | "video_chat_scheduled"
                    | "video_chat_started"
                    | "video_chat_ended"
                    | "video_chat_participants_invited"
                    | "web_app_data"
                    | "has_media_spoiler"
                    | "contact"
                    | "dice"
                    | "game"
                    | "location"
                    | "story"
                    | "venue"
                    | "forward_date",
        >(
            filters: MaybeArray<Filter>,
            ...fns: NonemptyReadonlyArray<
                Middleware<NarrowedContext<Ctx, MountMap[Filter]>, MountMap[Filter]>,
            >,
        ): MiddlewareFn<Ctx>;
    } = Composer.on

    Generates middleware for handling provided update types.

    Type Declaration

      • <Ctx extends Context<Update>, Filter extends UpdateType | Guard<Ctx["update"]>>(
            filters: MaybeArray<Filter>,
            ...fns: NonemptyReadonlyArray<Middleware<FilteredContext<Ctx, Filter>>>,
        ): MiddlewareFn<Ctx>
      • Generates middleware for handling updates narrowed by update types or filter queries.

        Type Parameters

        Parameters

        Returns MiddlewareFn<Ctx>

      • <
            Ctx extends Context<Update>,
            Filter extends
            
                    | "text"
                    | "sticker"
                    | "animation"
                    | "show_caption_above_media"
                    | "audio"
                    | "document"
                    | "photo"
                    | "checklist"
                    | "video"
                    | "video_note"
                    | "voice"
                    | "callback_query"
                    | "channel_post"
                    | "chat_member"
                    | "chosen_inline_result"
                    | "edited_channel_post"
                    | "business_connection"
                    | "business_message"
                    | "edited_business_message"
                    | "deleted_business_messages"
                    | "message_reaction"
                    | "message_reaction_count"
                    | "edited_message"
                    | "inline_query"
                    | "message"
                    | "my_chat_member"
                    | "pre_checkout_query"
                    | "purchased_paid_media"
                    | "poll_answer"
                    | "poll"
                    | "shipping_query"
                    | "chat_join_request"
                    | "chat_boost"
                    | "removed_chat_boost"
                    | "new_chat_members"
                    | "left_chat_member"
                    | "chat_owner_left"
                    | "chat_owner_changed"
                    | "new_chat_title"
                    | "new_chat_photo"
                    | "delete_chat_photo"
                    | "group_chat_created"
                    | "supergroup_chat_created"
                    | "refunded_payment"
                    | "channel_chat_created"
                    | "message_auto_delete_timer_changed"
                    | "migrate_to_chat_id"
                    | "migrate_from_chat_id"
                    | "pinned_message"
                    | "invoice"
                    | "successful_payment"
                    | "users_shared"
                    | "chat_shared"
                    | "gift"
                    | "unique_gift"
                    | "gift_upgrade_sent"
                    | "connected_website"
                    | "write_access_allowed"
                    | "passport_data"
                    | "proximity_alert_triggered"
                    | "boost_added"
                    | "chat_background_set"
                    | "checklist_tasks_done"
                    | "checklist_tasks_added"
                    | "direct_message_price_changed"
                    | "forum_topic_created"
                    | "forum_topic_edited"
                    | "forum_topic_closed"
                    | "forum_topic_reopened"
                    | "general_forum_topic_hidden"
                    | "general_forum_topic_unhidden"
                    | "giveaway_created"
                    | "giveaway"
                    | "giveaway_winners"
                    | "giveaway_completed"
                    | "paid_message_price_changed"
                    | "suggested_post_approved"
                    | "suggested_post_approval_failed"
                    | "suggested_post_declined"
                    | "suggested_post_paid"
                    | "suggested_post_refunded"
                    | "video_chat_scheduled"
                    | "video_chat_started"
                    | "video_chat_ended"
                    | "video_chat_participants_invited"
                    | "web_app_data"
                    | "has_media_spoiler"
                    | "contact"
                    | "dice"
                    | "game"
                    | "location"
                    | "story"
                    | "venue"
                    | "forward_date",
        >(
            filters: MaybeArray<Filter>,
            ...fns: NonemptyReadonlyArray<
                Middleware<NarrowedContext<Ctx, MountMap[Filter]>, MountMap[Filter]>,
            >,
        ): MiddlewareFn<Ctx>
      • Generates middleware for handling updates narrowed by update types or message subtype.

        Type Parameters

        • Ctx extends Context<Update>
        • Filter extends
              | "text"
              | "sticker"
              | "animation"
              | "show_caption_above_media"
              | "audio"
              | "document"
              | "photo"
              | "checklist"
              | "video"
              | "video_note"
              | "voice"
              | "callback_query"
              | "channel_post"
              | "chat_member"
              | "chosen_inline_result"
              | "edited_channel_post"
              | "business_connection"
              | "business_message"
              | "edited_business_message"
              | "deleted_business_messages"
              | "message_reaction"
              | "message_reaction_count"
              | "edited_message"
              | "inline_query"
              | "message"
              | "my_chat_member"
              | "pre_checkout_query"
              | "purchased_paid_media"
              | "poll_answer"
              | "poll"
              | "shipping_query"
              | "chat_join_request"
              | "chat_boost"
              | "removed_chat_boost"
              | "new_chat_members"
              | "left_chat_member"
              | "chat_owner_left"
              | "chat_owner_changed"
              | "new_chat_title"
              | "new_chat_photo"
              | "delete_chat_photo"
              | "group_chat_created"
              | "supergroup_chat_created"
              | "refunded_payment"
              | "channel_chat_created"
              | "message_auto_delete_timer_changed"
              | "migrate_to_chat_id"
              | "migrate_from_chat_id"
              | "pinned_message"
              | "invoice"
              | "successful_payment"
              | "users_shared"
              | "chat_shared"
              | "gift"
              | "unique_gift"
              | "gift_upgrade_sent"
              | "connected_website"
              | "write_access_allowed"
              | "passport_data"
              | "proximity_alert_triggered"
              | "boost_added"
              | "chat_background_set"
              | "checklist_tasks_done"
              | "checklist_tasks_added"
              | "direct_message_price_changed"
              | "forum_topic_created"
              | "forum_topic_edited"
              | "forum_topic_closed"
              | "forum_topic_reopened"
              | "general_forum_topic_hidden"
              | "general_forum_topic_unhidden"
              | "giveaway_created"
              | "giveaway"
              | "giveaway_winners"
              | "giveaway_completed"
              | "paid_message_price_changed"
              | "suggested_post_approved"
              | "suggested_post_approval_failed"
              | "suggested_post_declined"
              | "suggested_post_paid"
              | "suggested_post_refunded"
              | "video_chat_scheduled"
              | "video_chat_started"
              | "video_chat_ended"
              | "video_chat_participants_invited"
              | "web_app_data"
              | "has_media_spoiler"
              | "contact"
              | "dice"
              | "game"
              | "location"
              | "story"
              | "venue"
              | "forward_date"

        Parameters

        Returns MiddlewareFn<Ctx>

        Use filter utils instead. Support for Message subtype in Composer.on will be removed in Telegraf v5.

    use Composer.on instead

    Methods

    • Registers middleware for handling matching callback queries.

      Parameters

      • triggers: Triggers<NarrowedContext<C, CallbackQueryUpdate<CallbackQuery>>>
      • ...fns: MatchedMiddleware<C, "callback_query">

      Returns Composer<C>

    • Parameters

      • cashtag: MaybeArray<string>
      • ...fns: MatchedMiddleware<C>

      Returns Composer<C>

    • Registers middleware for handling specified commands.

      Parameters

      • command: Triggers<
            NarrowedContext<
                C,
                { message: New & NonChannel & TextMessage; update_id: number },
            >,
        >
      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<{ message: New & NonChannel & TextMessage; update_id: number }> & Omit<
                    C,
                    keyof Context<Update>,
                > & CommandContextExtn,
            >,
        >

      Returns Composer<C>

    • Registers middleware for handling updates matching given type guard function.

      Type Parameters

      • U extends Update

      Parameters

      Returns Composer<C>

      use Composer::on

    • Parameters

      • hashtag: MaybeArray<string>
      • ...fns: MatchedMiddleware<C>

      Returns Composer<C>

    • Registers middleware for handling matching text messages.

      Parameters

      • triggers: Triggers<
            NarrowedContext<
                C,
                { message: New & NonChannel & TextMessage; update_id: number },
            >,
        >
      • ...fns: MatchedMiddleware<C, "text">

      Returns Composer<C>

    • Registers a middleware for handling /help

      Parameters

      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<{ message: New & NonChannel & TextMessage; update_id: number }> & Omit<
                    C,
                    keyof Context<Update>,
                > & CommandContextExtn,
            >,
        >

      Returns Composer<C>

    • Registers middleware for handling matching inline queries.

      Parameters

      • triggers: Triggers<NarrowedContext<C, InlineQueryUpdate>>
      • ...fns: MatchedMiddleware<C, "inline_query">

      Returns Composer<C>

    • Parameters

      • mention: MaybeArray<string>
      • ...fns: MatchedMiddleware<C>

      Returns Composer<C>

    • Registers middleware for handling updates narrowed by update types or filter queries.

      Type Parameters

      Parameters

      Returns this

    • Registers middleware for handling updates narrowed by update types or message subtypes.

      Type Parameters

      • Filter extends
            | "text"
            | "sticker"
            | "animation"
            | "show_caption_above_media"
            | "audio"
            | "document"
            | "photo"
            | "checklist"
            | "video"
            | "video_note"
            | "voice"
            | "callback_query"
            | "channel_post"
            | "chat_member"
            | "chosen_inline_result"
            | "edited_channel_post"
            | "business_connection"
            | "business_message"
            | "edited_business_message"
            | "deleted_business_messages"
            | "message_reaction"
            | "message_reaction_count"
            | "edited_message"
            | "inline_query"
            | "message"
            | "my_chat_member"
            | "pre_checkout_query"
            | "purchased_paid_media"
            | "poll_answer"
            | "poll"
            | "shipping_query"
            | "chat_join_request"
            | "chat_boost"
            | "removed_chat_boost"
            | "new_chat_members"
            | "left_chat_member"
            | "chat_owner_left"
            | "chat_owner_changed"
            | "new_chat_title"
            | "new_chat_photo"
            | "delete_chat_photo"
            | "group_chat_created"
            | "supergroup_chat_created"
            | "refunded_payment"
            | "channel_chat_created"
            | "message_auto_delete_timer_changed"
            | "migrate_to_chat_id"
            | "migrate_from_chat_id"
            | "pinned_message"
            | "invoice"
            | "successful_payment"
            | "users_shared"
            | "chat_shared"
            | "gift"
            | "unique_gift"
            | "gift_upgrade_sent"
            | "connected_website"
            | "write_access_allowed"
            | "passport_data"
            | "proximity_alert_triggered"
            | "boost_added"
            | "chat_background_set"
            | "checklist_tasks_done"
            | "checklist_tasks_added"
            | "direct_message_price_changed"
            | "forum_topic_created"
            | "forum_topic_edited"
            | "forum_topic_closed"
            | "forum_topic_reopened"
            | "general_forum_topic_hidden"
            | "general_forum_topic_unhidden"
            | "giveaway_created"
            | "giveaway"
            | "giveaway_winners"
            | "giveaway_completed"
            | "paid_message_price_changed"
            | "suggested_post_approved"
            | "suggested_post_approval_failed"
            | "suggested_post_declined"
            | "suggested_post_paid"
            | "suggested_post_refunded"
            | "video_chat_scheduled"
            | "video_chat_started"
            | "video_chat_ended"
            | "video_chat_participants_invited"
            | "web_app_data"
            | "has_media_spoiler"
            | "contact"
            | "dice"
            | "game"
            | "location"
            | "story"
            | "venue"
            | "forward_date"

      Parameters

      Returns this

      Use filter utils instead. Support for Message subtype in Composer::on will be removed in Telegraf v5.

    • Parameters

      • reaction: MaybeArray<ReactionAddedOrRemoved>
      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<MessageReactionUpdate> & Omit<C, keyof Context<Update>> & {
                    match: ReactionAddedOrRemoved;
                },
                MessageReactionUpdate,
            >,
        >

      Returns Composer<C>

    • Registers a middleware for handling /settings

      Parameters

      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<{ message: New & NonChannel & TextMessage; update_id: number }> & Omit<
                    C,
                    keyof Context<Update>,
                > & CommandContextExtn,
            >,
        >

      Returns Composer<C>

    • Registers a middleware for handling /start

      Parameters

      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<{ message: New & NonChannel & TextMessage; update_id: number }> & Omit<
                    C,
                    keyof Context<Update>,
                > & StartContextExtn,
            >,
        >

      Returns Composer<C>

    • Generates middleware for handling matching callback queries.

      Type Parameters

      Parameters

      • triggers: Triggers<NarrowedContext<C, CallbackQueryUpdate<CallbackQuery>>>
      • ...fns: MatchedMiddleware<C, "callback_query">

      Returns MiddlewareFn<C>

    • Generates middleware running only in specified chat types.

      Type Parameters

      Parameters

      • type: MaybeArray<"channel" | "group" | "supergroup" | "private">
      • ...fns: NonemptyReadonlyArray<Middleware<C>>

      Returns MiddlewareFn<C>

    • Generates middleware for handling specified commands.

      Type Parameters

      Parameters

      • command: Triggers<
            NarrowedContext<
                C,
                { message: New & NonChannel & TextMessage; update_id: number },
            >,
        >
      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<{ message: New & NonChannel & TextMessage; update_id: number }> & Omit<
                    C,
                    keyof Context<Update>,
                > & CommandContextExtn,
            >,
        >

      Returns MiddlewareFn<C>

    • Type Parameters

      Parameters

      • entityType: MaybeArray<string>
      • predicate: Triggers<C>
      • ...fns: MatchedMiddleware<C>

      Returns MiddlewareFn<C>

    • Generates optional middleware based on a predicate that only operates on ctx.update.

      Example:

      import { Composer, Update } from 'telegraf'

      const predicate = (u): u is Update.MessageUpdate => 'message' in u
      const middleware = Composer.guard(predicate, (ctx) => {
      const message = ctx.update.message
      })

      Note that Composer.on('message') is preferred over this.

      Type Parameters

      • C extends Context<Update>
      • U extends Update

      Parameters

      • guardFn: (u: Update) => u is U

        predicate to decide whether to run the middleware based on the ctx.update object

      • ...fns: NonemptyReadonlyArray<Middleware<NarrowedContext<C, U>, U>>

        middleware to run if the predicate returns true

      Returns MiddlewareFn<C>

      Composer.optional for a more generic version of this method that allows the predicate to operate on ctx itself

      use Composer.on

    • Generates middleware for handling matching text messages.

      Type Parameters

      Parameters

      • triggers: Triggers<
            NarrowedContext<
                C,
                { message: New & NonChannel & TextMessage; update_id: number },
            >,
        >
      • ...fns: MatchedMiddleware<C, "text">

      Returns MiddlewareFn<C>

    • Generates middleware for handling updates narrowed by update types or filter queries.

      Type Parameters

      Parameters

      Returns MiddlewareFn<Ctx>

    • Generates middleware for handling updates narrowed by update types or message subtype.

      Type Parameters

      • Ctx extends Context<Update>
      • Filter extends
            | "text"
            | "sticker"
            | "animation"
            | "show_caption_above_media"
            | "audio"
            | "document"
            | "photo"
            | "checklist"
            | "video"
            | "video_note"
            | "voice"
            | "callback_query"
            | "channel_post"
            | "chat_member"
            | "chosen_inline_result"
            | "edited_channel_post"
            | "business_connection"
            | "business_message"
            | "edited_business_message"
            | "deleted_business_messages"
            | "message_reaction"
            | "message_reaction_count"
            | "edited_message"
            | "inline_query"
            | "message"
            | "my_chat_member"
            | "pre_checkout_query"
            | "purchased_paid_media"
            | "poll_answer"
            | "poll"
            | "shipping_query"
            | "chat_join_request"
            | "chat_boost"
            | "removed_chat_boost"
            | "new_chat_members"
            | "left_chat_member"
            | "chat_owner_left"
            | "chat_owner_changed"
            | "new_chat_title"
            | "new_chat_photo"
            | "delete_chat_photo"
            | "group_chat_created"
            | "supergroup_chat_created"
            | "refunded_payment"
            | "channel_chat_created"
            | "message_auto_delete_timer_changed"
            | "migrate_to_chat_id"
            | "migrate_from_chat_id"
            | "pinned_message"
            | "invoice"
            | "successful_payment"
            | "users_shared"
            | "chat_shared"
            | "gift"
            | "unique_gift"
            | "gift_upgrade_sent"
            | "connected_website"
            | "write_access_allowed"
            | "passport_data"
            | "proximity_alert_triggered"
            | "boost_added"
            | "chat_background_set"
            | "checklist_tasks_done"
            | "checklist_tasks_added"
            | "direct_message_price_changed"
            | "forum_topic_created"
            | "forum_topic_edited"
            | "forum_topic_closed"
            | "forum_topic_reopened"
            | "general_forum_topic_hidden"
            | "general_forum_topic_unhidden"
            | "giveaway_created"
            | "giveaway"
            | "giveaway_winners"
            | "giveaway_completed"
            | "paid_message_price_changed"
            | "suggested_post_approved"
            | "suggested_post_approval_failed"
            | "suggested_post_declined"
            | "suggested_post_paid"
            | "suggested_post_refunded"
            | "video_chat_scheduled"
            | "video_chat_started"
            | "video_chat_ended"
            | "video_chat_participants_invited"
            | "web_app_data"
            | "has_media_spoiler"
            | "contact"
            | "dice"
            | "game"
            | "location"
            | "story"
            | "venue"
            | "forward_date"

      Parameters

      Returns MiddlewareFn<Ctx>

      Use filter utils instead. Support for Message subtype in Composer.on will be removed in Telegraf v5.

    • Generates optional middleware.

      Type Parameters

      Parameters

      • predicate: Predicate<C> | AsyncPredicate<C>

        predicate to decide on a context object whether to run the middleware

      • ...fns: NonemptyReadonlyArray<Middleware<C>>

        middleware to run if the predicate returns true

      Returns MiddlewareFn<C>

    • Type Parameters

      Parameters

      • reaction: MaybeArray<ReactionAddedOrRemoved>
      • ...fns: NonemptyReadonlyArray<
            Middleware<
                Context<MessageReactionUpdate> & Omit<C, keyof Context<Update>> & {
                    match: ReactionAddedOrRemoved;
                },
                MessageReactionUpdate,
            >,
        >

      Returns MiddlewareFn<C>