129 lines
4.1 KiB
TypeScript
129 lines
4.1 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { AppController } from './app.controller';
|
|
import { AppService } from './app.service';
|
|
import { ParkioModule } from './parkio/parkio.module';
|
|
import { IswordModule } from './isword/isword.module';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import { UsersModule } from './users/users.module';
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
import { DomainrproxyModule } from './domainrproxy/domainrproxy.module';
|
|
import configuration from './config/configuration';
|
|
import { CacheInterceptor, CacheModule } from '@nestjs/cache-manager';
|
|
import { IrcbotModule } from './ircbot/ircbot.module';
|
|
import { PrometheusModule } from '@willsoto/nestjs-prometheus';
|
|
import { MinioModule } from './minio/minio.module';
|
|
import { KvModule } from './kv/kv.module';
|
|
import { BullModule } from '@nestjs/bull';
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
import { RedisClientOptions } from 'redis';
|
|
import { redisStore } from 'cache-manager-redis-yet';
|
|
import { RedirectsModule } from './redirects/redirects.module';
|
|
import { FileModule } from './file/file.module';
|
|
import { FocoLiveModule } from './foco-live/foco-live.module';
|
|
import { PowModule } from './pow/pow.module';
|
|
import { FocoCoffeeModule } from './fococoffee/fococoffee.module';
|
|
import { JobsModule } from './jobs/jobs.module';
|
|
import { RedisModule, RedisModuleOptions } from '@liaoliaots/nestjs-redis';
|
|
import { AdsbExchangeModule } from './adsb-exchange/adsb-exchange.module';
|
|
import { APP_INTERCEPTOR } from '@nestjs/core';
|
|
import { JunkDrawerModule } from './junk-drawer/junk-drawer.module';
|
|
import { EmailModule } from './email/email.module';
|
|
import { ContactModule } from './contact/contact.module';
|
|
import { HoardingModule } from './hoarding/hoarding.module';
|
|
import { NamesModule } from './names/names.module';
|
|
import { AssemblyAiModule } from './assembly-ai/assembly-ai.module';
|
|
import { ClaudeModule } from './claude/claude.module';
|
|
import { BabyNamesModule } from './baby-names/baby-names.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
ScheduleModule.forRoot(),
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
load: [configuration],
|
|
}),
|
|
RedisModule.forRootAsync({
|
|
imports: [ConfigModule],
|
|
inject: [ConfigService],
|
|
useFactory: async (
|
|
configService: ConfigService,
|
|
): Promise<RedisModuleOptions> => {
|
|
return {
|
|
config: {
|
|
url: configService.get<string>('redis.url'),
|
|
db: configService.get<number>('redis.db'),
|
|
family: 6,
|
|
},
|
|
};
|
|
},
|
|
}),
|
|
// CacheModule.registerAsync<RedisClientOptions>({
|
|
// isGlobal: true,
|
|
// inject: [ConfigService],
|
|
// imports: [ConfigModule],
|
|
// useFactory: async (configService: ConfigService) => ({
|
|
// store: redisStore,
|
|
// url: configService.get<string>('redis.url'),
|
|
// family: 6,
|
|
// database: configService.get<number>('redis.db'),
|
|
// }),
|
|
// }),
|
|
CacheModule.register({ isGlobal: true }),
|
|
BullModule.forRootAsync({
|
|
imports: [ConfigModule],
|
|
inject: [ConfigService],
|
|
useFactory: async (configService: ConfigService) => {
|
|
const config = {
|
|
redis: {
|
|
url: configService.get<string>('redis.url'),
|
|
db: configService.get<number>('redis.db'),
|
|
family: 6,
|
|
},
|
|
};
|
|
return config;
|
|
},
|
|
}),
|
|
PrometheusModule.register({
|
|
defaultMetrics: {
|
|
enabled: false,
|
|
},
|
|
defaultLabels: {
|
|
app: 'us.dev api',
|
|
},
|
|
}),
|
|
ParkioModule,
|
|
IswordModule,
|
|
AuthModule,
|
|
UsersModule,
|
|
DomainrproxyModule,
|
|
IrcbotModule,
|
|
MinioModule,
|
|
KvModule,
|
|
RedirectsModule,
|
|
FileModule,
|
|
FocoLiveModule,
|
|
PowModule,
|
|
FocoCoffeeModule,
|
|
JobsModule,
|
|
AdsbExchangeModule,
|
|
JunkDrawerModule,
|
|
EmailModule,
|
|
ContactModule,
|
|
HoardingModule,
|
|
NamesModule,
|
|
AssemblyAiModule,
|
|
ClaudeModule,
|
|
BabyNamesModule,
|
|
],
|
|
controllers: [AppController],
|
|
providers: [
|
|
AppService,
|
|
{
|
|
provide: APP_INTERCEPTOR,
|
|
useClass: CacheInterceptor,
|
|
},
|
|
],
|
|
exports: [PrometheusModule],
|
|
})
|
|
export class AppModule {}
|