improvement(workflow): rewrite all workflow

This commit is contained in:
Aleksandr Bukhalo
2020-01-12 14:18:48 +03:00
parent ec99dcd65f
commit 3412edcdf5
12 changed files with 1936 additions and 4056 deletions

View File

@@ -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]
};
}
}