mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2024-12-25 15:34:38 +03:00
37 lines
909 B
TypeScript
37 lines
909 B
TypeScript
|
import {
|
||
|
MiddlewareConsumer,
|
||
|
Module,
|
||
|
NestModule,
|
||
|
DynamicModule,
|
||
|
} from '@nestjs/common'
|
||
|
import { ModuleMetadata, Type } from '@nestjs/common/interfaces'
|
||
|
import { TelegramBot } from './TelegramBot'
|
||
|
import { TelegramModuleOptionsFactory } from './TelegramModuleOptionsFactory'
|
||
|
import { TokenInjectionToken } from './TokenInjectionToken'
|
||
|
|
||
|
interface TelegramFactory extends Pick<ModuleMetadata, 'imports'> {
|
||
|
useClass?: Type<TelegramModuleOptionsFactory>
|
||
|
inject?: any[]
|
||
|
}
|
||
|
|
||
|
@Module({})
|
||
|
export class TelegramModule implements NestModule {
|
||
|
public configure(consumer: MiddlewareConsumer) {
|
||
|
// pass
|
||
|
}
|
||
|
|
||
|
static fromFactory(factory: TelegramFactory): DynamicModule {
|
||
|
return {
|
||
|
module: TelegramModule,
|
||
|
providers: [
|
||
|
TelegramBot,
|
||
|
{
|
||
|
provide: TokenInjectionToken,
|
||
|
useClass: factory.useClass,
|
||
|
},
|
||
|
],
|
||
|
exports: [TelegramBot],
|
||
|
}
|
||
|
}
|
||
|
}
|