From aa2af992b08ee6e37c2a715a10c783dc14110761 Mon Sep 17 00:00:00 2001 From: Aleksandr Bukhalo Date: Sun, 12 Jan 2020 01:15:32 +0300 Subject: [PATCH] refactor(module options): some changes --- lib/TelegramBot.ts | 4 ++-- lib/TelegramClient.ts | 4 ++-- lib/TelegramModuleOptions.ts | 4 ---- lib/TelegramModuleOptionsFactory.ts | 5 ----- lib/index.ts | 7 +++---- lib/interfaces/index.ts | 1 + lib/interfaces/telegraf-options.interface.ts | 16 ++++++++++++++++ lib/{telegram.module.ts => telegraf.module.ts} | 15 ++++----------- 8 files changed, 28 insertions(+), 28 deletions(-) delete mode 100644 lib/TelegramModuleOptions.ts delete mode 100644 lib/TelegramModuleOptionsFactory.ts create mode 100644 lib/interfaces/index.ts create mode 100644 lib/interfaces/telegraf-options.interface.ts rename lib/{telegram.module.ts => telegraf.module.ts} (57%) diff --git a/lib/TelegramBot.ts b/lib/TelegramBot.ts index 6b59346..7f3779e 100644 --- a/lib/TelegramBot.ts +++ b/lib/TelegramBot.ts @@ -10,7 +10,7 @@ import { Handler } from './Handler' import { Bot } from './Bot' import { TelegramActionHandler } from './decorators/TelegramActionHandler' import { TokenInjectionToken } from './TokenInjectionToken' -import { TelegramModuleOptionsFactory } from './TelegramModuleOptionsFactory' +import { TelegrafOptionsFactory } from './interfaces' import { InvalidConfigurationException } from './InvalidConfigurationException' @Injectable() @@ -20,7 +20,7 @@ export class TelegramBot { private ref: ModuleRef public constructor( - @Inject(TokenInjectionToken) factory: TelegramModuleOptionsFactory, + @Inject(TokenInjectionToken) factory: TelegrafOptionsFactory, ) { const { token, sitePublicUrl } = factory.createOptions() diff --git a/lib/TelegramClient.ts b/lib/TelegramClient.ts index c3be2c5..58638d1 100644 --- a/lib/TelegramClient.ts +++ b/lib/TelegramClient.ts @@ -2,14 +2,14 @@ import { Injectable, Inject } from '@nestjs/common' const Telegram = require('telegraf/telegram') import { TokenInjectionToken } from './TokenInjectionToken' -import { TelegramModuleOptionsFactory } from './TelegramModuleOptionsFactory' +import { TelegrafOptionsFactory } from './interfaces' @Injectable() export class TelegramClient { private telegram: any public constructor( - @Inject(TokenInjectionToken) factory: TelegramModuleOptionsFactory, + @Inject(TokenInjectionToken) factory: TelegrafOptionsFactory, ) { const { token } = factory.createOptions() diff --git a/lib/TelegramModuleOptions.ts b/lib/TelegramModuleOptions.ts deleted file mode 100644 index 5eef4f4..0000000 --- a/lib/TelegramModuleOptions.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface TelegramModuleOptions { - token: string - sitePublicUrl?: string -} diff --git a/lib/TelegramModuleOptionsFactory.ts b/lib/TelegramModuleOptionsFactory.ts deleted file mode 100644 index 90d6b86..0000000 --- a/lib/TelegramModuleOptionsFactory.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { TelegramModuleOptions } from './TelegramModuleOptions' - -export interface TelegramModuleOptionsFactory { - createOptions(): TelegramModuleOptions -} diff --git a/lib/index.ts b/lib/index.ts index dccd52e..9eb8c5f 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -1,10 +1,9 @@ -export { TelegramModule } from './telegram.module' +export * from './telegraf.module' +export * from './interfaces' + export { TelegramBot } from './TelegramBot' export { TelegramClient } from './TelegramClient' -export { TelegramModuleOptionsFactory } from './TelegramModuleOptionsFactory' -export { TelegramModuleOptions } from './TelegramModuleOptions' - export { PipeContext } from './decorators/PipeContext' export { TelegramActionHandler } from './decorators/TelegramActionHandler' export { TelegramCatch } from './decorators/TelegramCatch' diff --git a/lib/interfaces/index.ts b/lib/interfaces/index.ts new file mode 100644 index 0000000..1eaae1b --- /dev/null +++ b/lib/interfaces/index.ts @@ -0,0 +1 @@ +export * from './telegraf-options.interface' diff --git a/lib/interfaces/telegraf-options.interface.ts b/lib/interfaces/telegraf-options.interface.ts new file mode 100644 index 0000000..5dbc6c4 --- /dev/null +++ b/lib/interfaces/telegraf-options.interface.ts @@ -0,0 +1,16 @@ +import { ModuleMetadata, Type } from '@nestjs/common/interfaces' + +export interface TelegrafModuleOptions { + token: string + sitePublicUrl?: string +} + +export interface TelegrafOptionsFactory { + createOptions(): TelegrafModuleOptions +} + +export interface TelegrafModuleAsyncOptions + extends Pick { + useClass?: Type + inject?: any[] +} diff --git a/lib/telegram.module.ts b/lib/telegraf.module.ts similarity index 57% rename from lib/telegram.module.ts rename to lib/telegraf.module.ts index 0e88913..337a9d7 100644 --- a/lib/telegram.module.ts +++ b/lib/telegraf.module.ts @@ -4,27 +4,20 @@ import { NestModule, DynamicModule, } from '@nestjs/common' -import { ModuleMetadata, Type } from '@nestjs/common/interfaces' - import { TelegramBot } from './TelegramBot' -import { TelegramModuleOptionsFactory } from './TelegramModuleOptionsFactory' +import { TelegrafModuleAsyncOptions } from './interfaces' import { TokenInjectionToken } from './TokenInjectionToken' import { TelegramClient } from './TelegramClient' -interface TelegramFactory extends Pick { - useClass?: Type - inject?: any[] -} - @Module({}) -export class TelegramModule implements NestModule { +export class TelegrafModule implements NestModule { public configure(consumer: MiddlewareConsumer) { // pass } - static fromFactory(factory: TelegramFactory): DynamicModule { + static fromFactory(factory: TelegrafModuleAsyncOptions): DynamicModule { return { - module: TelegramModule, + module: TelegrafModule, providers: [ TelegramBot, TelegramClient,