Package Exports
- wrappergram
 
Readme
wrappergram
Simple and tiny code-generated Telegram Bot API wrapper for TypeScript/JavaScript with file upload support.
🌐 Multi-runtime - Works on Node.js, Bun and Deno
⚙️ Code-generated - For example, code-generated and auto-published Telegram Bot API types)
🛡️ Type-safe - Written in TypeScript with love ❤️
🤏 Tiny - Simple sendMessage call cost some  in bundle size. So it is a good choice for browser/serverless environments
But if you need a more complete framework, then please look to GramIO.
Usage
import { Telegram, getUpdates } from "wrappergram";
const telegram = new Telegram(process.env.BOT_TOKEN as string);
telegram.api.sendMessage({
    chat_id: 617580375,
    text: "Hello!",
});
for await (const update of getUpdates(telegram)) {
    console.log(update);
    if (update.message?.from) {
        telegram.api.sendMessage({
            chat_id: update.message.from.id,
            text: "Hi! Thanks for the message",
        });
    }
}[!IMPORTANT] Use
getUpdatesonly once in your code otherwise it will cause double calls to getUpdates
Call api
You can send requests to Telegram Bot API Methods via telegram.api with full type-safety!
const response = await telegram.api.sendMessage({
    chat_id: "@gramio_forum",
    text: "Hello, world!",
});
if (!response.ok) console.error("Something went wrong");
else console.log(`New message id is ${response.result.message_id}`);Send keyboards
For keyboards you need to install @gramio/keyboard library and just use it!
import { Keyboard } from "@gramio/keyboards";
// telegram init
telegram.api.sendMessage({
    chat_id: "@gramio_forum",
    text: "Hello, world!",
    reply_markup: new InlineKeyboard().url(
        "GitHub",
        "https://github.com/gramiojs/wrappergram"
    ),
});Send files
@gramio/files already used under the hood so you don't need to install it
import { MediaUpload } from "wrappergram";
telegram.api.sendPhoto({
    chat_id: "@gramio_forum",
    text: "Hello, world!",
    photo: MediaUpload.path("./cute-cat.png"),
});
telegram.api.sendDocument({
    chat_id: "@gramio_forum",
    text: "Hello, world!",
    photo: Bun.file("README.md"), // you can use File instance to upload files
});;+%5Cn%5Cntelegram.api.sendPhoto(%7B+%5Cn++chat_id:+%22@gramio_forum%22,+%5Cn++text:+%22Hello,+world!%22,+%5Cn++photo:+MediaUpload.path(%22./cute-cat.png%22),+%5Cn%7D);%22)