icynet-auth-server/src/app.module.ts

55 lines
1.8 KiB
TypeScript

import { Module } from '@nestjs/common';
import { ServeStaticModule } from '@nestjs/serve-static';
import { ThrottlerModule } from '@nestjs/throttler';
import { join } from 'path';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CSRFMiddleware } from './middleware/csrf.middleware';
import { ApiModule } from './modules/api/api.module';
import { ConfigurationModule } from './modules/config/config.module';
import { JWTModule } from './modules/jwt/jwt.module';
import { SSRFrontEndModule } from './modules/ssr-front-end/ssr-front-end.module';
import { UtilityModule } from './modules/utility/utility.module';
import { WellKnownModule } from './modules/well-known/well-known.module';
import { CommonCacheModule } from './modules/cache/cache.module';
import { AdminjsModule } from './modules/adminjs/adminjs.module';
import { AdminjsService } from './modules/adminjs/adminjs.service';
@Module({
imports: [
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'uploads'),
serveRoot: '/uploads',
serveStaticOptions: {
cacheControl: true,
maxAge: 8 * 60 * 60 * 1000,
},
}),
ThrottlerModule.forRoot([
{
ttl: 10000,
limit: 10,
},
]),
ConfigurationModule,
UtilityModule,
CommonCacheModule,
JWTModule,
SSRFrontEndModule,
WellKnownModule,
ApiModule,
// TODO: https://docs.adminjs.co/installation/plugins/nest
import('@adminjs/nestjs').then(({ AdminModule }) =>
AdminModule.createAdminAsync({
imports: [AdminjsModule],
useFactory: (shims: AdminjsService) => shims.getConfiguration(),
inject: [AdminjsService],
}),
),
],
controllers: [AppController],
providers: [AppService, CSRFMiddleware],
})
export class AppModule {}