Files
bookorbit/server/src/modules/book-dock/book-dock.module.ts
T
neon 5290e63375 refactor(metadata): await metadata score calculations on metadata changes
Ensure metadata score calculations are awaited when book metadata or covers are saved or updated, and add concurrency queuing for on-demand score recalculations.
2026-07-27 06:13:54 +00:00

60 lines
2.3 KiB
TypeScript

import { Module, forwardRef } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import type { StringValue } from 'ms';
import { AppSettingsModule } from '../app-settings/app-settings.module';
import { AuthModule } from '../auth/auth.module';
import { BookModule } from '../book/book.module';
import { LibraryModule } from '../library/library.module';
import { MetadataFetchModule } from '../metadata-fetch/metadata-fetch.module';
import { MetadataModule } from '../metadata/metadata.module';
import { MetadataScoreModule } from '../metadata-score/metadata-score.module';
import { NotificationModule } from '../notification/notification.module';
import { UploadModule } from '../upload/upload.module';
import { BookDockController } from './book-dock.controller';
import { BookDockEventsService } from './book-dock-events.service';
import { BookDockFinalizeService } from './book-dock-finalize.service';
import { BookDockGateway } from './book-dock.gateway';
import { BookDockIngestService } from './book-dock-ingest.service';
import { BookDockMetadataService } from './book-dock-metadata.service';
import { BookDockProcessingStateService } from './book-dock-processing-state.service';
import { BookDockWatcherService } from './book-dock-watcher.service';
import { BookDockService } from './book-dock.service';
import { BookDockRepository } from './book-dock.repository';
@Module({
imports: [
UploadModule,
AuthModule,
BookModule,
LibraryModule,
MetadataFetchModule,
MetadataModule,
MetadataScoreModule,
forwardRef(() => NotificationModule),
AppSettingsModule,
JwtModule.registerAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
secret: config.getOrThrow<string>('auth.jwtSecret'),
signOptions: { expiresIn: config.getOrThrow<StringValue | number>('auth.jwtExpiresIn') },
}),
}),
],
controllers: [BookDockController],
providers: [
BookDockService,
BookDockRepository,
BookDockEventsService,
BookDockIngestService,
BookDockMetadataService,
BookDockProcessingStateService,
BookDockFinalizeService,
BookDockWatcherService,
BookDockGateway,
],
exports: [BookDockService, BookDockRepository],
})
export class BookDockModule {}