Files
public-pool/src/app.module.ts
T
2023-08-13 23:26:06 -04:00

78 lines
2.6 KiB
TypeScript

import { HttpModule } from '@nestjs/axios';
import { CacheModule } from '@nestjs/cache-manager';
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { ScheduleModule } from '@nestjs/schedule';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { AddressController } from './controllers/address/address.controller';
import { ClientController } from './controllers/client/client.controller';
import { BitcoinAddressValidator } from './models/validators/bitcoin-address.validator';
import { AddressSettingsModule } from './ORM/address-settings/address-settings.module';
import { BlocksModule } from './ORM/blocks/blocks.module';
import { ClientStatisticsModule } from './ORM/client-statistics/client-statistics.module';
import { ClientModule } from './ORM/client/client.module';
import { TelegramSubscriptionsModule } from './ORM/telegram-subscriptions/telegram-subscriptions.module';
import { AppService } from './services/app.service';
import { BitcoinRpcService } from './services/bitcoin-rpc.service';
import { BraiinsService } from './services/braiins.service';
import { BTCPayService } from './services/btc-pay.service';
import { DiscordService } from './services/discord.service';
import { NotificationService } from './services/notification.service';
import { ProxyService } from './services/proxy.service';
import { StratumV1JobsService } from './services/stratum-v1-jobs.service';
import { StratumV1Service } from './services/stratum-v1.service';
import { TelegramService } from './services/telegram.service';
const ORMModules = [
ClientStatisticsModule,
ClientModule,
AddressSettingsModule,
TelegramSubscriptionsModule,
BlocksModule
]
@Module({
imports: [
ConfigModule.forRoot(),
TypeOrmModule.forRoot({
type: 'sqlite',
database: './DB/public-pool.sqlite',
synchronize: true,
autoLoadEntities: true,
cache: true,
logging: false,
enableWAL: true,
busyTimeout: 30 * 1000,
}),
CacheModule.register(),
ScheduleModule.forRoot(),
HttpModule,
...ORMModules
],
controllers: [
AppController,
ClientController,
AddressController
],
providers: [
DiscordService,
AppService,
StratumV1Service,
TelegramService,
BitcoinRpcService,
NotificationService,
BitcoinAddressValidator,
StratumV1JobsService,
ProxyService,
BTCPayService,
BraiinsService
],
})
export class AppModule {
constructor() {
}
}