@lxdhub/dbsync
Version:
Display, search and copy LXD-images using a web interface.
46 lines (43 loc) • 1.54 kB
text/typescript
import { DatabaseModule } from '@lxdhub/db';
import { DynamicModule } from '@nestjs/common';
import { AppSettingsModule } from './app-settings/app-settings.module';
import { LXDHubDbSyncSettings } from './dbsync-settings.interface';
import { RemoteModule } from './remote';
import { LXDModule } from './lxd';
import { OperatingSystemModule } from './operating-system';
import { ArchitectureModule } from './architecture';
import { ImageModule } from './image';
import { AliasModule } from './alias/alias.module';
import { OperatingArchitectureModule } from './os-arch';
import { ImageAvailabilityModule } from './image-availability';
import { SyncRunModule } from './sync-run';
import { AppService } from './app.service';
import { SETTINGS } from './app.tokens';
/**
* The main appliaction module for LXDHub database sync
*/
export class AppModule {
/**
* Returns the app module with the applied settings
* @param settings The settings of the synchronization task
*/
public static forRoot(settings: LXDHubDbSyncSettings): DynamicModule {
return {
module: AppModule,
providers: [AppService, { provide: SETTINGS, useValue: settings }],
imports: [
DatabaseModule.forRoot({ ...settings.database }),
AppSettingsModule.forRoot(settings),
LXDModule,
RemoteModule,
OperatingSystemModule,
ArchitectureModule,
AliasModule,
ImageModule,
ImageAvailabilityModule,
OperatingArchitectureModule,
SyncRunModule
]
};
}
}