nestjs-telegraf/lib/telegraf.provider.ts

34 lines
856 B
TypeScript
Raw Normal View History

2020-03-19 16:21:35 +03:00
import {
Injectable,
Inject,
OnApplicationBootstrap,
Logger,
OnApplicationShutdown,
2020-03-19 16:21:35 +03:00
} from '@nestjs/common';
import { Telegraf, ContextMessageUpdate } from 'telegraf';
2020-03-19 16:21:35 +03:00
import { TELEGRAF_MODULE_OPTIONS } from './telegraf.constants';
import { TelegrafModuleOptions } from './interfaces';
@Injectable()
export class TelegrafProvider<TContext extends ContextMessageUpdate>
// @ts-ignore
2020-03-19 16:21:35 +03:00
extends Telegraf<TContext>
implements OnApplicationBootstrap, OnApplicationShutdown {
2020-03-19 16:21:35 +03:00
private logger = new Logger('Telegraf');
constructor(@Inject(TELEGRAF_MODULE_OPTIONS) options: TelegrafModuleOptions) {
super(options.token, options.options);
}
onApplicationBootstrap() {
this.catch((e) => {
2020-03-19 16:21:35 +03:00
this.logger.error(e);
});
this.startPolling();
}
async onApplicationShutdown(signal?: string) {
await this.stop();
}
2020-03-19 16:21:35 +03:00
}