app.module.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import configuration from '@/config/index';
  2. import { Module } from '@nestjs/common';
  3. import { ConfigModule } from '@nestjs/config';
  4. import { TypeOrmModule } from '@nestjs/typeorm';
  5. import Joi from 'joi';
  6. import { AuthModule } from './modules/auth/auth.module';
  7. import { DatabaseModule } from './modules/database/database.module';
  8. import { HealthModule } from './modules/health/health.module';
  9. import { UsersModule } from './modules/users/users.module';
  10. @Module({
  11. imports: [
  12. TypeOrmModule.forRoot({
  13. autoLoadEntities: true,
  14. database: 'data/db.sqlite',
  15. synchronize: true,
  16. type: 'sqlite',
  17. }),
  18. ConfigModule.forRoot({
  19. cache: true,
  20. isGlobal: true,
  21. load: [configuration],
  22. validationOptions: {
  23. abortEarly: true,
  24. allowUnknown: true,
  25. },
  26. validationSchema: Joi.object({
  27. NODE_ENV: Joi.string().valid('development', 'production', 'test'),
  28. port: Joi.number(),
  29. }),
  30. }),
  31. HealthModule,
  32. AuthModule,
  33. UsersModule,
  34. DatabaseModule,
  35. ],
  36. })
  37. export class AppModule {}