mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2025-09-23 09:49:06 +03:00
improvement(workflow): rewrite all workflow
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import { Module, DynamicModule, Provider } from '@nestjs/common'
|
||||
import { TelegrafModuleAsyncOptions, TelegrafOptionsFactory } from './interfaces'
|
||||
import { TELEGRAF_MODULE_OPTIONS, TokenInjectionToken } from './telegraf.constants'
|
||||
import { TelegrafService, TelegrafTelegramService } from './'
|
||||
import { Module, DynamicModule, Provider } from '@nestjs/common';
|
||||
import {
|
||||
TelegrafModuleAsyncOptions,
|
||||
TelegrafOptionsFactory
|
||||
} from './interfaces';
|
||||
import {
|
||||
TELEGRAF_MODULE_OPTIONS,
|
||||
TokenInjectionToken
|
||||
} from './telegraf.constants';
|
||||
import { TelegrafService, TelegrafTelegramService } from './';
|
||||
|
||||
@Module({})
|
||||
export class TelegrafModule {
|
||||
@@ -15,43 +21,43 @@ export class TelegrafModule {
|
||||
TelegrafTelegramService,
|
||||
{
|
||||
provide: TokenInjectionToken,
|
||||
useClass: options.useClass,
|
||||
},
|
||||
useClass: options.useClass
|
||||
}
|
||||
],
|
||||
exports: [TelegrafService, TelegrafTelegramService],
|
||||
}
|
||||
exports: [TelegrafService, TelegrafTelegramService]
|
||||
};
|
||||
}
|
||||
|
||||
private static createAsyncProviders(
|
||||
options: TelegrafModuleAsyncOptions,
|
||||
options: TelegrafModuleAsyncOptions
|
||||
): Provider[] {
|
||||
if (options.useExisting || options.useFactory) {
|
||||
return [this.createAsyncOptionsProvider(options)]
|
||||
return [this.createAsyncOptionsProvider(options)];
|
||||
}
|
||||
return [
|
||||
this.createAsyncOptionsProvider(options),
|
||||
{
|
||||
provide: options.useClass,
|
||||
useClass: options.useClass,
|
||||
},
|
||||
]
|
||||
useClass: options.useClass
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
private static createAsyncOptionsProvider(
|
||||
options: TelegrafModuleAsyncOptions,
|
||||
options: TelegrafModuleAsyncOptions
|
||||
): Provider {
|
||||
if (options.useFactory) {
|
||||
return {
|
||||
provide: TELEGRAF_MODULE_OPTIONS,
|
||||
useFactory: options.useFactory,
|
||||
inject: options.inject || [],
|
||||
}
|
||||
inject: options.inject || []
|
||||
};
|
||||
}
|
||||
return {
|
||||
provide: TELEGRAF_MODULE_OPTIONS,
|
||||
useFactory: async (optionsFactory: TelegrafOptionsFactory) =>
|
||||
await optionsFactory.createTelegrafOptions(),
|
||||
inject: [options.useExisting || options.useClass],
|
||||
}
|
||||
inject: [options.useExisting || options.useClass]
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user