ts-telegraf-decorators
ts-telegraf-decorators
This is a simple library that will allow you to use decorators and typescript. Based on telegraf
Installation
$ npm install ts-telegraf-decorators
Base Examples
Create controller
import {Start, Command, TFController} from 'ts-telegraf-decorators'
@TFController()
export class ControllerTest {
@Start()
start(@TFContext() ctx){
ctx.reply('Hello start')
}
@Command('ping')
ping(@TFContext() ctx){
ctx.reply('pong')
}
}
Create app.ts
import {buildBot} from "ts-telegraf-decorators";
buildBot({
token: process.env.BOT_TOKEN,
controllers: [__dirname+'/controllers/**.js'],
}).startPolling()
If Use Container
Create service
import {Service} from "typedi";
@Service()
export class TestService {
async getBotName(): Promise<string>{
return 'My Bot'
}
}
Use Container
import 'reflect-metadata'
import {buildBot} from "ts-telegraf-decorators";
import {Container} from "typedi";
buildBot({
token: process.env.BOT_TOKEN,
container: Container,
controllers: [__dirname+'/controllers/**.js'],
}).startPolling()
Create controller
import {Start, Command, TFController} from 'ts-telegraf-decorators'
@TFController()
export class ControllerTest {
@Inject()
service: TestService
@Start()
start(@TFContext() ctx){
ctx.reply('Hello start')
}
@Command('ping')
async ping(@TFContext() ctx){
ctx.reply('pong '+ await this.service.getBotName())
}
}