diff --git a/README.md b/README.md
index 78ec707..4a83506 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,21 @@
-
-
-
-
+# NestJS Telegraf   
-# NestJS Telegraf
-
-
-
+
-[Telegraf](https://github.com/telegraf/telegraf) module for [NestJS](https://github.com/nestjs/nest).
+NestJS Telegraf – powerful solution for creating Telegram bots.
+
+This package uses the best of the NodeJS world under the hood. [Telegraf](https://github.com/telegraf/telegraf) is the most powerful library for creating bots and [NestJS](https://github.com/nestjs) is a progressive framework for creating well-architectured applications. This module provides fast and easy way for creating Telegram bots and deep integration with your NestJS application.
+
+**Features**
+
+- Simple. Easy to use.
+- Ton of decorators available out of the box for handling bot actions.
+- Ability to create custom decorators.
+- Scenes support.
+- Telegraf plugins and custom plugins support.
+- Ability to run multiple bots simultaneously.
+- Full support of NestJS guards, interceptors, filters and pipes! (*in progress...*)
## Documentation
If you want to dive fully into NestJS Telegraf then don't waste your time in this dump, check out the [documentation site](https://nestjs-telegraf.vercel.app).
@@ -20,8 +26,8 @@ If you want to dive fully into NestJS Telegraf then don't waste your time in thi
$ npm i nestjs-telegraf
```
+## Usage
Once the installation process is complete, we can import the `TelegrafModule` into the root `AppModule`:
-
```typescript
import { Module } from '@nestjs/common';
import { TelegrafModule } from 'nestjs-telegraf';
@@ -36,38 +42,42 @@ import { TelegrafModule } from 'nestjs-telegraf';
export class AppModule {}
```
-Then add some decorators into the `app.service.ts` for handling Telegram bot API updates:
+Then create `app.update.ts` file and add some decorators for handling Telegram bot API updates:
```typescript
-import { Injectable } from '@nestjs/common';
import {
+ Update,
Start,
Help,
On,
Hears,
Context,
} from 'nestjs-telegraf';
+import { AppService } from './app.service';
+import { Context } from './context.interface';
+
+@Update()
+export class AppUpdate {
+ constructor(private readonly appService: AppService)
-@Injectable()
-export class AppService {
@Start()
- start(ctx: Context) {
- ctx.reply('Welcome');
+ async startCommand(ctx: Context) {
+ await ctx.reply('Welcome');
}
@Help()
- help(ctx: Context) {
- ctx.reply('Send me a sticker');
+ async helpCommand(ctx: Context) {
+ await ctx.reply('Send me a sticker');
}
@On('sticker')
- on(ctx: Context) {
- ctx.reply('👍');
+ async onSticker(ctx: Context) {
+ await ctx.reply('👍');
}
@Hears('hi')
- hears(ctx: Context) {
- ctx.reply('Hey there');
+ async hearsHi(ctx: Context) {
+ await ctx.reply('Hey there');
}
}
```