| 1 | import type { DynamicModule } from '@nestjs/common' |
| 2 | import { Module } from '@nestjs/common' |
| 3 | import { RouterModule } from '@nestjs/core/router' |
| 4 | import { ConfigEditorConfig, ConfigEditorModuleOptions } from './config-editor.config' |
| 5 | import { ConfigEditorController } from './config-editor.controller' |
| 6 | import { ConfigEditorService } from './config-editor.service' |
| 7 | import { ConfigRestartService } from './config-restart.service' |
| 8 | |
| 9 | @Module({}) |
| 10 | export class ConfigEditorModule { |
| 11 | static forRoot<T>(options: ConfigEditorModuleOptions<T>): DynamicModule { |
| 12 | const config = new ConfigEditorConfig(options) |
| 13 | return { |
| 14 | module: ConfigEditorModule, |
| 15 | imports: [ |
| 16 | RouterModule.register([ |
| 17 | { |
| 18 | path: config.routePrefix, |
| 19 | module: ConfigEditorModule, |
| 20 | }, |
| 21 | ]), |
| 22 | ], |
| 23 | controllers: [ConfigEditorController], |
| 24 | providers: [ |
| 25 | { |
| 26 | provide: ConfigEditorConfig, |
| 27 | useValue: config, |
| 28 | }, |
| 29 | ConfigEditorService, |
| 30 | ConfigRestartService, |
| 31 | ], |
| 32 | exports: [ConfigEditorService, ConfigRestartService], |
| 33 | } |
| 34 | } |
| 35 | } |
| 36 |