Skip to content

Commit

Permalink
feat: bun related docs (@stonega)
Browse files Browse the repository at this point in the history
- changed bot.ts to index.ts
- mention bun at hosting docs
  • Loading branch information
MasedMSD committed Oct 1, 2024
1 parent 2d9bdde commit 53c1efe
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 2 deletions.
84 changes: 84 additions & 0 deletions site/docs/guide/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,90 @@ in your terminal before you execute `node bot.js`.
This makes it easier to debug your bot.
:::

## Getting Started on Bun

> This guide assumes that you have [Bun](https://bun.sh) installed.
> If you don't know what these things are, check out our [Introduction](./introduction)!
Create a new project and install the `grammy` package.
Do this by opening a terminal and typing:

```sh
# Create a new directory and change into it.
mkdir my-bot
cd my-bot

# Run bun init to scaffold a new project.
bun init --yes

# Install grammY.
bun add grammy
```

Your folder structure should looks like this:

```asciiart:no-line-numbers
.
├── index.ts
├── .gitignore
├── node_modules/
├── package.json
├── bun.lockb
├── README.md
└── tsconfig.json
```

Now, it's time to open Telegram to create a bot account, and obtain a bot token for it.
Talk to [@BotFather](https://t.me/BotFather) to do this.
The bot token looks like `123456:aBcDeF_gHiJkLmNoP-q`.
It is used to authenticate your bot.

Got the token? You can now code your bot in the `index.ts` file.
You can copy the following example bot into that file, and pass your token to the `Bot` constructor:

```ts [TypeScript]
import { Bot } from "grammy";

// Create an instance of the `Bot` class and pass your bot token to it.
const bot = new Bot(""); // <-- put your bot token between the ""

// You can now register listeners on your bot object `bot`.
// grammY will call the listeners when users send messages to your bot.

// Handle the /start command.
bot.command("start", (ctx) => ctx.reply("Welcome! Up and running."));
// Handle other messages.
bot.on("message", (ctx) => ctx.reply("Got another message!"));

// Now that you specified how to handle messages, you can start your bot.
// This will connect to the Telegram servers and wait for messages.

// Start the bot.
bot.start();
```

You can now run the bot by executing

```sh
bun run bot.ts
```

in your terminal.
Done! :tada:

Head over to Telegram to watch your bot respond to messages!

::: tip Enabling Logging
You can enable basic logging by running

```sh
export DEBUG="grammy*"
```

in your terminal before you execute `bun run index.ts`.
This makes it easier to debug your bot.
:::

## Getting Started on Deno

> This guide assumes that you have [Deno](https://deno.com) installed.
Expand Down
30 changes: 29 additions & 1 deletion site/docs/guide/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ You will get to know them as you go.

## Prerequisites to Getting Started

> Skip the rest of this page if you already know how to develop a Deno or a Node.js application, and [get started](./getting-started).
> Skip the rest of this page if you already know how to develop Deno, Bun or Node.js application, and [get started](./getting-started).
Here are a few interesting things about programming---things that are essential to coding, yet rarely explained because most developers think they are self-evident.

Expand Down Expand Up @@ -173,6 +173,34 @@ You can stop the bot again with `Ctrl+C`.
Ready?
[Get started](./getting-started#getting-started-on-deno)! :robot:

### Prerequisites for Bun

Bun is a new JavaScript runtime, which is another good choice to build bot, like Deno, you are going to write your bot in TypeScript.
The exact commands for all of that will be introduced in the next section when you actually create a bot, but it is important to know that these steps are necessary.

Firstly, you have to have [Bun](https://bun.sh/) installed.

In summary, this is what you have to do for Bun:

Create a new directory somewhere.
It will contain your bot project.
Open this new directory in VS Code.

```sh
mkdir ./my-bot
cd ./my-bot
code .
```

Then:

1. Run `bun init --yes` in your terminal to initialize the project.
2. Create a source file `bot.ts` with TypeScript code inside the project.
3. Run `bun run bot.ts` from your terminal, or run `bun --watch run bot.ts` if you want to keep updated with file changes.

Ready?
[Get started](./getting-started#getting-started-on-bun)! :robot:

### Prerequisites for Node.js

You are going to write your bot in TypeScript, but, contrary to Deno, Node.js cannot actually run TypeScript.
Expand Down
2 changes: 1 addition & 1 deletion site/docs/hosting/firebase.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ npm install -g firebase-tools
- TypeScript
6. Optionally, you can select ESLint.
7. The CLI asks you if you want to install the dependencies with npm.
If you use another package manager like `yarn` or `pnpm` you can decline.
If you use another package manager like `yarn`, `bun` or `pnpm` you can decline.
In that case, you have to `cd` into the `functions` directory and install the dependencies manually.
8. Open `./functions/package.json` and look for the key: `"engines": {"node": "16"}`.
The `node` version should match your installed version of Node.js.
Expand Down
4 changes: 4 additions & 0 deletions site/docs/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,10 @@ yarn global add pm2
pnpm add -g pm2
```

```sh [bun]
bun add -g pm2
```

:::

#### Creating an Application
Expand Down

0 comments on commit 53c1efe

Please sign in to comment.