forked from Cutlery/immich
* Fix lint issues and some other TS issues - set TypeScript in strict mode - add npm commands to lint / check code - fix all lint issues - fix some TS issues - rename User reponse DTO to make it consistent with the other ones - override Express/User interface to use UserResponseDto interface This is for when the accessing the `user` from a Express Request, like in `asset-upload-config` * Fix the rest of TS issues - fix all the remaining TypeScript errors - add missing `@types/mapbox__mapbox-sdk` package * Move global.d.ts to server `src` folder * Update AssetReponseDto duration type This is now of type `string` that defaults to '0:00:00.00000' if not set which is what the mobile app currently expects * Set context when logging error in asset.service Use `ServeFile` as the context for logging an error when asset.resizePath is not set * Fix wrong AppController merge conflict resolution `redirectToWebpage` was removed in main as is no longer used.
67 lines
2.0 KiB
TypeScript
67 lines
2.0 KiB
TypeScript
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
|
|
import { UserModule } from './api-v1/user/user.module';
|
|
import { AssetModule } from './api-v1/asset/asset.module';
|
|
import { AuthModule } from './api-v1/auth/auth.module';
|
|
import { ImmichJwtModule } from './modules/immich-jwt/immich-jwt.module';
|
|
import { DeviceInfoModule } from './api-v1/device-info/device-info.module';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
import { immichAppConfig } from './config/app.config';
|
|
import { BullModule } from '@nestjs/bull';
|
|
import { ServerInfoModule } from './api-v1/server-info/server-info.module';
|
|
import { BackgroundTaskModule } from './modules/background-task/background-task.module';
|
|
import { CommunicationModule } from './api-v1/communication/communication.module';
|
|
import { AlbumModule } from './api-v1/album/album.module';
|
|
import { AppController } from './app.controller';
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
import { ScheduleTasksModule } from './modules/schedule-tasks/schedule-tasks.module';
|
|
import { DatabaseModule } from '@app/database';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot(immichAppConfig),
|
|
|
|
DatabaseModule,
|
|
UserModule,
|
|
|
|
AssetModule,
|
|
|
|
AuthModule,
|
|
|
|
ImmichJwtModule,
|
|
|
|
DeviceInfoModule,
|
|
|
|
BullModule.forRootAsync({
|
|
useFactory: async () => ({
|
|
redis: {
|
|
host: process.env.REDIS_HOSTNAME || 'immich_redis',
|
|
port: 6379,
|
|
},
|
|
}),
|
|
}),
|
|
|
|
ServerInfoModule,
|
|
|
|
BackgroundTaskModule,
|
|
|
|
CommunicationModule,
|
|
|
|
AlbumModule,
|
|
|
|
ScheduleModule.forRoot(),
|
|
|
|
ScheduleTasksModule,
|
|
],
|
|
controllers: [AppController],
|
|
providers: [],
|
|
})
|
|
export class AppModule implements NestModule {
|
|
// TODO: check if consumer is needed or remove
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
configure(consumer: MiddlewareConsumer): void {
|
|
if (process.env.NODE_ENV == 'development') {
|
|
// consumer.apply(AppLoggerMiddleware).forRoutes('*');
|
|
}
|
|
}
|
|
}
|